summaryrefslogtreecommitdiff
path: root/composer.phar
blob: f9592cc0cea0b3209c2a81cbb71eb1672ec16f37 (plain)
ofshex dumpascii
0000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 68 70 0a 3c 3f 70 68 70 0a 2f 2a 0a 20 2a 20 54 #!/usr/bin/env.php.<?php./*..*.T
0020 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 0a 20 2a his.file.is.part.of.Composer...*
0040 0a 20 2a 20 28 63 29 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 3c 6e 61 64 65 72 6d 61 6e 40 ..*.(c).Nils.Adermann.<naderman@
0060 6e 61 64 65 72 6d 61 6e 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 naderman.de>..*.....Jordi.Boggia
0080 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 0a 20 2a 20 46 6f no.<j.boggiano@seld.be>..*..*.Fo
00a0 72 20 74 68 65 20 66 75 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 65 r.the.full.copyright.and.license
00c0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 0a 20 2a 20 74 68 65 .information,.please.view..*.the
00e0 20 6c 69 63 65 6e 73 65 20 74 68 61 74 20 69 73 20 6c 6f 63 61 74 65 64 20 61 74 20 74 68 65 20 .license.that.is.located.at.the.
0100 62 6f 74 74 6f 6d 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2e 0a 20 2a 2f 0a 0a 50 68 61 72 3a 3a bottom.of.this.file...*/..Phar::
0120 6d 61 70 50 68 61 72 28 27 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 27 29 3b 0a 64 65 66 69 6e 65 mapPhar('composer.phar');.define
0140 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 27 2c 20 31 33 ('COMPOSER_DEV_WARNING_TIME',.13
0160 34 36 33 35 33 35 36 37 29 3b 0a 72 65 71 75 69 72 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 6f 46353567);.require.'phar://compo
0180 73 65 72 2e 70 68 61 72 2f 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 5f 5f 48 41 4c 54 5f ser.phar/bin/composer';..__HALT_
01a0 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a 3f 44 00 00 d9 00 00 00 11 00 00 00 01 00 0d 00 COMPILER();.?>..?D..............
01c0 00 00 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 00 00 00 00 11 00 00 00 73 72 63 2f 62 6f 6f 74 73 ..composer.phar........src/boots
01e0 74 72 61 70 2e 70 68 70 b9 01 00 00 9f 2c 18 50 b9 01 00 00 28 8e 49 9f b6 01 00 00 00 00 00 00 trap.php.....,.P....(.I.........
0200 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 43 6f 6e 73 6f 6c 65 49 4f 2e 70 68 ....src/Composer/IO/ConsoleIO.ph
0220 70 06 0e 00 00 9f 2c 18 50 06 0e 00 00 7b 13 d4 f0 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 p.....,.P....{...............src
0240 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 4e 75 6c 6c 49 4f 2e 70 68 70 12 04 00 00 9f 2c 18 50 12 /Composer/IO/NullIO.php.....,.P.
0260 04 00 00 1d 1d fc 03 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...................src/Composer/
0280 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 2e 70 68 70 59 03 00 00 9f 2c 18 50 59 03 00 00 10 ba IO/IOInterface.phpY....,.PY.....
02a0 20 3d b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 .=............src/Composer/Comma
02c0 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 80 04 00 00 9f 2c 18 50 80 04 00 00 a2 fe 97 49 b6 01 nd/Command.php.....,.P.......I..
02e0 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 ......-...src/Composer/Command/C
0300 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 28 14 00 00 9f 2c 18 50 28 reateProjectCommand.php(....,.P(
0320 14 00 00 19 d6 d5 e3 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...............%...src/Composer/
0340 43 6f 6d 6d 61 6e 64 2f 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 b4 02 00 00 9f 2c 18 50 Command/AboutCommand.php.....,.P
0360 b4 02 00 00 1a 87 d1 cf b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ................$...src/Composer
0380 2f 43 6f 6d 6d 61 6e 64 2f 53 68 6f 77 43 6f 6d 6d 61 6e 64 2e 70 68 70 4b 1f 00 00 9f 2c 18 50 /Command/ShowCommand.phpK....,.P
03a0 4b 1f 00 00 54 7d f7 15 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 K...T}..........&...src/Composer
03c0 2f 43 6f 6d 6d 61 6e 64 2f 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 4f 08 00 00 9f 2c /Command/UpdateCommand.phpO....,
03e0 18 50 4f 08 00 00 46 48 01 5f b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .PO...FH._........'...src/Compos
0400 65 72 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 9c 06 00 er/Command/InstallCommand.php...
0420 00 9f 2c 18 50 9c 06 00 00 23 75 ea b8 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d ..,.P....#u..........(...src/Com
0440 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 poser/Command/ValidateCommand.ph
0460 70 b4 0f 00 00 9f 2c 18 50 b4 0f 00 00 c7 d1 28 3f b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 p.....,.P......(?........'...src
0480 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 /Composer/Command/DependsCommand
04a0 2e 70 68 70 79 0a 00 00 9f 2c 18 50 79 0a 00 00 42 fd 55 a3 b6 01 00 00 00 00 00 00 26 00 00 00 .phpy....,.Py...B.U.........&...
04c0 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 61 72 63 68 43 6f 6d 6d 61 src/Composer/Command/SearchComma
04e0 6e 64 2e 70 68 70 5d 0d 00 00 9f 2c 18 50 5d 0d 00 00 7f 20 b2 24 b6 01 00 00 00 00 00 00 2a 00 nd.php]....,.P]......$........*.
0500 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 6c 66 55 70 64 61 74 ..src/Composer/Command/SelfUpdat
0520 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 ba 06 00 00 9f 2c 18 50 ba 06 00 00 25 21 e5 57 b6 01 00 00 eCommand.php.....,.P....%!.W....
0540 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 71 ....'...src/Composer/Command/Req
0560 75 69 72 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 d4 0c 00 00 9f 2c 18 50 d4 0c 00 00 70 50 47 5c b6 uireCommand.php.....,.P....pPG\.
0580 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f .......,...src/Composer/Command/
05a0 48 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 9e 01 00 00 9f 2c 18 50 9e Helper/DialogHelper.php.....,.P.
05c0 01 00 00 95 82 8c 26 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ......&........$...src/Composer/
05e0 43 6f 6d 6d 61 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 36 28 00 00 9f 2c 18 50 36 Command/InitCommand.php6(...,.P6
0600 28 00 00 c2 14 bc 6f b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f (.....o........)...src/Composer/
0620 44 6f 77 6e 6c 6f 61 64 65 72 2f 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 5b 08 00 00 Downloader/VcsDownloader.php[...
0640 9f 2c 18 50 5b 08 00 00 a3 31 8c 4c b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 .,.P[....1.L........*...src/Comp
0660 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 oser/Downloader/FileDownloader.p
0680 68 70 ce 09 00 00 9f 2c 18 50 ce 09 00 00 4a 42 32 ca b6 01 00 00 00 00 00 00 29 00 00 00 73 72 hp.....,.P....JB2.........)...sr
06a0 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 53 76 6e 44 6f 77 6e 6c 6f 61 c/Composer/Downloader/SvnDownloa
06c0 64 65 72 2e 70 68 70 59 05 00 00 9f 2c 18 50 59 05 00 00 d2 91 bb 04 b6 01 00 00 00 00 00 00 30 der.phpY....,.PY...............0
06e0 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 65 61 72 50 ...src/Composer/Downloader/PearP
0700 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 2e 70 68 70 f3 1a 00 00 9f 2c 18 50 f3 1a 00 00 a9 ackageExtractor.php.....,.P.....
0720 f5 20 9c b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e ...........+...src/Composer/Down
0740 6c 6f 61 64 65 72 2f 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2e 70 68 70 0c 0e 00 00 9f 2c loader/DownloadManager.php.....,
0760 18 50 0c 0e 00 00 03 87 c8 db b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P................/...src/Compos
0780 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 er/Downloader/DownloaderInterfac
07a0 65 2e 70 68 70 8f 01 00 00 9f 2c 18 50 8f 01 00 00 74 80 69 74 b6 01 00 00 00 00 00 00 2e 00 00 e.php.....,.P....t.it...........
07c0 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 54 72 61 6e 73 70 6f .src/Composer/Downloader/Transpo
07e0 72 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 64 00 00 00 9f 2c 18 50 64 00 00 00 47 c9 87 89 b6 rtException.phpd....,.Pd...G....
0800 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 .......*...src/Composer/Download
0820 65 72 2f 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e5 00 00 00 9f 2c 18 50 e5 00 00 er/PharDownloader.php.....,.P...
0840 00 de c9 1f e7 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f .............)...src/Composer/Do
0860 77 6e 6c 6f 61 64 65 72 2f 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e3 00 00 00 9f 2c wnloader/TarDownloader.php.....,
0880 18 50 e3 00 00 00 cd 92 58 3f b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P......X?........(...src/Compos
08a0 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 48 67 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 a5 05 er/Downloader/HgDownloader.php..
08c0 00 00 9f 2c 18 50 a5 05 00 00 f2 6a 85 a0 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f ...,.P.....j..........-...src/Co
08e0 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 mposer/Downloader/ArchiveDownloa
0900 64 65 72 2e 70 68 70 9a 06 00 00 9f 2c 18 50 9a 06 00 00 4e ed 2f eb b6 01 00 00 00 00 00 00 29 der.php.....,.P....N./.........)
0920 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 5a 69 70 44 6f ...src/Composer/Downloader/ZipDo
0940 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e0 07 00 00 9f 2c 18 50 e0 07 00 00 f6 76 6e eb b6 01 00 00 wnloader.php.....,.P.....vn.....
0960 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f ....)...src/Composer/Downloader/
0980 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 db 19 00 00 9f 2c 18 50 db 19 00 00 2f 71 ff GitDownloader.php.....,.P..../q.
09a0 2d b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 -........+...src/Composer/Reposi
09c0 74 6f 72 79 2f 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 63 09 00 00 9f 2c 18 50 tory/ArrayRepository.phpc....,.P
09e0 63 09 00 00 55 64 f9 ec b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 c...Ud..........0...src/Composer
0a00 2f 52 65 70 6f 73 69 74 6f 72 79 2f 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 /Repository/FilesystemRepository
0a20 2e 70 68 70 89 04 00 00 9f 2c 18 50 89 04 00 00 17 88 9d 4d b6 01 00 00 00 00 00 00 37 00 00 00 .php.....,.P.......M........7...
0a40 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 src/Composer/Repository/Writable
0a60 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 5b 01 00 00 9f 2c 18 50 5b RepositoryInterface.php[....,.P[
0a80 01 00 00 74 4d 02 d5 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...tM..........*...src/Composer/
0aa0 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 86 14 00 Repository/PearRepository.php...
0ac0 00 9f 2c 18 50 86 14 00 00 e4 31 6b f7 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d ..,.P.....1k.........-...src/Com
0ae0 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 poser/Repository/RepositoryManag
0b00 65 72 2e 70 68 70 70 07 00 00 9f 2c 18 50 70 07 00 00 f1 a5 e7 79 b6 01 00 00 00 00 00 00 2c 00 er.phpp....,.Pp......y........,.
0b20 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 ..src/Composer/Repository/Vcs/Gi
0b40 74 48 75 62 44 72 69 76 65 72 2e 70 68 70 37 19 00 00 9f 2c 18 50 37 19 00 00 a6 81 4f 28 b6 01 tHubDriver.php7....,.P7.....O(..
0b60 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 ......2...src/Composer/Repositor
0b80 79 2f 56 63 73 2f 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 3d 0d 00 00 y/Vcs/GitBitbucketDriver.php=...
0ba0 9f 2c 18 50 3d 0d 00 00 cf c7 8e ba b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 .,.P=...............)...src/Comp
0bc0 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 44 72 69 76 65 72 2e 70 68 oser/Repository/Vcs/GitDriver.ph
0be0 70 ba 10 00 00 9f 2c 18 50 ba 10 00 00 2a 95 28 7a b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 p.....,.P....*.(z........)...src
0c00 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 53 76 6e 44 72 69 76 /Composer/Repository/Vcs/SvnDriv
0c20 65 72 2e 70 68 70 b9 12 00 00 9f 2c 18 50 b9 12 00 00 9e e8 39 8d b6 01 00 00 00 00 00 00 32 00 er.php.....,.P......9.........2.
0c40 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 56 63 ..src/Composer/Repository/Vcs/Vc
0c60 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 43 02 00 00 9f 2c 18 50 43 02 00 00 sDriverInterface.phpC....,.PC...
0c80 f9 46 c4 fc b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 .F..........(...src/Composer/Rep
0ca0 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 44 72 69 76 65 72 2e 70 68 70 6a 0d 00 00 9f 2c 18 50 ository/Vcs/HgDriver.phpj....,.P
0cc0 6a 0d 00 00 7a ce 14 58 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 j...z..X........)...src/Composer
0ce0 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 56 63 73 44 72 69 76 65 72 2e 70 68 70 fe 04 00 /Repository/Vcs/VcsDriver.php...
0d00 00 9f 2c 18 50 fe 04 00 00 4c 12 32 42 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d ..,.P....L.2B........1...src/Com
0d20 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 42 69 74 62 75 63 6b 65 74 poser/Repository/Vcs/HgBitbucket
0d40 44 72 69 76 65 72 2e 70 68 70 f8 0c 00 00 9f 2c 18 50 f8 0c 00 00 cd a4 6d e9 b6 01 00 00 00 00 Driver.php.....,.P......m.......
0d60 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e ..4...src/Composer/Repository/In
0d80 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 db 00 00 00 9f 2c stalledArrayRepository.php.....,
0da0 18 50 db 00 00 00 7e 8e 24 d8 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P....~.$.........)...src/Compos
0dc0 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 db er/Repository/VcsRepository.php.
0de0 17 00 00 9f 2c 18 50 db 17 00 00 30 e6 66 c1 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 ....,.P....0.f.............src/C
0e00 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 omposer/Repository/PlatformRepos
0e20 69 74 6f 72 79 2e 70 68 70 ac 08 00 00 9f 2c 18 50 ac 08 00 00 6c 2c c2 8a b6 01 00 00 00 00 00 itory.php.....,.P....l,.........
0e40 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 .9...src/Composer/Repository/Ins
0e60 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a3 00 talledFilesystemRepository.php..
0e80 00 00 9f 2c 18 50 a3 00 00 00 56 0a 95 5f b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f ...,.P....V.._......../...src/Co
0ea0 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 mposer/Repository/CompositeRepos
0ec0 69 74 6f 72 79 2e 70 68 70 44 06 00 00 9f 2c 18 50 44 06 00 00 90 bc c6 63 b6 01 00 00 00 00 00 itory.phpD....,.PD......c.......
0ee0 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 .8...src/Composer/Repository/Ins
0f00 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 87 00 00 talledRepositoryInterface.php...
0f20 00 9f 2c 18 50 87 00 00 00 18 a3 39 70 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d ..,.P......9p............src/Com
0f40 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 poser/Repository/ComposerReposit
0f60 6f 72 79 2e 70 68 70 3f 0e 00 00 9f 2c 18 50 3f 0e 00 00 50 7c 4c d5 b6 01 00 00 00 00 00 00 2f ory.php?....,.P?...P|L........./
0f80 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f ...src/Composer/Repository/Pear/
0fa0 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 2e 70 68 70 71 01 00 00 9f 2c 18 50 71 01 00 00 66 ba DependencyInfo.phpq....,.Pq...f.
0fc0 54 f2 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 T.........8...src/Composer/Repos
0fe0 69 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 itory/Pear/PackageDependencyPars
1000 65 72 2e 70 68 70 21 16 00 00 9f 2c 18 50 21 16 00 00 3d cc f3 46 b6 01 00 00 00 00 00 00 2c 00 er.php!....,.P!...=..F........,.
1020 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 ..src/Composer/Repository/Pear/C
1040 68 61 6e 6e 65 6c 49 6e 66 6f 2e 70 68 70 c4 01 00 00 9f 2c 18 50 c4 01 00 00 3a 54 2a c9 b6 01 hannelInfo.php.....,.P....:T*...
1060 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 ..........src/Composer/Repositor
1080 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 6d 06 00 00 9f 2c 18 50 y/Pear/ChannelReader.phpm....,.P
10a0 6d 06 00 00 ef e5 4e 27 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 m.....N'........,...src/Composer
10c0 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 49 6e 66 6f 2e 70 68 70 /Repository/Pear/PackageInfo.php
10e0 b0 03 00 00 9f 2c 18 50 b0 03 00 00 9f 0d b8 0c b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f .....,.P................5...src/
1100 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 Composer/Repository/Pear/Depende
1120 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 9f 2c 18 50 71 02 00 00 39 0e 17 ncyConstraint.phpq....,.Pq...9..
1140 3d b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 =........4...src/Composer/Reposi
1160 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 2e 70 68 tory/Pear/ChannelRest11Reader.ph
1180 70 26 09 00 00 9f 2c 18 50 26 09 00 00 f2 55 62 08 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 p&....,.P&....Ub.........,...src
11a0 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 52 65 6c 65 61 73 /Composer/Repository/Pear/Releas
11c0 65 49 6e 66 6f 2e 70 68 70 92 01 00 00 9f 2c 18 50 92 01 00 00 6f 93 8a c3 b6 01 00 00 00 00 00 eInfo.php.....,.P....o..........
11e0 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 .2...src/Composer/Repository/Pea
1200 72 2f 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 34 05 00 00 9f 2c 18 50 34 r/BaseChannelReader.php4....,.P4
1220 05 00 00 44 3f 8b 85 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...D?..........4...src/Composer/
1240 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 Repository/Pear/ChannelRest10Rea
1260 64 65 72 2e 70 68 70 c0 09 00 00 9f 2c 18 50 c0 09 00 00 5d 31 0f de b6 01 00 00 00 00 00 00 2f der.php.....,.P....]1........../
1280 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 ...src/Composer/Repository/Repos
12a0 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 6d 01 00 00 9f 2c 18 50 6d 01 00 00 7e 60 itoryInterface.phpm....,.Pm...~`
12c0 a6 32 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 .2........-...src/Composer/Repos
12e0 69 74 6f 72 79 2f 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 15 02 00 00 9f itory/PackageRepository.php.....
1300 2c 18 50 15 02 00 00 82 f3 73 3e b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f ,.P......s>........9...src/Compo
1320 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 ser/Repository/NotifiableReposit
1340 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 e3 00 00 00 9f 2c 18 50 e3 00 00 00 c5 d0 53 27 oryInterface.php.....,.P......S'
1360 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 ........+...src/Composer/Package
1380 2f 44 75 6d 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 72 2e 70 68 70 16 07 00 00 9f 2c 18 50 16 /Dumper/ArrayDumper.php.....,.P.
13a0 07 00 00 ce 00 27 59 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f .....'Y........*...src/Composer/
13c0 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4a 73 6f 6e 4c 6f 61 64 65 72 2e 70 68 70 f9 01 00 Package/Loader/JsonLoader.php...
13e0 00 9f 2c 18 50 f9 01 00 00 21 7e 88 7b b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d ..,.P....!~.{......../...src/Com
1400 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4c 6f 61 64 65 72 49 6e 74 65 72 poser/Package/Loader/LoaderInter
1420 66 61 63 65 2e 70 68 70 84 00 00 00 9f 2c 18 50 84 00 00 00 78 99 ef 53 b6 01 00 00 00 00 00 00 face.php.....,.P....x..S........
1440 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f +...src/Composer/Package/Loader/
1460 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 fc 15 00 00 9f 2c 18 50 fc 15 00 00 f1 be 2d 4c b6 ArrayLoader.php.....,.P......-L.
1480 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f .......5...src/Composer/Package/
14a0 4c 6f 61 64 65 72 2f 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 Loader/ValidatingArrayLoader.php
14c0 b6 1c 00 00 9f 2c 18 50 b6 1c 00 00 e9 2b b9 50 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f .....,.P.....+.P........1...src/
14e0 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 52 6f 6f 74 50 61 63 6b Composer/Package/Loader/RootPack
1500 61 67 65 4c 6f 61 64 65 72 2e 70 68 70 07 15 00 00 9f 2c 18 50 07 15 00 00 8a 39 b3 d4 b6 01 00 ageLoader.php.....,.P.....9.....
1520 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4d 65 .....&...src/Composer/Package/Me
1540 6d 6f 72 79 50 61 63 6b 61 67 65 2e 70 68 70 03 1b 00 00 9f 2c 18 50 03 1b 00 00 ce c6 ef b5 b6 moryPackage.php.....,.P.........
1560 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f ...........src/Composer/Package/
1580 4c 6f 63 6b 65 72 2e 70 68 70 10 13 00 00 9f 2c 18 50 10 13 00 00 d7 20 27 58 b6 01 00 00 00 00 Locker.php.....,.P......'X......
15a0 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 ..)...src/Composer/Package/Packa
15c0 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 11 08 00 00 9f 2c 18 50 11 08 00 00 30 3d 09 ec b6 geInterface.php.....,.P....0=...
15e0 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f .......$...src/Composer/Package/
1600 42 61 73 65 50 61 63 6b 61 67 65 2e 70 68 70 3d 0d 00 00 9f 2c 18 50 3d 0d 00 00 a2 69 4a e8 b6 BasePackage.php=....,.P=....iJ..
1620 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f ...........src/Composer/Package/
1640 56 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 65 72 2e 70 68 70 e0 15 00 00 9f 2c 18 Version/VersionParser.php.....,.
1660 50 e0 15 00 00 fa 01 4c 4f b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P......LO........%...src/Compose
1680 72 2f 50 61 63 6b 61 67 65 2f 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 68 70 77 12 00 00 9f 2c r/Package/AliasPackage.phpw....,
16a0 18 50 77 12 00 00 af be d3 20 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Pw...................src/Compos
16c0 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 2e 70 68 70 33 05 00 00 9f 2c 18 50 33 05 00 00 92 er/Package/Link.php3....,.P3....
16e0 66 36 b9 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b f6.........7...src/Composer/Pack
1700 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 age/LinkConstraint/MultiConstrai
1720 6e 74 2e 70 68 70 5c 03 00 00 9f 2c 18 50 5c 03 00 00 5b 0b 7d 63 b6 01 00 00 00 00 00 00 39 00 nt.php\....,.P\...[.}c........9.
1740 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 ..src/Composer/Package/LinkConst
1760 72 61 69 6e 74 2f 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 f9 05 00 00 9f raint/VersionConstraint.php.....
1780 2c 18 50 f9 05 00 00 29 6d cf ce b6 01 00 00 00 00 00 00 3a 00 00 00 73 72 63 2f 43 6f 6d 70 6f ,.P....)m..........:...src/Compo
17a0 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 53 70 65 63 69 ser/Package/LinkConstraint/Speci
17c0 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 9f 2c 18 50 71 02 00 00 96 53 9a ficConstraint.phpq....,.Pq....S.
17e0 f8 b6 01 00 00 00 00 00 00 3f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 .........?...src/Composer/Packag
1800 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 e/LinkConstraint/LinkConstraintI
1820 6e 74 65 72 66 61 63 65 2e 70 68 70 15 01 00 00 9f 2c 18 50 15 01 00 00 e5 fe 87 a2 b6 01 00 00 nterface.php.....,.P............
1840 00 00 00 00 16 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 61 63 68 65 2e 70 68 70 be 03 ........src/Composer/Cache.php..
1860 00 00 9f 2c 18 50 be 03 00 00 c9 f2 a0 f9 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f ...,.P................3...src/Co
1880 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6c 69 63 79 mposer/DependencyResolver/Policy
18a0 49 6e 74 65 72 66 61 63 65 2e 70 68 70 91 01 00 00 9f 2c 18 50 91 01 00 00 42 18 9f b6 b6 01 00 Interface.php.....,.P....B......
18c0 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 .....+...src/Composer/Dependency
18e0 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 2e 70 68 70 9b 09 00 00 9f 2c 18 50 9b 09 00 00 Resolver/RuleSet.php.....,.P....
1900 4a 79 0c c0 b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 Jy..........6...src/Composer/Dep
1920 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 endencyResolver/SolverBugExcepti
1940 6f 6e 2e 70 68 70 98 01 00 00 9f 2c 18 50 98 01 00 00 7f 22 71 4e b6 01 00 00 00 00 00 00 31 00 on.php.....,.P....."qN........1.
1960 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 ..src/Composer/DependencyResolve
1980 72 2f 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 2e 70 68 70 57 15 00 00 9f 2c 18 50 57 15 00 00 9e r/DefaultPolicy.phpW....,.PW....
19a0 e9 5d 81 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 .].........-...src/Composer/Depe
19c0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 63 69 73 69 6f 6e 73 2e 70 68 70 8e 0e 00 00 ndencyResolver/Decisions.php....
19e0 9f 2c 18 50 8e 0e 00 00 bb ed 61 f4 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 .,.P......a.........1...src/Comp
1a00 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 oser/DependencyResolver/RuleWatc
1a20 68 4e 6f 64 65 2e 70 68 70 f0 03 00 00 9f 2c 18 50 f0 03 00 00 5d 24 f3 b4 b6 01 00 00 00 00 00 hNode.php.....,.P....]$.........
1a40 00 3b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f .;...src/Composer/DependencyReso
1a60 6c 76 65 72 2f 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 lver/SolverProblemsException.php
1a80 c4 03 00 00 9f 2c 18 50 c4 03 00 00 ac d6 5b b0 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f .....,.P......[........./...src/
1aa0 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 54 72 61 6e Composer/DependencyResolver/Tran
1ac0 73 61 63 74 69 6f 6e 2e 70 68 70 11 14 00 00 9f 2c 18 50 11 14 00 00 93 fe de 87 b6 01 00 00 00 saction.php.....,.P.............
1ae0 00 00 00 40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 ...@...src/Composer/DependencyRe
1b00 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 solver/Operation/UninstallOperat
1b20 69 6f 6e 2e 70 68 70 49 02 00 00 9f 2c 18 50 49 02 00 00 46 fb c2 c9 b6 01 00 00 00 00 00 00 3d ion.phpI....,.PI...F...........=
1b40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 ...src/Composer/DependencyResolv
1b60 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 er/Operation/UpdateOperation.php
1b80 68 03 00 00 9f 2c 18 50 68 03 00 00 f6 53 d5 5d b6 01 00 00 00 00 00 00 49 00 00 00 73 72 63 2f h....,.Ph....S.]........I...src/
1ba0 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 Composer/DependencyResolver/Oper
1bc0 61 74 69 6f 6e 2f 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f ation/MarkAliasInstalledOperatio
1be0 6e 2e 70 68 70 d0 02 00 00 9f 2c 18 50 d0 02 00 00 78 55 5a 61 b6 01 00 00 00 00 00 00 3e 00 00 n.php.....,.P....xUZa........>..
1c00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 .src/Composer/DependencyResolver
1c20 2f 4f 70 65 72 61 74 69 6f 6e 2f 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 43 /Operation/InstallOperation.phpC
1c40 02 00 00 9f 2c 18 50 43 02 00 00 b4 5c f5 2a b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 ....,.PC....\.*........=...src/C
1c60 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 omposer/DependencyResolver/Opera
1c80 74 69 6f 6e 2f 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 eb 01 00 00 9f 2c 18 50 tion/SolverOperation.php.....,.P
1ca0 eb 01 00 00 c4 a7 dd 94 b6 01 00 00 00 00 00 00 4b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ................K...src/Composer
1cc0 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4d 61 /DependencyResolver/Operation/Ma
1ce0 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 d6 rkAliasUninstalledOperation.php.
1d00 02 00 00 9f 2c 18 50 d6 02 00 00 5f 69 c7 ab b6 01 00 00 00 00 00 00 40 00 00 00 73 72 63 2f 43 ....,.P...._i..........@...src/C
1d20 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 omposer/DependencyResolver/Opera
1d40 74 69 6f 6e 2f 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 d3 00 00 00 9f tion/OperationInterface.php.....
1d60 2c 18 50 d3 00 00 00 d9 e2 26 e4 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f ,.P......&.........(...src/Compo
1d80 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6f 6c 2e 70 68 70 43 ser/DependencyResolver/Pool.phpC
1da0 0e 00 00 9f 2c 18 50 43 0e 00 00 bf 57 73 3a b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 ....,.PC....Ws:........(...src/C
1dc0 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 2e omposer/DependencyResolver/Rule.
1de0 70 68 70 d4 0f 00 00 9f 2c 18 50 d4 0f 00 00 1b d5 fa ee b6 01 00 00 00 00 00 00 34 00 00 00 73 php.....,.P................4...s
1e00 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 rc/Composer/DependencyResolver/R
1e20 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 50 15 00 00 9f 2c 18 50 50 15 00 00 c0 uleSetGenerator.phpP....,.PP....
1e40 dc 64 1e b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 .d........./...src/Composer/Depe
1e60 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 62 75 67 53 6f 6c 76 65 72 2e 70 68 70 89 06 ndencyResolver/DebugSolver.php..
1e80 00 00 9f 2c 18 50 89 06 00 00 a3 d2 ad 85 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f ...,.P................3...src/Co
1ea0 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 mposer/DependencyResolver/RuleSe
1ec0 74 49 74 65 72 61 74 6f 72 2e 70 68 70 14 06 00 00 9f 2c 18 50 14 06 00 00 7d f5 c7 f9 b6 01 00 tIterator.php.....,.P....}......
1ee0 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 .....2...src/Composer/Dependency
1f00 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 2e 70 68 70 69 01 00 00 9f Resolver/RuleWatchChain.phpi....
1f20 2c 18 50 69 01 00 00 68 ef 9a 2c b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f ,.Pi...h..,........*...src/Compo
1f40 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 2e 70 68 ser/DependencyResolver/Solver.ph
1f60 70 43 35 00 00 9f 2c 18 50 43 35 00 00 e5 22 66 50 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 pC5...,.PC5..."fP........+...src
1f80 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 65 71 /Composer/DependencyResolver/Req
1fa0 75 65 73 74 2e 70 68 70 89 04 00 00 9f 2c 18 50 89 04 00 00 31 1a b2 49 b6 01 00 00 00 00 00 00 uest.php.....,.P....1..I........
1fc0 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c +...src/Composer/DependencyResol
1fe0 76 65 72 2f 50 72 6f 62 6c 65 6d 2e 70 68 70 d0 0a 00 00 9f 2c 18 50 d0 0a 00 00 69 44 c1 4e b6 ver/Problem.php.....,.P....iD.N.
2000 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e .......2...src/Composer/Dependen
2020 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 2e 70 68 70 e1 06 00 cyResolver/RuleWatchGraph.php...
2040 00 9f 2c 18 50 e1 06 00 00 89 72 f4 76 b6 01 00 00 00 00 00 00 18 00 00 00 73 72 63 2f 43 6f 6d ..,.P.....r.v............src/Com
2060 70 6f 73 65 72 2f 46 61 63 74 6f 72 79 2e 70 68 70 1a 19 00 00 9f 2c 18 50 1a 19 00 00 0e 22 f3 poser/Factory.php.....,.P.....".
2080 17 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 46 .............src/Composer/Util/F
20a0 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 97 0c 00 00 9f 2c 18 50 97 0c 00 00 a6 06 9d 17 b6 01 00 ilesystem.php.....,.P...........
20c0 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 50 72 6f 63 65 .....%...src/Composer/Util/Proce
20e0 73 73 45 78 65 63 75 74 6f 72 2e 70 68 70 71 04 00 00 9f 2c 18 50 71 04 00 00 89 8a c7 ac b6 01 ssExecutor.phpq....,.Pq.........
2100 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 52 65 6d 6f ......&...src/Composer/Util/Remo
2120 74 65 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 d2 11 00 00 9f 2c 18 50 d2 11 00 00 9d a3 9c df teFilesystem.php.....,.P........
2140 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 74 ........*...src/Composer/Util/St
2160 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 2e 70 68 70 43 06 00 00 9f 2c 18 50 43 06 reamContextFactory.phpC....,.PC.
2180 00 00 23 59 74 3a b6 01 00 00 00 00 00 00 22 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 ..#Yt:........"...src/Composer/U
21a0 74 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 68 70 14 02 00 00 9f 2c 18 50 14 02 00 00 til/ErrorHandler.php.....,.P....
21c0 b4 40 85 e6 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 .@..........+...src/Composer/Uti
21e0 6c 2f 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 2e 70 68 70 36 0a 00 00 9f l/SpdxLicenseIdentifier.php6....
2200 2c 18 50 36 0a 00 00 c4 36 bb 6f b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f ,.P6....6.o............src/Compo
2220 73 65 72 2f 55 74 69 6c 2f 53 76 6e 2e 70 68 70 5b 0c 00 00 9f 2c 18 50 5b 0c 00 00 f7 82 63 9b ser/Util/Svn.php[....,.P[.....c.
2240 b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 70 6f 73 65 ............src/Composer/Compose
2260 72 2e 70 68 70 97 05 00 00 9f 2c 18 50 97 05 00 00 4f 51 70 ac b6 01 00 00 00 00 00 00 25 00 00 r.php.....,.P....OQp.........%..
2280 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 .src/Composer/Json/JsonManipulat
22a0 6f 72 2e 70 68 70 49 0a 00 00 9f 2c 18 50 49 0a 00 00 1b e9 2f fe b6 01 00 00 00 00 00 00 1e 00 or.phpI....,.PI...../...........
22c0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 69 6c 65 2e 70 68 70 ..src/Composer/Json/JsonFile.php
22e0 43 14 00 00 9f 2c 18 50 43 14 00 00 11 e7 12 70 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f C....,.PC......p........-...src/
2300 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 Composer/Json/JsonValidationExce
2320 70 74 69 6f 6e 2e 70 68 70 32 01 00 00 9f 2c 18 50 32 01 00 00 39 62 84 31 b6 01 00 00 00 00 00 ption.php2....,.P2...9b.1.......
2340 00 17 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2e 70 68 70 fc 07 00 00 .....src/Composer/Config.php....
2360 9f 2c 18 50 fc 07 00 00 f2 d0 1b f0 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 .,.P....................src/Comp
2380 6f 73 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e 74 2e 70 68 70 f4 01 00 00 9f 2c 18 50 f4 01 00 oser/Script/Event.php.....,.P...
23a0 00 a2 1a 99 bd b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 .............$...src/Composer/Sc
23c0 72 69 70 74 2f 53 63 72 69 70 74 45 76 65 6e 74 73 2e 70 68 70 81 02 00 00 9f 2c 18 50 81 02 00 ript/ScriptEvents.php.....,.P...
23e0 00 c1 a7 cb ed b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 .............$...src/Composer/Sc
2400 72 69 70 74 2f 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 6f 00 00 00 9f 2c 18 50 6f 00 00 ript/CommandEvent.phpo....,.Po..
2420 00 0d b7 14 79 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 ....y........$...src/Composer/Sc
2440 72 69 70 74 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 2e 70 68 70 e2 01 00 00 9f 2c 18 50 e2 01 00 ript/PackageEvent.php.....,.P...
2460 00 5b 10 1d b4 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 .[...........'...src/Composer/Sc
2480 72 69 70 74 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2e 70 68 70 87 08 00 00 9f 2c 18 50 ript/EventDispatcher.php.....,.P
24a0 87 08 00 00 3f 21 d5 e4 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....?!..........(...src/Composer
24c0 2f 49 6e 73 74 61 6c 6c 65 72 2f 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 15 05 00 00 /Installer/NoopInstaller.php....
24e0 9f 2c 18 50 15 05 00 00 b2 03 fd 15 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 .,.P................/...src/Comp
2500 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c oser/Installer/MetapackageInstal
2520 6c 65 72 2e 70 68 70 a6 04 00 00 9f 2c 18 50 a6 04 00 00 ab a3 66 ce b6 01 00 00 00 00 00 00 28 ler.php.....,.P......f.........(
2540 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 65 61 72 49 6e ...src/Composer/Installer/PearIn
2560 73 74 61 6c 6c 65 72 2e 70 68 70 d5 0c 00 00 9f 2c 18 50 d5 0c 00 00 f3 60 7d b0 b6 01 00 00 00 staller.php.....,.P.....`}......
2580 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 72 ...+...src/Composer/Installer/Pr
25a0 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 e1 05 00 00 9f 2c 18 50 e1 05 00 00 3e 3a ojectInstaller.php.....,.P....>:
25c0 31 c4 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 1.........+...src/Composer/Insta
25e0 6c 6c 65 72 2f 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 b3 17 00 00 9f 2c 18 ller/LibraryInstaller.php.....,.
2600 50 b3 17 00 00 43 28 18 2d b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P....C(.-............src/Compose
2620 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2e r/Installer/InstallationManager.
2640 70 68 70 c2 0d 00 00 9f 2c 18 50 c2 0d 00 00 10 4e 05 ca b6 01 00 00 00 00 00 00 2d 00 00 00 73 php.....,.P.....N..........-...s
2660 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 72 49 rc/Composer/Installer/InstallerI
2680 6e 74 65 72 66 61 63 65 2e 70 68 70 c5 02 00 00 9f 2c 18 50 c5 02 00 00 48 53 93 a1 b6 01 00 00 nterface.php.....,.P....HS......
26a0 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 ....-...src/Composer/Installer/I
26c0 6e 73 74 61 6c 6c 65 72 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 b4 09 00 00 9f 2c 18 50 b4 09 00 nstallerInstaller.php.....,.P...
26e0 00 86 07 a9 9e b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f .............$...src/Composer/Co
2700 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 f0 0b 00 00 9f 2c 18 50 f0 0b 00 nsole/Application.php.....,.P...
2720 00 33 71 30 cc b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 41 75 .3q0.........+...src/Composer/Au
2740 74 6f 6c 6f 61 64 2f 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 53 21 00 00 toload/AutoloadGenerator.phpS!..
2760 9f 2c 18 50 53 21 00 00 cc 23 2c 69 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 .,.PS!...#,i........+...src/Comp
2780 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 2e oser/Autoload/ClassMapGenerator.
27a0 70 68 70 81 07 00 00 9f 2c 18 50 81 07 00 00 00 bb ea bb b6 01 00 00 00 00 00 00 1a 00 00 00 73 php.....,.P....................s
27c0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 e3 3c 00 00 9f 2c 18 rc/Composer/Installer.php.<...,.
27e0 50 e3 3c 00 00 76 d8 db 06 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P.<..v...........%...src/Compose
2800 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 9c 15 00 00 9f 2c r/Autoload/ClassLoader.php.....,
2820 18 50 9c 15 00 00 a4 69 f6 f6 b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 73 70 64 78 2d 69 .P.....i..............res/spdx-i
2840 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 58 09 00 00 9f 2c 18 50 58 09 00 00 8c 66 e7 cc b6 01 dentifier.jsonX....,.PX....f....
2860 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 63 6f 6d 70 6f 73 65 72 2d 73 63 68 65 6d 61 2e 6a 73 ..........res/composer-schema.js
2880 6f 6e 83 2b 00 00 9f 2c 18 50 83 2b 00 00 19 c3 95 61 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 on.+...,.P.+.....a............sr
28a0 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 00 24 00 c/Composer/IO/hiddeninput.exe.$.
28c0 00 9f 2c 18 50 00 24 00 00 95 8d a5 76 b6 01 00 00 00 00 00 00 3f 00 00 00 76 65 6e 64 6f 72 2f ..,.P.$.....v........?...vendor/
28e0 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e symfony/process/Symfony/Componen
2900 74 2f 50 72 6f 63 65 73 73 2f 50 68 70 50 72 6f 63 65 73 73 2e 70 68 70 df 02 00 00 9f 2c 18 50 t/Process/PhpProcess.php.....,.P
2920 df 02 00 00 ed 5a e2 ae b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .....Z..........E...vendor/symfo
2940 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f ny/process/Symfony/Component/Pro
2960 63 65 73 73 2f 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 28 05 00 00 9f 2c 18 cess/ExecutableFinder.php(....,.
2980 50 28 05 00 00 8b f8 40 ad b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 P(.....@.........<...vendor/symf
29a0 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 ony/process/Symfony/Component/Pr
29c0 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 ba 2d 00 00 9f 2c 18 50 ba 2d 00 00 94 91 53 ocess/Process.php.-...,.P.-....S
29e0 09 b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 .........C...vendor/symfony/proc
2a00 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 72 ess/Symfony/Component/Process/Pr
2a20 6f 63 65 73 73 42 75 69 6c 64 65 72 2e 70 68 70 f7 06 00 00 9f 2c 18 50 f7 06 00 00 72 d3 cd 98 ocessBuilder.php.....,.P....r...
2a40 b6 01 00 00 00 00 00 00 51 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 ........Q...vendor/symfony/proce
2a60 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 ss/Symfony/Component/Process/Exc
2a80 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 66 00 00 eption/ExceptionInterface.phpf..
2aa0 00 9f 2c 18 50 66 00 00 00 5d f6 3e 54 b6 01 00 00 00 00 00 00 4f 00 00 00 76 65 6e 64 6f 72 2f ..,.Pf...].>T........O...vendor/
2ac0 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e symfony/process/Symfony/Componen
2ae0 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 52 75 6e 74 69 6d 65 45 78 63 65 70 t/Process/Exception/RuntimeExcep
2b00 74 69 6f 6e 2e 70 68 70 98 00 00 00 9f 2c 18 50 98 00 00 00 a2 1b d8 3a b6 01 00 00 00 00 00 00 tion.php.....,.P.......:........
2b20 55 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f U...vendor/symfony/process/Symfo
2b40 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 50 ny/Component/Process/Exception/P
2b60 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 a2 02 00 00 9f 2c 18 rocessFailedException.php.....,.
2b80 50 a2 02 00 00 d2 3a 2f fc b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 P.....:/.........H...vendor/symf
2ba0 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 ony/process/Symfony/Component/Pr
2bc0 6f 63 65 73 73 2f 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 9b 02 00 ocess/PhpExecutableFinder.php...
2be0 00 9f 2c 18 50 9b 02 00 00 b4 a5 44 45 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f ..,.P......DE........H...vendor/
2c00 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e symfony/console/Symfony/Componen
2c20 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 43 6f 6d 6d 61 6e 64 2e 70 68 t/Console/Command/HelpCommand.ph
2c40 70 e2 05 00 00 9f 2c 18 50 e2 05 00 00 dd fc 1b ff b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e p.....,.P................D...ven
2c60 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 dor/symfony/console/Symfony/Comp
2c80 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 onent/Console/Command/Command.ph
2ca0 70 25 1c 00 00 9f 2c 18 50 25 1c 00 00 30 dc 95 87 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e p%....,.P%...0...........H...ven
2cc0 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 dor/symfony/console/Symfony/Comp
2ce0 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 4c 69 73 74 43 6f 6d 6d 61 6e onent/Console/Command/ListComman
2d00 64 2e 70 68 70 3d 07 00 00 9f 2c 18 50 3d 07 00 00 5c f7 17 15 b6 01 00 00 00 00 00 00 4d 00 00 d.php=....,.P=...\...........M..
2d20 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f .vendor/symfony/console/Symfony/
2d40 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 72 2f 41 70 70 6c 69 63 61 Component/Console/Tester/Applica
2d60 74 69 6f 6e 54 65 73 74 65 72 2e 70 68 70 f2 04 00 00 9f 2c 18 50 f2 04 00 00 2a a3 b4 04 b6 01 tionTester.php.....,.P....*.....
2d80 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......I...vendor/symfony/console
2da0 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 /Symfony/Component/Console/Teste
2dc0 72 2f 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 2e 70 68 70 7a 04 00 00 9f 2c 18 50 7a 04 00 00 78 r/CommandTester.phpz....,.Pz...x
2de0 55 d7 f0 b6 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f U..........X...vendor/symfony/co
2e00 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f nsole/Symfony/Component/Console/
2e20 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 Formatter/OutputFormatterStyleSt
2e40 61 63 6b 2e 70 68 70 08 05 00 00 9f 2c 18 50 08 05 00 00 79 08 49 27 b6 01 00 00 00 00 00 00 53 ack.php.....,.P....y.I'........S
2e60 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e ...vendor/symfony/console/Symfon
2e80 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 y/Component/Console/Formatter/Ou
2ea0 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 2e 70 68 70 29 0c 00 00 9f 2c 18 50 29 0c tputFormatterStyle.php)....,.P).
2ec0 00 00 a5 19 d2 78 b6 01 00 00 00 00 00 00 5c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 .....x........\...vendor/symfony
2ee0 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f /console/Symfony/Component/Conso
2f00 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c le/Formatter/OutputFormatterStyl
2f20 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 8e 01 00 00 9f 2c 18 50 8e 01 00 00 f6 eb c4 3d b6 01 eInterface.php.....,.P.......=..
2f40 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......N...vendor/symfony/console
2f60 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 /Symfony/Component/Console/Forma
2f80 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 b8 0b 00 00 9f 2c 18 50 tter/OutputFormatter.php.....,.P
2fa0 b8 0b 00 00 0f 2a 6a 6a b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .....*jj........W...vendor/symfo
2fc0 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e ny/console/Symfony/Component/Con
2fe0 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e sole/Formatter/OutputFormatterIn
3000 74 65 72 66 61 63 65 2e 70 68 70 98 01 00 00 9f 2c 18 50 98 01 00 00 33 6c 7e b4 b6 01 00 00 00 terface.php.....,.P....3l~......
3020 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...@...vendor/symfony/console/Sy
3040 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 mfony/Component/Console/Applicat
3060 69 6f 6e 2e 70 68 70 2e 48 00 00 9f 2c 18 50 2e 48 00 00 0d df 53 cd b6 01 00 00 00 00 00 00 48 ion.php.H...,.P.H....S.........H
3080 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e ...vendor/symfony/console/Symfon
30a0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 41 y/Component/Console/Input/InputA
30c0 72 67 75 6d 65 6e 74 2e 70 68 70 9a 05 00 00 9f 2c 18 50 9a 05 00 00 fd 77 4f 6d b6 01 00 00 00 rgument.php.....,.P.....wOm.....
30e0 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...@...vendor/symfony/console/Sy
3100 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e mfony/Component/Console/Input/In
3120 70 75 74 2e 70 68 70 83 09 00 00 9f 2c 18 50 83 09 00 00 7c 3e 7f 5c b6 01 00 00 00 00 00 00 46 put.php.....,.P....|>.\........F
3140 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e ...vendor/symfony/console/Symfon
3160 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 53 74 72 69 6e 67 y/Component/Console/Input/String
3180 49 6e 70 75 74 2e 70 68 70 92 05 00 00 9f 2c 18 50 92 05 00 00 8b 63 80 95 b6 01 00 00 00 00 00 Input.php.....,.P.....c.........
31a0 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 .F...vendor/symfony/console/Symf
31c0 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 ony/Component/Console/Input/Inpu
31e0 74 4f 70 74 69 6f 6e 2e 70 68 70 1a 0b 00 00 9f 2c 18 50 1a 0b 00 00 58 a5 aa 58 b6 01 00 00 00 tOption.php.....,.P....X..X.....
3200 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...D...vendor/symfony/console/Sy
3220 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 41 72 mfony/Component/Console/Input/Ar
3240 67 76 49 6e 70 75 74 2e 70 68 70 c4 10 00 00 9f 2c 18 50 c4 10 00 00 f6 34 b3 cc b6 01 00 00 00 gvInput.php.....,.P.....4.......
3260 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...I...vendor/symfony/console/Sy
3280 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e mfony/Component/Console/Input/In
32a0 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 20 03 00 00 9f 2c 18 50 20 03 00 00 39 94 f8 c7 putInterface.php.....,.P....9...
32c0 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........E...vendor/symfony/conso
32e0 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 le/Symfony/Component/Console/Inp
3300 75 74 2f 41 72 72 61 79 49 6e 70 75 74 2e 70 68 70 d1 08 00 00 9f 2c 18 50 d1 08 00 00 da 5f af ut/ArrayInput.php.....,.P....._.
3320 c3 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 .........J...vendor/symfony/cons
3340 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e ole/Symfony/Component/Console/In
3360 70 75 74 2f 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 2e 70 68 70 3b 25 00 00 9f 2c 18 50 3b put/InputDefinition.php;%...,.P;
3380 25 00 00 7f 9a bf df b6 01 00 00 00 00 00 00 3a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e %..............:...vendor/symfon
33a0 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
33c0 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 e4 0d 00 00 9f 2c 18 50 e4 0d 00 00 d4 ac eb c1 b6 01 00 ole/Shell.php.....,.P...........
33e0 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f .....B...vendor/symfony/console/
3400 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 Symfony/Component/Console/Output
3420 2f 4f 75 74 70 75 74 2e 70 68 70 78 07 00 00 9f 2c 18 50 78 07 00 00 c6 02 19 a4 b6 01 00 00 00 /Output.phpx....,.Px............
3440 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...F...vendor/symfony/console/Sy
3460 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4e mfony/Component/Console/Output/N
3480 75 6c 6c 4f 75 74 70 75 74 2e 70 68 70 a3 00 00 00 9f 2c 18 50 a3 00 00 00 92 c7 a2 8e b6 01 00 ullOutput.php.....,.P...........
34a0 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f .....R...vendor/symfony/console/
34c0 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 Symfony/Component/Console/Output
34e0 2f 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 15 01 00 00 9f /ConsoleOutputInterface.php.....
3500 2c 18 50 15 01 00 00 0e 8d c3 06 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 ,.P................H...vendor/sy
3520 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f mfony/console/Symfony/Component/
3540 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 53 74 72 65 61 6d 4f 75 74 70 75 74 2e 70 68 70 99 Console/Output/StreamOutput.php.
3560 04 00 00 9f 2c 18 50 99 04 00 00 c1 96 d0 a5 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f ....,.P................K...vendo
3580 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
35a0 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 49 6e 74 65 72 66 61 ent/Console/Output/OutputInterfa
35c0 63 65 2e 70 68 70 e6 02 00 00 9f 2c 18 50 e6 02 00 00 2e 1b 93 3c b6 01 00 00 00 00 00 00 49 00 ce.php.....,.P.......<........I.
35e0 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/console/Symfony
3600 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 43 6f 6e 73 6f 6c /Component/Console/Output/Consol
3620 65 4f 75 74 70 75 74 2e 70 68 70 74 05 00 00 9f 2c 18 50 74 05 00 00 28 c8 3e 54 b6 01 00 00 00 eOutput.phpt....,.Pt...(.>T.....
3640 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...K...vendor/symfony/console/Sy
3660 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 mfony/Component/Console/Helper/H
3680 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 00 9f 2c 18 50 ef 00 00 00 3d 65 elperInterface.php.....,.P....=e
36a0 1b 0c b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e ..........K...vendor/symfony/con
36c0 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 sole/Symfony/Component/Console/H
36e0 65 6c 70 65 72 2f 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 2e 70 68 70 07 05 00 00 9f 2c 18 elper/FormatterHelper.php.....,.
3700 50 07 05 00 00 04 1b 38 9f b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 P......8.........E...vendor/symf
3720 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f ony/console/Symfony/Component/Co
3740 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 53 65 74 2e 70 68 70 d3 03 00 00 9f 2c nsole/Helper/HelperSet.php.....,
3760 18 50 d3 03 00 00 98 5e 39 74 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .P.....^9t........H...vendor/sym
3780 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 fony/console/Symfony/Component/C
37a0 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 ec 05 onsole/Helper/DialogHelper.php..
37c0 00 00 9f 2c 18 50 ec 05 00 00 31 be 47 8a b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 ...,.P....1.G.........B...vendor
37e0 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 /symfony/console/Symfony/Compone
3800 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 2e 70 68 70 39 01 00 00 nt/Console/Helper/Helper.php9...
3820 9f 2c 18 50 39 01 00 00 8b fa a9 8a b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 6f 72 2f 73 .,.P9...............9...vendor/s
3840 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f ymfony/finder/Symfony/Component/
3860 46 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 3c 19 00 00 9f 2c 18 50 3c 19 00 00 1b d3 51 Finder/Finder.php<....,.P<.....Q
3880 a1 b6 01 00 00 00 00 00 00 37 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 .........7...vendor/symfony/find
38a0 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 47 6c 6f 62 er/Symfony/Component/Finder/Glob
38c0 2e 70 68 70 0d 05 00 00 9f 2c 18 50 0d 05 00 00 7a 9d f8 0a b6 01 00 00 00 00 00 00 54 00 00 00 .php.....,.P....z...........T...
38e0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f vendor/symfony/finder/Symfony/Co
3900 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 65 70 74 68 52 61 6e mponent/Finder/Iterator/DepthRan
3920 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 68 03 00 00 9f 2c 18 50 68 03 00 00 geFilterIterator.phph....,.Ph...
3940 9b 55 6f 1a b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 .Uo.........L...vendor/symfony/f
3960 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 inder/Symfony/Component/Finder/I
3980 74 65 72 61 74 6f 72 2f 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 2e 70 68 70 dc 05 00 00 terator/SortableIterator.php....
39a0 9f 2c 18 50 dc 05 00 00 20 48 a0 3a b6 01 00 00 00 00 00 00 55 00 00 00 76 65 6e 64 6f 72 2f 73 .,.P.....H.:........U...vendor/s
39c0 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f ymfony/finder/Symfony/Component/
39e0 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 Finder/Iterator/FilecontentFilte
3a00 72 49 74 65 72 61 74 6f 72 2e 70 68 70 23 03 00 00 9f 2c 18 50 23 03 00 00 da 5f 56 c7 b6 01 00 rIterator.php#....,.P#...._V....
3a20 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 .....S...vendor/symfony/finder/S
3a40 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 ymfony/Component/Finder/Iterator
3a60 2f 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 2d 02 00 00 /SizeRangeFilterIterator.php-...
3a80 9f 2c 18 50 2d 02 00 00 fc 36 51 1f b6 01 00 00 00 00 00 00 5a 00 00 00 76 65 6e 64 6f 72 2f 73 .,.P-....6Q.........Z...vendor/s
3aa0 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f ymfony/finder/Symfony/Component/
3ac0 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 Finder/Iterator/ExcludeDirectory
3ae0 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 a6 02 00 00 9f 2c 18 50 a6 02 00 00 d3 40 FilterIterator.php.....,.P.....@
3b00 31 de b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 1.........V...vendor/symfony/fin
3b20 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 der/Symfony/Component/Finder/Ite
3b40 72 61 74 6f 72 2f 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 rator/MultiplePcreFilterIterator
3b60 2e 70 68 70 a8 03 00 00 9f 2c 18 50 a8 03 00 00 11 59 2d e6 b6 01 00 00 00 00 00 00 50 00 00 00 .php.....,.P.....Y-.........P...
3b80 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f vendor/symfony/finder/Symfony/Co
3ba0 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 43 75 73 74 6f 6d 46 69 mponent/Finder/Iterator/CustomFi
3bc0 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5c 02 00 00 9f 2c 18 50 5c 02 00 00 49 ca 33 b2 lterIterator.php\....,.P\...I.3.
3be0 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........R...vendor/symfony/finde
3c00 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 r/Symfony/Component/Finder/Itera
3c20 74 6f 72 2f 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 7a 02 tor/FilenameFilterIterator.phpz.
3c40 00 00 9f 2c 18 50 7a 02 00 00 57 6c 19 48 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 ...,.Pz...Wl.H........S...vendor
3c60 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e /symfony/finder/Symfony/Componen
3c80 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 t/Finder/Iterator/DateRangeFilte
3ca0 72 49 74 65 72 61 74 6f 72 2e 70 68 70 2f 02 00 00 9f 2c 18 50 2f 02 00 00 d8 b4 1b 08 b6 01 00 rIterator.php/....,.P/..........
3cc0 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 .....R...vendor/symfony/finder/S
3ce0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 ymfony/Component/Finder/Iterator
3d00 2f 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5d 02 00 00 9f /FileTypeFilterIterator.php]....
3d20 2c 18 50 5d 02 00 00 fe c9 56 90 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f 72 2f 73 79 ,.P].....V.........V...vendor/sy
3d40 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 mfony/finder/Symfony/Component/F
3d60 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 inder/Iterator/RecursiveDirector
3d80 79 49 74 65 72 61 74 6f 72 2e 70 68 70 37 02 00 00 9f 2c 18 50 37 02 00 00 01 50 88 37 b6 01 00 yIterator.php7....,.P7....P.7...
3da0 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 .....L...vendor/symfony/finder/S
3dc0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 ymfony/Component/Finder/Comparat
3de0 6f 72 2f 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 26 03 00 00 9f 2c 18 50 26 03 00 or/DateComparator.php&....,.P&..
3e00 00 e9 68 64 b1 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ..hd.........N...vendor/symfony/
3e20 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f finder/Symfony/Component/Finder/
3e40 43 6f 6d 70 61 72 61 74 6f 72 2f 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 79 Comparator/NumberComparator.phpy
3e60 03 00 00 9f 2c 18 50 79 03 00 00 22 60 14 db b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f ....,.Py..."`..........H...vendo
3e80 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 r/symfony/finder/Symfony/Compone
3ea0 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2e nt/Finder/Comparator/Comparator.
3ec0 70 68 70 88 03 00 00 9f 2c 18 50 88 03 00 00 3e 9a 5d 58 b6 01 00 00 00 00 00 00 3e 00 00 00 76 php.....,.P....>.]X........>...v
3ee0 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d endor/symfony/finder/Symfony/Com
3f00 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 53 70 6c 46 69 6c 65 49 6e 66 6f 2e 70 68 70 86 02 00 ponent/Finder/SplFileInfo.php...
3f20 00 9f 2c 18 50 86 02 00 00 82 26 47 c7 b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f ..,.P.....&G.........4...vendor/
3f40 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f seld/jsonlint/src/Seld/JsonLint/
3f60 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 3e 00 00 00 9f 2c 18 50 3e 00 00 00 ff 71 9f 9f b6 01 00 Undefined.php>....,.P>....q.....
3f80 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 .....5...vendor/seld/jsonlint/sr
3fa0 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4a 73 6f 6e 50 61 72 73 65 72 2e 70 68 70 83 26 c/Seld/JsonLint/JsonParser.php.&
3fc0 00 00 9f 2c 18 50 83 26 00 00 bb d0 e1 7e b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 ...,.P.&.....~........0...vendor
3fe0 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 /seld/jsonlint/src/Seld/JsonLint
4000 2f 4c 65 78 65 72 2e 70 68 70 91 10 00 00 9f 2c 18 50 91 10 00 00 38 49 09 44 b6 01 00 00 00 00 /Lexer.php.....,.P....8I.D......
4020 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 ..;...vendor/seld/jsonlint/src/S
4040 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 eld/JsonLint/ParsingException.ph
4060 70 1d 01 00 00 9f 2c 18 50 1d 01 00 00 fd bb 3a cb b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e p.....,.P......:.........I...ven
4080 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 dor/justinrainbow/json-schema/sr
40a0 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 55 6e 64 65 66 69 6e c/JsonSchema/Constraints/Undefin
40c0 65 64 2e 70 68 70 78 06 00 00 9f 2c 18 50 78 06 00 00 68 b7 d9 71 b6 01 00 00 00 00 00 00 44 00 ed.phpx....,.Px...h..q........D.
40e0 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 ..vendor/justinrainbow/json-sche
4100 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 54 79 ma/src/JsonSchema/Constraints/Ty
4120 70 65 2e 70 68 70 d4 05 00 00 9f 2c 18 50 d4 05 00 00 85 e9 2b 46 b6 01 00 00 00 00 00 00 46 00 pe.php.....,.P......+F........F.
4140 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 ..vendor/justinrainbow/json-sche
4160 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 63 ma/src/JsonSchema/Constraints/Sc
4180 68 65 6d 61 2e 70 68 70 d4 01 00 00 9f 2c 18 50 d4 01 00 00 b9 3a 66 4d b6 01 00 00 00 00 00 00 hema.php.....,.P.....:fM........
41a0 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 F...vendor/justinrainbow/json-sc
41c0 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f hema/src/JsonSchema/Constraints/
41e0 4e 75 6d 62 65 72 2e 70 68 70 57 02 00 00 9f 2c 18 50 57 02 00 00 2e 31 f2 e7 b6 01 00 00 00 00 Number.phpW....,.PW....1........
4200 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d ..F...vendor/justinrainbow/json-
4220 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 schema/src/JsonSchema/Constraint
4240 73 2f 4f 62 6a 65 63 74 2e 70 68 70 94 07 00 00 9f 2c 18 50 94 07 00 00 63 e8 5a fb b6 01 00 00 s/Object.php.....,.P....c.Z.....
4260 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f ....S...vendor/justinrainbow/jso
4280 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 n-schema/src/JsonSchema/Constrai
42a0 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 24 01 00 00 9f nts/ConstraintInterface.php$....
42c0 2c 18 50 24 01 00 00 03 67 d6 ec b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 6a 75 ,.P$....g..........J...vendor/ju
42e0 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e stinrainbow/json-schema/src/Json
4300 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 Schema/Constraints/Constraint.ph
4320 70 15 0a 00 00 9f 2c 18 50 15 0a 00 00 3e 1d e3 18 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e p.....,.P....>...........J...ven
4340 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 dor/justinrainbow/json-schema/sr
4360 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6c 6c 65 63 74 c/JsonSchema/Constraints/Collect
4380 69 6f 6e 2e 70 68 70 56 08 00 00 9f 2c 18 50 56 08 00 00 dc 3c a7 b6 b6 01 00 00 00 00 00 00 44 ion.phpV....,.PV....<..........D
43a0 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 ...vendor/justinrainbow/json-sch
43c0 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 45 ema/src/JsonSchema/Constraints/E
43e0 6e 75 6d 2e 70 68 70 86 01 00 00 9f 2c 18 50 86 01 00 00 24 28 6d be b6 01 00 00 00 00 00 00 46 num.php.....,.P....$(m.........F
4400 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 ...vendor/justinrainbow/json-sch
4420 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 ema/src/JsonSchema/Constraints/S
4440 74 72 69 6e 67 2e 70 68 70 98 02 00 00 9f 2c 18 50 98 02 00 00 b4 f5 97 6b b6 01 00 00 00 00 00 tring.php.....,.P.......k.......
4460 00 3d 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 .=...vendor/justinrainbow/json-s
4480 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 56 61 6c 69 64 61 74 6f 72 2e 70 chema/src/JsonSchema/Validator.p
44a0 68 70 5b 01 00 00 9f 2c 18 50 5b 01 00 00 38 11 97 f6 b6 01 00 00 00 00 00 00 13 00 00 00 76 65 hp[....,.P[...8...............ve
44c0 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 1a 02 00 00 9f 2c 18 50 1a 02 00 00 9c b0 61 ndor/autoload.php.....,.P......a
44e0 5b b6 01 00 00 00 00 00 00 27 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 [........'...vendor/composer/aut
4500 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 bb 01 00 00 9f 2c 18 50 bb 01 00 00 oload_namespaces.php.....,.P....
4520 11 1f 28 c3 b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f ..(.........%...vendor/composer/
4540 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 5a 00 00 00 9f 2c 18 50 5a 00 00 autoload_classmap.phpZ....,.PZ..
4560 00 eb a6 e1 96 b6 01 00 00 00 00 00 00 1f 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 .................vendor/composer
4580 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 43 09 00 00 9f 2c 18 50 43 09 00 00 85 1c a0 e0 /ClassLoader.phpC....,.PC.......
45a0 b6 01 00 00 00 00 00 00 0c 00 00 00 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 01 01 00 00 9f 2c 18 50 ............bin/composer.....,.P
45c0 01 01 00 00 ef 0c 6f 68 b6 01 00 00 00 00 00 00 07 00 00 00 4c 49 43 45 4e 53 45 33 04 00 00 9f ......oh............LICENSE3....
45e0 2c 18 50 33 04 00 00 0b 81 32 0b b6 01 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ,.P3.....2.........<?php........
4600 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 24 66 69 ....function.includeIfExists($fi
4620 6c 65 29 0a 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a le).{.if.(file_exists($file)).{.
4640 72 65 74 75 72 6e 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 28 return.include.$file;.}.}..if.((
4660 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 5f 5f 44 49 52 !$loader.=.includeIfExists(__DIR
4680 5f 5f 2e 27 2f 2e 2e 2f 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 20 26 __.'/../vendor/autoload.php')).&
46a0 26 20 28 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 5f 5f &.(!$loader.=.includeIfExists(__
46c0 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 DIR__.'/../../../autoload.php'))
46e0 29 20 7b 0a 64 69 65 28 27 59 6f 75 20 6d 75 73 74 20 73 65 74 20 75 70 20 74 68 65 20 70 72 6f ).{.die('You.must.set.up.the.pro
4700 6a 65 63 74 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 20 72 75 6e 20 74 68 65 20 66 6f 6c 6c 6f ject.dependencies,.run.the.follo
4720 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 3a 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 63 75 72 6c 20 2d wing.commands:'.PHP_EOL..'curl.-
4740 73 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 69 6e 73 74 61 6c 6c s.http://getcomposer.org/install
4760 65 72 20 7c 20 70 68 70 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 70 68 70 20 63 6f 6d 70 6f 73 65 72 er.|.php'.PHP_EOL..'php.composer
4780 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 27 2e 50 48 50 5f 45 4f 4c 29 3b 0a 7d 0a 0a 72 65 74 75 .phar.install'.PHP_EOL);.}..retu
47a0 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d rn.$loader;.<?php............nam
47c0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 espace.Composer\IO;..use.Symfony
47e0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e \Component\Console\Input\InputIn
4800 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 terface;.use.Symfony\Component\C
4820 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 onsole\Output\OutputInterface;.u
4840 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c se.Symfony\Component\Console\Hel
4860 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 per\HelperSet;........class.Cons
4880 6f 6c 65 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 oleIO.implements.IOInterface.{.p
48a0 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 rotected.$input;.protected.$outp
48c0 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 6f 74 65 63 ut;.protected.$helperSet;.protec
48e0 74 65 64 20 24 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 ted.$authorizations.=.array();.p
4900 72 6f 74 65 63 74 65 64 20 24 6c 61 73 74 4d 65 73 73 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 rotected.$lastMessage;.........p
4920 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 6e 70 75 74 ublic.function.__construct(Input
4940 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
4960 65 20 24 6f 75 74 70 75 74 2c 20 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 e.$output,.HelperSet.$helperSet)
4980 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d .{.$this->input.=.$input;.$this-
49a0 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 >output.=.$output;.$this->helper
49c0 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 Set.=.$helperSet;.}.....public.f
49e0 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e unction.isInteractive().{.return
4a00 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a .$this->input->isInteractive();.
4a20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 }.....public.function.isDecorate
4a40 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 d().{.return.$this->output->isDe
4a60 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e corated();.}.....public.function
4a80 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 74 68 .isVerbose().{.return.(bool).$th
4aa0 69 73 2d 3e 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 3b is->input->getOption('verbose');
4ac0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 .}.....public.function.write($me
4ae0 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 ssages,.$newline.=.true).{.$this
4b00 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c ->output->write($messages,.$newl
4b20 69 6e 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 6a 6f 69 6e 28 ine);.$this->lastMessage.=.join(
4b40 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d $newline.?."\n".:.'',.(array).$m
4b60 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 essages);.}.....public.function.
4b80 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 overwrite($messages,.$newline.=.
4ba0 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 6d 65 73 73 61 67 65 true,.$size.=.null).{...$message
4bc0 73 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 s.=.join($newline.?."\n".:.'',.(
4be0 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 array).$messages);....if.(!isset
4c00 28 24 73 69 7a 65 29 29 20 7b 0a 0a 20 24 73 69 7a 65 20 3d 20 73 74 72 6c 65 6e 28 73 74 72 69 ($size)).{...$size.=.strlen(stri
4c20 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a p_tags($this->lastMessage));.}..
4c40 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c .$this->write(str_repeat("\x08",
4c60 20 24 73 69 7a 65 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 .$size),.false);....$this->write
4c80 28 24 6d 65 73 73 61 67 65 73 2c 20 66 61 6c 73 65 29 3b 0a 0a 24 66 69 6c 6c 20 3d 20 24 73 69 ($messages,.false);..$fill.=.$si
4ca0 7a 65 20 2d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 6d 65 73 73 61 67 65 73 ze.-.strlen(strip_tags($messages
4cc0 29 29 3b 0a 69 66 20 28 24 66 69 6c 6c 20 3e 20 30 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 ));.if.($fill.>.0).{...$this->wr
4ce0 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 ite(str_repeat('.',.$fill),.fals
4d00 65 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c e);...$this->write(str_repeat("\
4d20 78 30 38 22 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 x08",.$fill),.false);.}..if.($ne
4d40 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 24 74 68 wline).{.$this->write('');.}.$th
4d60 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 24 6d 65 73 73 61 67 65 73 3b 0a 7d 0a 0a is->lastMessage.=.$messages;.}..
4d80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e ...public.function.ask($question
4da0 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ,.$default.=.null).{.return.$thi
4dc0 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b s->helperSet->get('dialog')->ask
4de0 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 ($this->output,.$question,.$defa
4e00 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 ult);.}.....public.function.askC
4e20 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 onfirmation($question,.$default.
4e40 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 =.true).{.return.$this->helperSe
4e60 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f t->get('dialog')->askConfirmatio
4e80 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 n($this->output,.$question,.$def
4ea0 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b ault);.}.....public.function.ask
4ec0 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f AndValidate($question,.$validato
4ee0 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d r,.$attempts.=.false,.$default.=
4f00 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 .null).{.return.$this->helperSet
4f20 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 ->get('dialog')->askAndValidate(
4f40 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 $this->output,.$question,.$valid
4f60 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a ator,.$attempts,.$default);.}...
4f80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 ..public.function.askAndHideAnsw
4fa0 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 er($question).{...if.(defined('P
4fc0 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 HP_WINDOWS_VERSION_BUILD')).{.$e
4fe0 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 xe.=.__DIR__.'\\hiddeninput.exe'
5000 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 ;....if.('phar:'.===.substr(__FI
5020 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 LE__,.0,.5)).{.$tmpExe.=.sys_get
5040 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a _temp_dir().'/hiddeninput.exe';.
5060 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 65 78 65 20 3d 20 24 74 6d 70 copy($exe,.$tmpExe);.$exe.=.$tmp
5080 45 78 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 Exe;.}..$this->write($question,.
50a0 66 61 6c 73 65 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 false);.$value.=.rtrim(shell_exe
50c0 63 28 24 65 78 65 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 0a 0a 20 69 c($exe));.$this->write('');....i
50e0 66 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 6d 70 f.(isset($tmpExe)).{.unlink($tmp
5100 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 Exe);.}..return.$value;.}..if.(f
5120 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 20 7b 0a 0a 20 ile_exists('/usr/bin/env')).{...
5140 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 65 63 68 $test.=."/usr/bin/env.%s.-c.'ech
5160 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 o.OK'.2>./dev/null";.foreach.(ar
5180 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 63 73 68 27 29 ray('bash',.'zsh',.'ksh',.'csh')
51a0 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 69 6d 28 73 68 .as.$sh).{.if.('OK'.===.rtrim(sh
51c0 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 29 29 29 29 20 ell_exec(sprintf($test,.$sh)))).
51e0 7b 0a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 69 66 20 28 69 {.$shell.=.$sh;.break;.}.}.if.(i
5200 73 73 65 74 28 24 73 68 65 6c 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 71 75 sset($shell)).{.$this->write($qu
5220 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 61 64 43 6d 64 20 3d 20 28 24 73 68 65 estion,.false);.$readCmd.=.($she
5240 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 29 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 ll.===.'csh').?.'set.mypassword.
5260 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d =.$<'.:.'read.mypassword';.$comm
5280 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d and.=.sprintf("/usr/bin/env.%s.-
52a0 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 c.'stty.-echo;.%s;.stty.echo;.ec
52c0 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 ho.\$mypassword'",.$shell,.$read
52e0 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 Cmd);.$value.=.rtrim(shell_exec(
5300 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 0a 72 $command));.$this->write('');..r
5320 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 eturn.$value;.}.}....return.$thi
5340 73 2d 3e 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->ask($question);.}.....public.
5360 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 function.getAuthorizations().{.r
5380 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 3b 0a 7d 0a 0a eturn.$this->authorizations;.}..
53a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 69 7a 61 74 ...public.function.hasAuthorizat
53c0 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 61 75 74 68 73 20 3d 20 ion($repositoryName).{.$auths.=.
53e0 24 74 68 69 73 2d 3e 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 $this->getAuthorizations();..ret
5400 75 72 6e 20 69 73 73 65 74 28 24 61 75 74 68 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 urn.isset($auths[$repositoryName
5420 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 ]);.}.....public.function.getAut
5440 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 61 horization($repositoryName).{.$a
5460 75 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 uths.=.$this->getAuthorizations(
5480 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 61 75 74 68 73 5b 24 72 65 70 6f 73 69 74 );..return.isset($auths[$reposit
54a0 6f 72 79 4e 61 6d 65 5d 29 20 3f 20 24 61 75 74 68 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 oryName]).?.$auths[$repositoryNa
54c0 6d 65 5d 20 3a 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 6e 75 6c 6c 2c 20 me].:.array('username'.=>.null,.
54e0 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 'password'.=>.null);.}.....publi
5500 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 c.function.setAuthorization($rep
5520 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 ositoryName,.$username,.$passwor
5540 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e d.=.null).{.$this->authorization
5560 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 27 75 73 65 72 s[$repositoryName].=.array('user
5580 6e 61 6d 65 27 20 3d 3e 20 24 75 73 65 72 6e 61 6d 65 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d name'.=>.$username,.'password'.=
55a0 3e 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a >.$password);.}.}.<?php.........
55c0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a 0a ...namespace.Composer\IO;.......
55e0 63 6c 61 73 73 20 4e 75 6c 6c 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 66 class.NullIO.implements.IOInterf
5600 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 ace.{....public.function.isInter
5620 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 active().{.return.false;.}.....p
5640 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 ublic.function.isVerbose().{.ret
5660 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e urn.false;.}.....public.function
5680 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d .isDecorated().{.return.false;.}
56a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 .....public.function.write($mess
56c0 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 ages,.$newline.=.true).{.}.....p
56e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 ublic.function.overwrite($messag
5700 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 29 es,.$newline.=.true,.$size.=.80)
5720 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 .{.}.....public.function.ask($qu
5740 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 estion,.$default.=.null).{.retur
5760 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n.$default;.}.....public.functio
5780 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 n.askConfirmation($question,.$de
57a0 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b fault.=.true).{.return.$default;
57c0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c .}.....public.function.askAndVal
57e0 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 idate($question,.$validator,.$at
5800 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 tempts.=.false,.$default.=.null)
5820 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .{.return.$default;.}.....public
5840 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 .function.askAndHideAnswer($ques
5860 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 tion).{.return.null;.}.....publi
5880 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 0a 7b c.function.getAuthorizations().{
58a0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.array();.}.....public.fu
58c0 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 nction.hasAuthorization($reposit
58e0 6f 72 79 4e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 oryName).{.return.false;.}.....p
5900 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 ublic.function.getAuthorization(
5920 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 $repositoryName).{.return.array(
5940 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 6e 75 6c 6c 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 'username'.=>.null,.'password'.=
5960 3e 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 >.null);.}.....public.function.s
5980 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c etAuthorization($repositoryName,
59a0 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a .$username,.$password.=.null).{.
59c0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
59e0 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 4f 49 6e omposer\IO;.......interface.IOIn
5a00 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 terface.{......public.function.i
5a20 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e sInteractive();.......public.fun
5a40 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ction.isVerbose();.......public.
5a60 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 function.isDecorated();........p
5a80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 ublic.function.write($messages,.
5aa0 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $newline.=.true);.........public
5ac0 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 .function.overwrite($messages,.$
5ae0 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 29 3b 0a 0a 0a 0a newline.=.true,.$size.=.80);....
5b00 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 ........public.function.ask($que
5b20 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a stion,.$default.=.null);........
5b40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 ....public.function.askConfirmat
5b60 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 3b ion($question,.$default.=.true);
5b80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ..................public.functio
5ba0 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c n.askAndValidate($question,.$val
5bc0 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 idator,.$attempts.=.false,.$defa
5be0 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ult.=.null);.........public.func
5c00 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 tion.askAndHideAnswer($question)
5c20 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f ;.......public.function.getAutho
5c40 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rizations();.........public.func
5c60 74 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 tion.hasAuthorization($repositor
5c80 79 4e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 yName);.........public.function.
5ca0 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 getAuthorization($repositoryName
5cc0 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 );.........public.function.setAu
5ce0 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 73 thorization($repositoryName,.$us
5d00 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 3b 0a 7d 0a 3c 3f 70 ername,.$password.=.null);.}.<?p
5d20 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
5d40 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 \Command;..use.Composer\Composer
5d60 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 ;.use.Composer\Console\Applicati
5d80 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b on;.use.Composer\IO\IOInterface;
5da0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 4f 3b 0a 75 73 65 20 53 79 6d .use.Composer\IO\NullIO;.use.Sym
5dc0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 fony\Component\Console\Command\C
5de0 6f 6d 6d 61 6e 64 20 61 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 ommand.as.BaseCommand;........ab
5e00 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 42 61 73 stract.class.Command.extends.Bas
5e20 65 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b eCommand.{....private.$composer;
5e40 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .....private.$io;......public.fu
5e60 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 nction.getComposer($required.=.t
5e80 72 75 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f rue).{.if.(null.===.$this->compo
5ea0 73 65 72 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 ser).{.$application.=.$this->get
5ec0 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 Application();.if.($application.
5ee0 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 instanceof.Application).{..$this
5f00 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 43 6f ->composer.=.$application->getCo
5f20 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 mposer($required);.}.elseif.($re
5f40 71 75 69 72 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 quired).{.throw.new.\RuntimeExce
5f60 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 20 43 6f 6d 70 6f ption(.'Could.not.create.a.Compo
5f80 73 65 72 5c 43 6f 6d 70 6f 73 65 72 20 69 6e 73 74 61 6e 63 65 2c 20 79 6f 75 20 6d 75 73 74 20 ser\Composer.instance,.you.must.
5fa0 69 6e 6a 65 63 74 20 27 2e 0a 27 6f 6e 65 20 69 66 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 inject.'..'one.if.this.command.i
5fc0 73 20 6e 6f 74 20 75 73 65 64 20 77 69 74 68 20 61 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f s.not.used.with.a.Composer\Conso
5fe0 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 27 0a 29 3b 0a 7d 0a 7d 0a le\Application.instance'.);.}.}.
6000 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 .return.$this->composer;.}.....p
6020 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 70 6f 73 65 72 28 43 6f 6d 70 6f ublic.function.setComposer(Compo
6040 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 ser.$composer).{.$this->composer
6060 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .=.$composer;.}.....public.funct
6080 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 ion.getIO().{.if.(null.===.$this
60a0 2d 3e 69 6f 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 ->io).{.$application.=.$this->ge
60c0 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e tApplication();.if.($application
60e0 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 .instanceof.Application).{..$thi
6100 73 2d 3e 69 6f 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 49 4f 28 29 3b 0a 7d s->io.=.$application->getIO();.}
6120 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 .else.{.$this->io.=.new.NullIO()
6140 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 ;.}.}..return.$this->io;.}.....p
6160 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 4f 28 49 4f 49 6e 74 65 72 66 61 63 65 ublic.function.setIO(IOInterface
6180 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 7d 0a 3c 3f 70 .$io).{.$this->io.=.$io;.}.}.<?p
61a0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
61c0 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b \Command;..use.Composer\Factory;
61e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d .use.Composer\Installer;.use.Com
6200 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 poser\Installer\ProjectInstaller
6220 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 ;.use.Composer\IO\IOInterface;.u
6240 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 se.Composer\Repository\ComposerR
6260 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f epository;.use.Composer\Reposito
6280 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 ry\CompositeRepository;.use.Comp
62a0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 oser\Repository\FilesystemReposi
62c0 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 4e 6f tory;.use.Composer\Repository\No
62e0 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 tifiableRepositoryInterface;.use
6300 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 .Composer\Repository\InstalledFi
6320 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c lesystemRepository;.use.Symfony\
6340 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 Component\Console\Input\InputArg
6360 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ument;.use.Symfony\Component\Con
6380 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 sole\Input\InputInterface;.use.S
63a0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
63c0 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e nputOption;.use.Symfony\Componen
63e0 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 t\Console\Output\OutputInterface
6400 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 ;.use.Composer\Json\JsonFile;.us
6420 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d e.Composer\Util\RemoteFilesystem
6440 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 ;.use.Composer\Package\Version\V
6460 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 72 65 61 74 65 ersionParser;.......class.Create
6480 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b ProjectCommand.extends.Command.{
64a0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a .protected.function.configure().
64c0 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 {.$this.->setName('create-projec
64e0 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 20 6e 65 77 t').->setDescription('Create.new
6500 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 67 69 76 .project.from.a.package.into.giv
6520 65 6e 20 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 en.directory.').->setDefinition(
6540 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 array(.new.InputArgument('packag
6560 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 e',.InputArgument::REQUIRED,.'Pa
6580 63 6b 61 67 65 20 6e 61 6d 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 27 29 2c 0a 6e 65 ckage.name.to.be.installed'),.ne
65a0 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 2c 20 49 6e 70 w.InputArgument('directory',.Inp
65c0 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 44 69 72 65 63 74 6f 72 79 utArgument::OPTIONAL,.'Directory
65e0 20 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 73 20 73 68 6f 75 6c 64 20 62 65 20 63 72 65 61 74 .where.the.files.should.be.creat
6600 65 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e ed'),.new.InputArgument('version
6620 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 72 ',.InputArgument::OPTIONAL,.'Ver
6640 73 69 6f 6e 2c 20 77 69 6c 6c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6c 61 74 65 73 74 27 29 2c sion,.will.defaults.to.latest'),
6660 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 .new.InputOption('prefer-source'
6680 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c ,.null,.InputOption::VALUE_NONE,
66a0 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 .'Forces.installation.from.packa
66c0 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 ge.sources.when.possible,.includ
66e0 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 ing.VCS.information.'),.new.Inpu
6700 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 2c 20 6e 75 6c 6c 2c 20 tOption('repository-url',.null,.
6720 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 69 InputOption::VALUE_REQUIRED,.'Pi
6740 63 6b 20 61 20 64 69 66 66 65 72 65 6e 74 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 74 6f ck.a.different.repository.url.to
6760 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e .look.for.the.package.'),.new.In
6780 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 putOption('dev',.null,.InputOpti
67a0 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 69 6e 73 74 on::VALUE_NONE,.'Whether.to.inst
67c0 61 6c 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 all.dependencies.for.development
67e0 2e 27 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 .').)).->setHelp(<<<EOT.The.<inf
6800 6f 3e 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 o>create-project</info>.command.
6820 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 67 69 76 creates.a.new.project.from.a.giv
6840 65 6e 0a 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 61 20 6e 65 77 20 64 69 72 65 63 74 6f 72 79 2e en.package.into.a.new.directory.
6860 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 6f 6f .You.can.use.this.command.to.boo
6880 74 73 74 72 61 70 20 6e 65 77 0a 70 72 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 75 70 20 61 20 63 tstrap.new.projects.or.setup.a.c
68a0 6c 65 61 6e 20 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e 73 74 61 6c 6c 61 lean.version-controlled.installa
68c0 74 69 6f 6e 0a 66 6f 72 20 64 65 76 65 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a tion.for.developers.of.your.proj
68e0 65 63 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 72 ect...<info>php.composer.phar.cr
6900 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 76 65 6e 64 6f 72 2f 70 72 6f 6a 65 63 74 20 74 61 72 67 eate-project.vendor/project.targ
6920 65 74 2d 64 69 72 65 63 74 6f 72 79 20 5b 76 65 72 73 69 6f 6e 5d 3c 2f 69 6e 66 6f 3e 0a 0a 54 et-directory.[version]</info>..T
6940 6f 20 73 65 74 75 70 20 61 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b 61 62 6c 65 20 76 65 72 o.setup.a.developer.workable.ver
6960 73 69 6f 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 68 65 20 70 72 6f 6a 65 sion.you.should.create.the.proje
6980 63 74 20 75 73 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 72 6f 6c 6c 65 64 20 63 ct.using.the.source.controlled.c
69a0 6f 64 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 70 72 ode.by.appending.the.<info>'--pr
69c0 65 66 65 72 2d 73 6f 75 72 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 20 41 6c 73 6f 2c 20 efer-source'</info>.flag..Also,.
69e0 69 74 20 69 73 0a 61 64 76 69 73 61 62 6c 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20 61 6c 6c 20 64 it.is.advisable.to.install.all.d
6a00 65 70 65 6e 64 65 6e 63 69 65 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 64 65 76 65 6c 6f 70 ependencies.required.for.develop
6a20 6d 65 6e 74 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 0a 3c 69 6e 66 6f 3e 27 2d 2d 64 ment.by.appending.the.<info>'--d
6a40 65 76 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 61 20 70 ev'</info>.flag...To.install.a.p
6a60 61 63 6b 61 67 65 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 72 65 70 6f 73 69 74 6f 72 79 20 72 ackage.from.another.repository.r
6a80 65 70 6f 73 69 74 6f 72 79 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 6f 6e 65 20 79 epository.than.the.default.one.y
6aa0 6f 75 0a 63 61 6e 20 70 61 73 73 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 72 65 70 6f 73 69 74 ou.can.pass.the.<info>'--reposit
6ac0 6f 72 79 2d 75 72 6c 3d 68 74 74 70 3a 2f 2f 6d 79 72 65 70 6f 73 69 74 6f 72 79 2e 6f 72 67 27 ory-url=http://myrepository.org'
6ae0 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 </info>.flag...EOT.).;.}..protec
6b00 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 ted.function.execute(InputInterf
6b20 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
6b40 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 72 6f 6a put).{.return.$this->installProj
6b60 65 63 74 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 ect(.$this->getIO(),.$input->get
6b80 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 Argument('package'),.$input->get
6ba0 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 Argument('directory'),.$input->g
6bc0 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 etArgument('version'),.$input->g
6be0 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 2c 0a 24 69 6e 70 75 etOption('prefer-source'),.$inpu
6c00 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 t->getOption('dev'),.$input->get
6c20 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 29 0a 29 3b 0a 7d 0a 0a 70 Option('repository-url').);.}..p
6c40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 49 4f ublic.function.installProject(IO
6c60 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 Interface.$io,.$packageName,.$di
6c80 72 65 63 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c rectory.=.null,.$version.=.null,
6ca0 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 24 69 6e 73 74 61 6c 6c .$preferSource.=.false,.$install
6cc0 44 65 76 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 DevPackages.=.false,.$repository
6ce0 55 72 6c 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 Url.=.null).{.$dm.=.$this->creat
6d00 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 29 3b 0a 69 66 20 28 24 70 72 65 66 eDownloadManager($io);.if.($pref
6d20 65 72 53 6f 75 72 63 65 29 20 7b 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 erSource).{.$dm->setPreferSource
6d40 28 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 (true);.}..$config.=.Factory::cr
6d60 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f eateConfig();.if.(null.===.$repo
6d80 73 69 74 6f 72 79 55 72 6c 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 sitoryUrl).{.$sourceRepo.=.new.C
6da0 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 ompositeRepository(Factory::crea
6dc0 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 69 6f 2c 20 24 63 6f 6e 66 teDefaultRepositories($io,.$conf
6de0 69 67 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 6a 73 6f 6e 22 20 3d 3d 3d 20 70 61 74 68 69 ig));.}.elseif.("json".===.pathi
6e00 6e 66 6f 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 nfo($repositoryUrl,.PATHINFO_EXT
6e20 45 4e 53 49 4f 4e 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 46 69 6c ENSION)).{.$sourceRepo.=.new.Fil
6e40 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 esystemRepository(new.JsonFile($
6e60 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 repositoryUrl,.new.RemoteFilesys
6e80 74 65 6d 28 24 69 6f 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 tem($io)));.}.elseif.(0.===.strp
6ea0 6f 73 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 27 68 74 74 70 27 29 29 20 7b 0a 24 73 os($repositoryUrl,.'http')).{.$s
6ec0 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f ourceRepo.=.new.ComposerReposito
6ee0 72 79 28 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c ry(array('url'.=>.$repositoryUrl
6f00 29 2c 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 ),.$io,.$config);.}.else.{.throw
6f20 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 .new.\InvalidArgumentException("
6f40 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 67 69 76 65 6e 2e 20 48 61 Invalid.repository.url.given..Ha
6f60 73 20 74 6f 20 62 65 20 61 20 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 20 61 6e 20 68 74 74 70 20 s.to.be.a..json.file.or.an.http.
6f80 75 72 6c 2e 22 29 3b 0a 7d 0a 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 24 73 6f 75 72 63 65 url.");.}..$candidates.=.$source
6fa0 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c Repo->findPackages($packageName,
6fc0 20 24 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 21 24 63 61 6e 64 69 64 61 74 65 73 29 20 7b 0a .$version);.if.(!$candidates).{.
6fe0 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
7000 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 24 70 61 63 ion("Could.not.find.package.$pac
7020 6b 61 67 65 4e 61 6d 65 22 20 2e 20 28 24 76 65 72 73 69 6f 6e 20 3f 20 22 20 77 69 74 68 20 76 kageName"...($version.?.".with.v
7040 65 72 73 69 6f 6e 20 24 76 65 72 73 69 6f 6e 2e 22 20 3a 20 27 27 29 29 3b 0a 7d 0a 0a 69 66 20 ersion.$version.".:.''));.}..if.
7060 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 70 61 72 74 73 20 3d (null.===.$directory).{.$parts.=
7080 20 65 78 70 6c 6f 64 65 28 22 2f 22 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 32 29 3b 0a .explode("/",.$packageName,.2);.
70a0 24 64 69 72 65 63 74 6f 72 79 20 3d 20 67 65 74 63 77 64 28 29 20 2e 20 44 49 52 45 43 54 4f 52 $directory.=.getcwd()...DIRECTOR
70c0 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b Y_SEPARATOR...array_pop($parts);
70e0 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 73 5b 30 5d 3b .}....$package.=.$candidates[0];
7100 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 .foreach.($candidates.as.$candid
7120 61 74 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b ate).{.if.(version_compare($pack
7140 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 age->getVersion(),.$candidate->g
7160 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 etVersion(),.'<')).{.$package.=.
7180 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e $candidate;.}.}..$io->write('<in
71a0 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e fo>Installing.'...$package->getN
71c0 61 6d 65 28 29 20 2e 20 27 20 28 27 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f ame()...'.('...VersionParser::fo
71e0 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 66 61 6c 73 65 29 20 2e 20 27 rmatVersion($package,.false)...'
7200 29 3c 2f 69 6e 66 6f 3e 27 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 )</info>',.true);.if.(0.===.strp
7220 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c os($package->getPrettyVersion(),
7240 20 27 64 65 76 2d 27 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 .'dev-').&&.in_array($package->g
7260 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 67 etSourceType(),.array('git',.'hg
7280 27 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 '))).{.$package->setSourceRefere
72a0 6e 63 65 28 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 nce(substr($package->getPrettyVe
72c0 72 73 69 6f 6e 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c rsion(),.4));.}..$projectInstall
72e0 65 72 20 3d 20 6e 65 77 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 28 24 64 69 72 65 63 er.=.new.ProjectInstaller($direc
7300 74 6f 72 79 2c 20 24 64 6d 29 3b 0a 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2d 3e 69 tory,.$dm);.$projectInstaller->i
7320 6e 73 74 61 6c 6c 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 nstall(new.InstalledFilesystemRe
7340 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 70 68 70 3a 2f 2f 6d 65 6d pository(new.JsonFile('php://mem
7360 6f 72 79 27 29 29 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d ory')),.$package);.if.($package-
7380 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 4e 6f 74 69 >getRepository().instanceof.Noti
73a0 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 70 61 fiableRepositoryInterface).{.$pa
73c0 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 6e 6f 74 69 66 79 49 6e ckage->getRepository()->notifyIn
73e0 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 stall($package);.}..$io->write('
7400 3c 69 6e 66 6f 3e 43 72 65 61 74 65 64 20 70 72 6f 6a 65 63 74 20 69 6e 20 27 20 2e 20 24 64 69 <info>Created.project.in.'...$di
7420 72 65 63 74 6f 72 79 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 2c 20 74 72 75 65 29 3b 0a 63 68 64 69 rectory...'</info>',.true);.chdi
7440 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 0a 70 75 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 r($directory);..putenv('COMPOSER
7460 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 3d 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 _ROOT_VERSION='.$package->getPre
7480 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 ttyVersion());..$composer.=.Fact
74a0 6f 72 79 3a 3a 63 72 65 61 74 65 28 24 69 6f 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 49 ory::create($io);.$installer.=.I
74c0 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 nstaller::create($io,.$composer)
74e0 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 ;..$installer.->setPreferSource(
7500 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 73 $preferSource).->setDevMode($ins
7520 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 0a 2d 3e 72 75 6e 28 29 3b 0a 7d 0a 0a 70 72 6f tallDevPackages).->run();.}..pro
7540 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 tected.function.createDownloadMa
7560 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 66 61 63 74 6f 72 nager(IOInterface.$io).{.$factor
7580 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 66 61 63 74 y.=.new.Factory();..return.$fact
75a0 6f 72 79 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 29 3b ory->createDownloadManager($io);
75c0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
75e0 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 Composer\Command;..use.Symfony\C
7600 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 omponent\Console\Input\InputInte
7620 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e rface;.use.Symfony\Component\Con
7640 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a sole\Output\OutputInterface;....
7660 0a 63 6c 61 73 73 20 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d .class.AboutCommand.extends.Comm
7680 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 and.{.protected.function.configu
76a0 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 61 62 6f 75 74 27 29 0a re().{.$this.->setName('about').
76c0 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 72 74 20 69 6e 66 6f 72 6d 61 74 ->setDescription('Short.informat
76e0 69 6f 6e 20 61 62 6f 75 74 20 43 6f 6d 70 6f 73 65 72 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c ion.about.Composer').->setHelp(<
7700 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 61 62 <<EOT.<info>php.composer.phar.ab
7720 6f 75 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 out</info>.EOT.).;.}..protected.
7740 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 function.execute(InputInterface.
7760 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 $input,.OutputInterface.$output)
7780 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f .{.$output->writeln(<<<EOT.<info
77a0 3e 43 6f 6d 70 6f 73 65 72 20 2d 20 50 61 63 6b 61 67 65 20 4d 61 6e 61 67 65 6d 65 6e 74 20 66 >Composer.-.Package.Management.f
77c0 6f 72 20 50 48 50 3c 2f 69 6e 66 6f 3e 0a 3c 63 6f 6d 6d 65 6e 74 3e 43 6f 6d 70 6f 73 65 72 20 or.PHP</info>.<comment>Composer.
77e0 69 73 20 61 20 70 61 63 6b 61 67 65 20 6d 61 6e 61 67 65 72 20 74 72 61 63 6b 69 6e 67 20 6c 6f is.a.package.manager.tracking.lo
7800 63 61 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 cal.dependencies.of.your.project
7820 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 2e 0a 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 s.and.libraries..See.http://getc
7840 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f omposer.org/.for.more.informatio
7860 6e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 3b 0a 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a n.</comment>.EOT.);..}.}.<?php..
7880 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d ..........namespace.Composer\Com
78a0 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 mand;..use.Composer\Composer;.us
78c0 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e.Composer\Factory;.use.Composer
78e0 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 \Package\PackageInterface;.use.S
7900 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
7920 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f nputInterface;.use.Symfony\Compo
7940 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 nent\Console\Input\InputArgument
7960 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
7980 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 Input\InputOption;.use.Symfony\C
79a0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e omponent\Console\Output\OutputIn
79c0 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 terface;.use.Composer\Repository
79e0 5c 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 \ArrayRepository;.use.Composer\R
7a00 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 epository\CompositeRepository;.u
7a20 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 se.Composer\Repository\PlatformR
7a40 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f epository;.use.Composer\Reposito
7a60 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 ry\RepositoryInterface;......cla
7a80 73 73 20 53 68 6f 77 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b ss.ShowCommand.extends.Command.{
7aa0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a .protected.function.configure().
7ac0 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 68 6f 77 27 29 0a 2d 3e 73 65 74 44 {.$this.->setName('show').->setD
7ae0 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f escription('Show.information.abo
7b00 75 74 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 ut.packages').->setDefinition(ar
7b20 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 ray(.new.InputArgument('package'
7b40 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b ,.InputArgument::OPTIONAL,.'Pack
7b60 61 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d age.to.inspect'),.new.InputArgum
7b80 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 ent('version',.InputArgument::OP
7ba0 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e TIONAL,.'Version.to.inspect'),.n
7bc0 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 2c 20 6e 75 6c 6c ew.InputOption('installed',.null
7be0 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 ,.InputOption::VALUE_NONE,.'List
7c00 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 .installed.packages.only'),.new.
7c20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 2c 20 6e 75 6c 6c 2c 20 49 6e InputOption('platform',.null,.In
7c40 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 70 6c 61 putOption::VALUE_NONE,.'List.pla
7c60 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 tform.packages.only'),.new.Input
7c80 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e Option('self',.null,.InputOption
7ca0 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 74 68 65 20 72 6f 6f 74 20 70 61 63 ::VALUE_NONE,.'Show.the.root.pac
7cc0 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 kage.information'),.)).->setHelp
7ce0 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 68 6f 77 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 (<<<EOT.The.show.command.display
7d00 73 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 70 s.detailed.information.about.a.p
7d20 61 63 6b 61 67 65 2c 20 6f 72 0a 6c 69 73 74 73 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 76 ackage,.or.lists.all.packages.av
7d40 61 69 6c 61 62 6c 65 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ailable...EOT.).;.}..protected.f
7d60 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 unction.execute(InputInterface.$
7d80 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a input,.OutputInterface.$output).
7da0 7b 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d {...$platformRepo.=.new.Platform
7dc0 52 65 70 6f 73 69 74 6f 72 79 3b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f Repository;.if.($input->getOptio
7de0 6e 28 27 73 65 6c 66 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 n('self')).{.$package.=.$this->g
7e00 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b etComposer(false)->getPackage();
7e20 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 41 .$repos.=.$installedRepo.=.new.A
7e40 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 29 29 3b rrayRepository(array($package));
7e60 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 6c .}.elseif.($input->getOption('pl
7e80 61 74 66 6f 72 6d 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 atform')).{.$repos.=.$installedR
7ea0 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 epo.=.$platformRepo;.}.elseif.($
7ec0 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 29 20 7b input->getOption('installed')).{
7ee0 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 .$composer.=.$this->getComposer(
7f00 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 63 6f );.$repos.=.$installedRepo.=.$co
7f20 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e mposer->getRepositoryManager()->
7f40 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 getLocalRepository();.}.elseif.(
7f60 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 $composer.=.$this->getComposer(f
7f80 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d alse)).{.$localRepo.=.$composer-
7fa0 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 >getRepositoryManager()->getLoca
7fc0 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 lRepository();.$installedRepo.=.
7fe0 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6c new.CompositeRepository(array($l
8000 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f ocalRepo,.$platformRepo));.$repo
8020 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 s.=.new.CompositeRepository(arra
8040 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 y_merge(array($installedRepo),.$
8060 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 composer->getRepositoryManager()
8080 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ->getRepositories()));.}.else.{.
80a0 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 $defaultRepos.=.Factory::createD
80c0 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 efaultRepositories($this->getIO(
80e0 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 ));.$output->writeln('No.compose
8100 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 r.json.found.in.the.current.dire
8120 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e ctory,.showing.packages.from.'..
8140 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 .implode(',.',.array_keys($defau
8160 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c ltRepos)));.$installedRepo.=.$pl
8180 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 atformRepo;.$repos.=.new.Composi
81a0 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 teRepository(array_merge(array($
81c0 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b installedRepo),.$defaultRepos));
81e0 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 .}....if.($input->getArgument('p
8200 61 63 6b 61 67 65 27 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a ackage').||.!empty($package)).{.
8220 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 if.(empty($package)).{.$package.
8240 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 =.$this->getPackage($input,.$out
8260 70 75 74 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 7d 0a put,.$installedRepo,.$repos);.}.
8280 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 if.(!$package).{.throw.new.\Inva
82a0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e lidArgumentException('Package.'.
82c0 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2e 27 $input->getArgument('package').'
82e0 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4d 65 74 .not.found');.}..$this->printMet
8300 61 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 69 6e a($input,.$output,.$package,.$in
8320 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 stalledRepo,.$repos);.$this->pri
8340 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 ntLinks($input,.$output,.$packag
8360 65 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b e,.'requires');.$this->printLink
8380 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 64 65 s($input,.$output,.$package,.'de
83a0 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 29 27 29 3b 0a 69 vRequires',.'requires.(dev)');.i
83c0 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 24 6f f.($package->getSuggests()).{.$o
83e0 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 67 67 65 73 74 73 utput->writeln("\n<info>suggests
8400 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 </info>");.foreach.($package->ge
8420 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 73 75 67 67 65 73 74 65 64 20 3d 3e 20 24 72 65 tSuggests().as.$suggested.=>.$re
8440 61 73 6f 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 73 75 67 67 65 73 ason).{.$output->writeln($sugges
8460 74 65 64 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 72 65 61 73 6f 6e 20 2e 20 27 ted...'.<comment>'...$reason...'
8480 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 </comment>');.}.}.$this->printLi
84a0 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 nks($input,.$output,.$package,.'
84c0 70 72 6f 76 69 64 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 provides');.$this->printLinks($i
84e0 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 63 6f 6e 66 6c 69 nput,.$output,.$package,.'confli
8500 63 74 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c cts');.$this->printLinks($input,
8520 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b .$output,.$package,.'replaces');
8540 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 ..return;.}....$packages.=.array
8560 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 ();.foreach.($repos->getPackages
8580 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 6c 61 74 66 6f 72 6d 52 ().as.$package).{.if.($platformR
85a0 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 79 epo->hasPackage($package)).{.$ty
85c0 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d pe.=.'<info>platform</info>:';.}
85e0 20 65 6c 73 65 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b .elseif.($installedRepo->hasPack
8600 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e 66 6f 3e age($package)).{.$type.=.'<info>
8620 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 79 installed</info>:';.}.else.{.$ty
8640 70 65 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e pe.=.'<comment>available</commen
8660 74 3e 3a 27 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 t>:';.}.if.(isset($packages[$typ
8680 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 26 26 20 76 65 72 73 e][$package->getName()]).&&.vers
86a0 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 ion_compare($packages[$type][$pa
86c0 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c ckage->getName()]->getVersion(),
86e0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3e 3d 27 29 0a 29 .$package->getVersion(),.'>=').)
8700 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b .{.continue;.}.$packages[$type][
8720 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b $package->getName()].=.$package;
8740 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f .}..foreach.(array('<info>platfo
8760 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 2c 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 rm</info>:'.=>.true,.'<comment>a
8780 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 20 3d 3e 20 66 61 6c 73 65 2c 20 27 vailable</comment>:'.=>.false,.'
87a0 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 <info>installed</info>:'.=>.true
87c0 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 73 68 6f 77 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 ).as.$type.=>.$showVersion).{.if
87e0 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 6f 75 .(isset($packages[$type])).{.$ou
8800 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 79 70 65 29 3b 0a 6b 73 6f 72 74 28 24 70 61 63 tput->writeln($type);.ksort($pac
8820 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 kages[$type]);.foreach.($package
8840 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d s[$type].as.$package).{.$output-
8860 3e 77 72 69 74 65 6c 6e 28 27 20 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 >writeln('..'.$package->getPrett
8880 79 4e 61 6d 65 28 29 20 2e 27 20 27 2e 28 24 73 68 6f 77 56 65 72 73 69 6f 6e 20 3f 20 27 5b 27 yName()..'.'.($showVersion.?.'['
88a0 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2e 27 5d .$package->getPrettyVersion().']
88c0 27 20 3a 20 27 27 29 2e 27 20 3c 63 6f 6d 6d 65 6e 74 3e 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 27 '.:.'').'.<comment>:</comment>.'
88e0 2e 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f ..strtok($package->getDescriptio
8900 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c n(),."\r\n"));.}.$output->writel
8920 6e 28 27 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 n('');.}.}.}.........protected.f
8940 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 unction.getPackage(InputInterfac
8960 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 e.$input,.OutputInterface.$outpu
8980 74 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 t,.RepositoryInterface.$installe
89a0 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f dRepo,.RepositoryInterface.$repo
89c0 73 29 0a 7b 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 s).{...if.($input->getArgument('
89e0 76 65 72 73 69 6f 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 73 2d 3e 66 69 6e 64 version')).{.return.$repos->find
8a00 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 Package($input->getArgument('pac
8a20 6b 61 67 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 kage'),.$input->getArgument('ver
8a40 73 69 6f 6e 27 29 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 sion'));.}....foreach.($installe
8a60 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 dRepo->getPackages().as.$package
8a80 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 ).{.if.($package->getName().===.
8aa0 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 29 20 $input->getArgument('package')).
8ac0 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 68 69 67 68 65 {.return.$package;.}.}....$highe
8ae0 73 74 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f stVersion.=.null;.foreach.($repo
8b00 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d s->findPackages($input->getArgum
8b20 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 ent('package')).as.$package).{.i
8b40 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 68 69 67 68 65 73 74 56 65 72 73 69 6f 6e 20 7c 7c 20 76 f.(null.===.$highestVersion.||.v
8b60 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 ersion_compare($package->getVers
8b80 69 6f 6e 28 29 2c 20 24 68 69 67 68 65 73 74 56 65 72 73 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 ion(),.$highestVersion->getVersi
8ba0 6f 6e 28 29 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 68 69 67 68 65 73 74 56 65 72 73 69 6f 6e 20 3d on(),.'>=')).{.$highestVersion.=
8bc0 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 68 69 67 68 65 73 74 56 .$package;.}.}..return.$highestV
8be0 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ersion;.}.....protected.function
8c00 20 70 72 69 6e 74 4d 65 74 61 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 .printMeta(InputInterface.$input
8c20 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 50 61 63 6b 61 ,.OutputInterface.$output,.Packa
8c40 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 52 65 70 6f 73 69 74 6f 72 79 geInterface.$package,.Repository
8c60 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 Interface.$installedRepo,.Reposi
8c80 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 29 0a 7b 0a 24 6f 75 74 70 75 74 2d toryInterface.$repos).{.$output-
8ca0 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 >writeln('<info>name</info>.....
8cc0 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 :.'...$package->getPrettyName())
8ce0 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 64 65 73 63 72 69 ;.$output->writeln('<info>descri
8d00 70 2e 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 p.</info>.:.'...$package->getDes
8d20 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c cription());.$output->writeln('<
8d40 69 6e 66 6f 3e 6b 65 79 77 6f 72 64 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 6a 6f 69 6e 28 info>keywords</info>.:.'...join(
8d60 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 20 3f 3a ',.',.$package->getKeywords().?:
8d80 20 61 72 72 61 79 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 56 65 72 73 69 6f 6e 73 .array()));.$this->printVersions
8da0 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 ($input,.$output,.$package,.$ins
8dc0 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 talledRepo,.$repos);.$output->wr
8de0 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 74 79 70 65 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 iteln('<info>type</info>.....:.'
8e00 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 6f 75 74 70 75 74 ...$package->getType());.$output
8e20 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6c 69 63 65 6e 73 65 3c 2f 69 6e 66 6f 3e 20 ->writeln('<info>license</info>.
8e40 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 .:.'...implode(',.',.$package->g
8e60 65 74 4c 69 63 65 6e 73 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 etLicense()));.$output->writeln(
8e80 27 3c 69 6e 66 6f 3e 73 6f 75 72 63 65 3c 2f 69 6e 66 6f 3e 20 20 20 3a 20 27 20 2e 20 73 70 72 '<info>source</info>...:.'...spr
8ea0 69 6e 74 66 28 27 5b 25 73 5d 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e intf('[%s].<comment>%s</comment>
8ec0 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c .%s',.$package->getSourceType(),
8ee0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 63 6b .$package->getSourceUrl(),.$pack
8f00 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 6f 75 age->getSourceReference()));.$ou
8f20 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 64 69 73 74 3c 2f 69 6e 66 6f 3e tput->writeln('<info>dist</info>
8f40 20 20 20 20 20 3a 20 27 20 2e 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d 20 3c 63 6f 6d 6d 65 6e .....:.'...sprintf('[%s].<commen
8f60 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 t>%s</comment>.%s',.$package->ge
8f80 74 44 69 73 74 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 tDistType(),.$package->getDistUr
8fa0 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 l(),.$package->getDistReference(
8fc0 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6e 61 6d )));.$output->writeln('<info>nam
8fe0 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c es</info>....:.'...implode(',.',
9000 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 29 29 3b 0a 0a 69 66 20 28 24 70 .$package->getNames()));..if.($p
9020 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d ackage->getSupport()).{.$output-
9040 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 70 70 6f 72 74 3c 2f 69 6e 66 6f 3e >writeln("\n<info>support</info>
9060 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 ");.foreach.($package->getSuppor
9080 74 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6f 75 74 70 75 t().as.$type.=>.$value).{.$outpu
90a0 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 79 70 65 20 2e t->writeln('<comment>'...$type..
90c0 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3a 20 27 2e 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 0a 69 .'</comment>.:.'.$value);.}.}..i
90e0 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 29 20 7b 0a 24 6f f.($package->getAutoload()).{.$o
9100 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 61 75 74 6f 6c 6f 61 64 utput->writeln("\n<info>autoload
9120 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 </info>");.foreach.($package->ge
9140 74 41 75 74 6f 6c 6f 61 64 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 61 75 74 6f 6c 6f 61 tAutoload().as.$type.=>.$autoloa
9160 64 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 ds).{.$output->writeln('<comment
9180 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 69 66 20 >'...$type...'</comment>');..if.
91a0 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 27 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 ($type.===.'psr-0').{.foreach.($
91c0 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 autoloads.as.$name.=>.$path).{.$
91e0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 28 24 6e 61 6d 65 20 3f 3a 20 27 2a 27 29 20 2e output->writeln(($name.?:.'*')..
9200 20 27 20 3d 3e 20 27 20 2e 20 28 24 70 61 74 68 20 3f 3a 20 27 2e 27 29 29 3b 0a 7d 0a 7d 20 65 .'.=>.'...($path.?:.'.'));.}.}.e
9220 6c 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 29 20 7b 0a 24 lseif.($type.===.'classmap').{.$
9240 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 61 output->writeln(implode(',.',.$a
9260 75 74 6f 6c 6f 61 64 73 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 utoloads));.}.}.if.($package->ge
9280 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 tIncludePaths()).{.$output->writ
92a0 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 69 6e 63 6c 75 64 65 2d 70 61 74 68 3c 2f 63 6f 6d 6d eln('<comment>include-path</comm
92c0 65 6e 74 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 69 6d 70 6c 6f 64 65 ent>');.$output->writeln(implode
92e0 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 (',.',.$package->getIncludePaths
9300 28 29 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ()));.}.}.}.....protected.functi
9320 6f 6e 20 70 72 69 6e 74 56 65 72 73 69 6f 6e 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 on.printVersions(InputInterface.
9340 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c $input,.OutputInterface.$output,
9360 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 52 65 70 6f .PackageInterface.$package,.Repo
9380 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 sitoryInterface.$installedRepo,.
93a0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 29 0a 7b 0a 69 66 RepositoryInterface.$repos).{.if
93c0 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 .($input->getArgument('version')
93e0 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 76 65 72 73 ).{.$output->writeln('<info>vers
9400 69 6f 6e 3c 2f 69 6e 66 6f 3e 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 ion</info>..:.'...$package->getP
9420 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 76 65 rettyVersion());..return;.}..$ve
9440 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 rsions.=.array();..foreach.($rep
9460 6f 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 os->findPackages($package->getNa
9480 6d 65 28 29 29 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 24 me()).as.$version).{.$versions[$
94a0 76 65 72 73 69 6f 6e 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 version->getPrettyVersion()].=.$
94c0 76 65 72 73 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 75 61 73 6f 72 74 version->getVersion();.}..uasort
94e0 28 24 76 65 72 73 69 6f 6e 73 2c 20 27 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 27 29 3b 0a ($versions,.'version_compare');.
9500 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 .$versions.=.implode(',.',.array
9520 5f 6b 65 79 73 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 76 65 72 73 69 6f 6e 73 29 29 29 _keys(array_reverse($versions)))
9540 3b 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b ;....if.($installedRepo->hasPack
9560 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 73 74 72 age($package)).{.$versions.=.str
9580 5f 72 65 70 6c 61 63 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 _replace($package->getPrettyVers
95a0 69 6f 6e 28 29 2c 20 27 3c 69 6e 66 6f 3e 2a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ion(),.'<info>*.'...$package->ge
95c0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 2c 20 24 76 tPrettyVersion()...'</info>',.$v
95e0 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c ersions);.}..$output->writeln('<
9600 69 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 76 65 72 73 info>versions</info>.:.'...$vers
9620 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ions);.}.......protected.functio
9640 6e 20 70 72 69 6e 74 4c 69 6e 6b 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 n.printLinks(InputInterface.$inp
9660 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 50 61 63 ut,.OutputInterface.$output,.Pac
9680 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 54 79 70 kageInterface.$package,.$linkTyp
96a0 65 2c 20 24 74 69 74 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 74 6c 65 20 3d 20 24 74 69 e,.$title.=.null).{.$title.=.$ti
96c0 74 6c 65 20 3f 3a 20 24 6c 69 6e 6b 54 79 70 65 3b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 tle.?:.$linkType;.if.($links.=.$
96e0 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 54 79 70 package->{'get'.ucfirst($linkTyp
9700 65 29 7d 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e e)}()).{.$output->writeln("\n<in
9720 66 6f 3e 22 20 2e 20 24 74 69 74 6c 65 20 2e 20 22 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 66 6f 72 fo>"...$title..."</info>");..for
9740 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f 75 74 70 75 74 each.($links.as.$link).{.$output
9760 2d 3e 77 72 69 74 65 6c 6e 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 ->writeln($link->getTarget()...'
9780 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f .<comment>'...$link->getPrettyCo
97a0 6e 73 74 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a nstraint()...'</comment>');.}.}.
97c0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
97e0 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 omposer\Command;..use.Composer\I
9800 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c nstaller;.use.Symfony\Component\
9820 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 Console\Input\InputInterface;.us
9840 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
9860 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f t\InputOption;.use.Symfony\Compo
9880 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 nent\Console\Input\InputArgument
98a0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
98c0 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 Output\OutputInterface;.....clas
98e0 73 20 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a s.UpdateCommand.extends.Command.
9900 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 {.protected.function.configure()
9920 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 75 70 64 61 74 65 27 29 0a 2d 3e 73 .{.$this.->setName('update').->s
9940 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 79 6f 75 72 20 64 65 70 65 etDescription('Updates.your.depe
9960 6e 64 65 6e 63 69 65 73 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2c 20 ndencies.to.the.latest.version,.
9980 61 6e 64 20 75 70 64 61 74 65 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 and.updates.the.composer.lock.fi
99a0 6c 65 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 le.').->setDefinition(array(.new
99c0 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 .InputArgument('packages',.Input
99e0 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 Argument::IS_ARRAY.|.InputArgume
9a00 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 65 73 20 74 68 61 74 20 73 68 6f nt::OPTIONAL,.'Packages.that.sho
9a20 75 6c 64 20 62 65 20 75 70 64 61 74 65 64 2c 20 69 66 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 20 uld.be.updated,.if.not.provided.
9a40 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 all.packages.are.'),.new.InputOp
9a60 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 tion('prefer-source',.null,.Inpu
9a80 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 tOption::VALUE_NONE,.'Forces.ins
9aa0 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 tallation.from.package.sources.w
9ac0 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f hen.possible,.including.VCS.info
9ae0 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 rmation.'),.new.InputOption('dry
9b00 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f -run',.null,.InputOption::VALUE_
9b20 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 NONE,.'Outputs.the.operations.bu
9b40 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 t.will.not.execute.anything.(imp
9b60 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e licitly.enables.--verbose).'),.n
9b80 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 ew.InputOption('dev',.null,.Inpu
9ba0 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e tOption::VALUE_NONE,.'Enables.in
9bc0 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 64 65 76 2d 72 65 71 75 69 72 65 20 70 61 63 6b 61 67 stallation.of.dev-require.packag
9be0 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 es.'),.new.InputOption('no-scrip
9c00 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f ts',.null,.InputOption::VALUE_NO
9c20 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 NE,.'Skips.the.execution.of.all.
9c40 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e scripts.defined.in.composer.json
9c60 20 66 69 6c 65 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 .file.'),.)).->setHelp(<<<EOT.Th
9c80 65 20 3c 69 6e 66 6f 3e 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 e.<info>update</info>.command.re
9ca0 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 ads.the.composer.json.file.from.
9cc0 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 the.current.directory,.processes
9ce0 20 69 74 2c 20 61 6e 64 20 75 70 64 61 74 65 73 2c 20 72 65 6d 6f 76 65 73 20 6f 72 20 69 6e 73 .it,.and.updates,.removes.or.ins
9d00 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 3c 69 6e talls.all.the.dependencies...<in
9d20 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 3c 2f 69 6e 66 fo>php.composer.phar.update</inf
9d40 6f 3e 0a 0a 54 6f 20 6c 69 6d 69 74 20 74 68 65 20 75 70 64 61 74 65 20 6f 70 65 72 61 74 69 6f o>..To.limit.the.update.operatio
9d60 6e 20 74 6f 20 61 20 66 65 77 20 70 61 63 6b 61 67 65 73 2c 20 79 6f 75 20 63 61 6e 20 6c 69 73 n.to.a.few.packages,.you.can.lis
9d80 74 20 74 68 65 20 70 61 63 6b 61 67 65 28 73 29 0a 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 70 64 t.the.package(s).you.want.to.upd
9da0 61 74 65 20 61 73 20 73 75 63 68 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 ate.as.such:..<info>php.composer
9dc0 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e 64 6f 72 2f 70 61 63 6b 61 67 65 31 20 66 6f 6f .phar.update.vendor/package1.foo
9de0 2f 6d 79 70 61 63 6b 61 67 65 20 5b 2e 2e 2e 5d 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a /mypackage.[...]</info>.EOT.).;.
9e00 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e }..protected.function.execute(In
9e20 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 putInterface.$input,.OutputInter
9e40 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 face.$output).{.$composer.=.$thi
9e60 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 s->getComposer();.$io.=.$this->g
9e80 65 74 49 4f 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 etIO();.$install.=.Installer::cr
9ea0 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a eate($io,.$composer);..$install.
9ec0 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 ->setDryRun($input->getOption('d
9ee0 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 ry-run')).->setVerbose($input->g
9f00 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 etOption('verbose')).->setPrefer
9f20 53 6f 75 72 63 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 Source($input->getOption('prefer
9f40 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 70 75 74 2d 3e -source')).->setDevMode($input->
9f60 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 getOption('dev')).->setRunScript
9f80 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 s(!$input->getOption('no-scripts
9fa0 27 29 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 ')).->setUpdate(true).->setUpdat
9fc0 65 57 68 69 74 65 6c 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 eWhitelist($input->getArgument('
9fe0 70 61 63 6b 61 67 65 73 27 29 29 0a 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e packages')).;..return.$install->
a000 72 75 6e 28 29 20 3f 20 30 20 3a 20 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a run().?.0.:.1;.}.}.<?php........
a020 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a ....namespace.Composer\Command;.
a040 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 53 79 6d .use.Composer\Installer;.use.Sym
a060 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
a080 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 utInterface;.use.Symfony\Compone
a0a0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 nt\Console\Input\InputOption;.us
a0c0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
a0e0 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 ut\OutputInterface;.......class.
a100 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b InstallCommand.extends.Command.{
a120 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a .protected.function.configure().
a140 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 69 6e 73 74 61 6c 6c 27 29 0a 2d 3e 73 {.$this.->setName('install').->s
a160 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 50 61 72 73 65 73 20 74 68 65 20 63 6f 6d 70 6f 73 etDescription('Parses.the.compos
a180 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 61 6e 64 20 64 6f 77 6e 6c 6f 61 64 73 20 74 68 65 20 6e er.json.file.and.downloads.the.n
a1a0 65 65 64 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e eeded.dependencies.').->setDefin
a1c0 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 ition(array(.new.InputOption('pr
a1e0 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a efer-source',.null,.InputOption:
a200 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f :VALUE_NONE,.'Forces.installatio
a220 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 n.from.package.sources.when.poss
a240 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e ible,.including.VCS.information.
a260 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e '),.new.InputOption('dry-run',.n
a280 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f ull,.InputOption::VALUE_NONE,.'O
a2a0 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e utputs.the.operations.but.will.n
a2c0 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 ot.execute.anything.(implicitly.
a2e0 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 enables.--verbose).'),.new.Input
a300 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a Option('dev',.null,.InputOption:
a320 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 :VALUE_NONE,.'Enables.installati
a340 6f 6e 20 6f 66 20 64 65 76 2d 72 65 71 75 69 72 65 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e on.of.dev-require.packages.'),.n
a360 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c ew.InputOption('no-scripts',.nul
a380 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 l,.InputOption::VALUE_NONE,.'Ski
a3a0 70 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 ps.the.execution.of.all.scripts.
a3c0 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 defined.in.composer.json.file.')
a3e0 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e ,.)).->setHelp(<<<EOT.The.<info>
a400 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 install</info>.command.reads.the
a420 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 74 68 65 0a 63 75 72 .composer.json.file.from.the.cur
a440 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e rent.directory,.processes.it,.an
a460 64 20 64 6f 77 6e 6c 6f 61 64 73 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 d.downloads.and.installs.all.the
a480 0a 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 75 74 6c .libraries.and.dependencies.outl
a4a0 69 6e 65 64 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f ined.in.that.file...<info>php.co
a4c0 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a mposer.phar.install</info>..EOT.
a4e0 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 ).;.}..protected.function.execut
a500 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 e(InputInterface.$input,.OutputI
a520 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 nterface.$output).{.$composer.=.
a540 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 $this->getComposer();.$io.=.$thi
a560 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 s->getIO();.$install.=.Installer
a580 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 ::create($io,.$composer);..$inst
a5a0 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f all.->setDryRun($input->getOptio
a5c0 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 n('dry-run')).->setVerbose($inpu
a5e0 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 t->getOption('verbose')).->setPr
a600 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 eferSource($input->getOption('pr
a620 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 70 efer-source')).->setDevMode($inp
a640 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 0a 2d 3e 73 65 74 52 75 6e 53 63 ut->getOption('dev')).->setRunSc
a660 72 69 70 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 ripts(!$input->getOption('no-scr
a680 69 70 74 73 27 29 29 0a 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 ipts')).;..return.$install->run(
a6a0 29 20 3f 20 30 20 3a 20 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ).?.0.:.1;.}.}.<?php............
a6c0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 namespace.Composer\Command;..use
a6e0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
a700 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
a720 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 ponent\Console\Input\InputArgume
a740 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c nt;.use.Symfony\Component\Consol
a760 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f e\Output\OutputInterface;.use.Co
a780 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 mposer\Json\JsonFile;.use.Compos
a7a0 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 3b er\Json\JsonValidationException;
a7c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c .use.Composer\Package\Loader\Val
a7e0 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 idatingArrayLoader;.use.Composer
a800 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 \Package\Loader\ArrayLoader;.use
a820 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b .Composer\Util\RemoteFilesystem;
a840 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 70 64 78 4c 69 63 65 6e 73 65 49 64 .use.Composer\Util\SpdxLicenseId
a860 65 6e 74 69 66 69 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 65 43 entifier;........class.ValidateC
a880 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 ommand.extends.Command.{....prot
a8a0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 ected.function.configure().{.$th
a8c0 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 76 61 6c 69 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 is.->setName('validate').->setDe
a8e0 73 63 72 69 70 74 69 6f 6e 28 27 56 61 6c 69 64 61 74 65 73 20 61 20 63 6f 6d 70 6f 73 65 72 2e scription('Validates.a.composer.
a900 6a 73 6f 6e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 json').->setDefinition(array(.ne
a920 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 2c 20 49 6e 70 75 74 41 72 67 w.InputArgument('file',.InputArg
a940 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 70 61 74 68 20 74 6f 20 63 6f 6d 70 6f 73 ument::OPTIONAL,.'path.to.compos
a960 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 27 2c 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 er.json.file',.'./composer.json'
a980 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 76 61 6c 69 64 61 ).)).->setHelp(<<<EOT.The.valida
a9a0 74 65 20 63 6f 6d 6d 61 6e 64 20 76 61 6c 69 64 61 74 65 73 20 61 20 67 69 76 65 6e 20 63 6f 6d te.command.validates.a.given.com
a9c0 70 6f 73 65 72 2e 6a 73 6f 6e 0a 0a 45 4f 54 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 poser.json..EOT.);.}........prot
a9e0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 ected.function.execute(InputInte
aa00 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f rface.$input,.OutputInterface.$o
aa20 75 74 70 75 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 utput).{.$file.=.$input->getArgu
aa40 6d 65 6e 74 28 27 66 69 6c 65 27 29 3b 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 ment('file');..if.(!file_exists(
aa60 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 $file)).{.$output->writeln('<err
aa80 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 6e 6f 74 20 66 6f 75 6e 64 2e 3c 2f 65 72 72 or>'...$file...'.not.found.</err
aaa0 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 or>');..return.1;.}.if.(!is_read
aac0 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 able($file)).{.$output->writeln(
aae0 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 6e 6f 74 20 72 65 61 '<error>'...$file...'.is.not.rea
ab00 64 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a dable.</error>');..return.1;.}..
ab20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 $errors.=.array();.$publishError
ab40 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 s.=.array();.$warnings.=.array()
ab60 3b 0a 0a 0a 20 24 6c 61 78 56 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b 0a 24 76 61 6c 69 64 20 3d ;....$laxValid.=.false;.$valid.=
ab80 20 66 61 6c 73 65 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 .false;.try.{.$json.=.new.JsonFi
aba0 6c 65 28 24 66 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 le($file,.new.RemoteFilesystem($
abc0 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 29 3b 0a 24 6d 61 6e 69 66 65 73 74 20 3d 20 24 6a 73 this->getIO()));.$manifest.=.$js
abe0 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 on->read();..$json->validateSche
ac00 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 61 78 56 61 ma(JsonFile::LAX_SCHEMA);.$laxVa
ac20 6c 69 64 20 3d 20 74 72 75 65 3b 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d lid.=.true;.$json->validateSchem
ac40 61 28 29 3b 0a 24 76 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 7d 20 63 61 74 63 68 20 28 4a 73 6f a();.$valid.=.true;.}.catch.(Jso
ac60 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 6f 72 65 61 nValidationException.$e).{.forea
ac80 63 68 20 28 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 20 61 73 20 24 6d 65 73 73 61 67 65 29 ch.($e->getErrors().as.$message)
aca0 20 7b 0a 69 66 20 28 24 6c 61 78 56 61 6c 69 64 29 20 7b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f .{.if.($laxValid).{.$publishErro
acc0 72 73 5b 5d 20 3d 20 27 3c 65 72 72 6f 72 3e 50 75 62 6c 69 73 68 20 45 72 72 6f 72 3a 20 27 20 rs[].=.'<error>Publish.Error:.'.
ace0 2e 20 24 6d 65 73 73 61 67 65 20 2e 20 27 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 20 65 6c 73 65 20 ..$message...'</error>';.}.else.
ad00 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 6d 65 73 73 61 {.$errors[].=.'<error>'...$messa
ad20 67 65 20 2e 20 27 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 ge...'</error>';.}.}.}.catch.(\E
ad40 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 xception.$e).{.$output->writeln(
ad60 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 20 2e 20 27 '<error>'...$e->getMessage()...'
ad80 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 0a 20 69 66 20 28 </error>');..return.1;.}....if.(
ada0 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a !empty($manifest['license'])).{.
adc0 24 6c 69 63 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 70 64 78 4c 69 63 65 $licenseValidator.=.new.SpdxLice
ade0 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 69 66 20 28 21 24 6c 69 63 65 6e 73 65 56 61 nseIdentifier();.if.(!$licenseVa
ae00 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 lidator->validate($manifest['lic
ae20 65 6e 73 65 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 ense'])).{.$warnings[].=.sprintf
ae40 28 0a 27 4c 69 63 65 6e 73 65 20 25 73 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 53 50 44 (.'License.%s.is.not.a.valid.SPD
ae60 58 20 6c 69 63 65 6e 73 65 20 69 64 65 6e 74 69 66 69 65 72 2c 20 73 65 65 20 68 74 74 70 3a 2f X.license.identifier,.see.http:/
ae80 2f 77 77 77 2e 73 70 64 78 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 20 69 66 20 79 6f 75 20 75 /www.spdx.org/licenses/.if.you.u
aea0 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 63 65 6e 73 65 27 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 se.an.open.license',.json_encode
aec0 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 0a 29 3b 0a 7d 0a 7d 20 65 6c ($manifest['license']).);.}.}.el
aee0 73 65 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 4e 6f 20 6c 69 63 65 6e 73 65 20 73 se.{.$warnings[].=.'No.license.s
af00 70 65 63 69 66 69 65 64 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 64 pecified,.it.is.recommended.to.d
af20 6f 20 73 6f 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 o.so';.}..if.(!empty($manifest['
af40 6e 61 6d 65 27 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 41 2d 5a 5d 7d 27 2c name']).&&.preg_match('{[A-Z]}',
af60 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 73 75 67 67 65 73 74 4e .$manifest['name'])).{.$suggestN
af80 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 28 5b 61 2d 7a 5d 29 28 ame.=.preg_replace('{(?:([a-z])(
afa0 5b 41 2d 5a 5d 29 7c 28 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b 61 2d 7a 5d 29 29 7d 27 2c 20 27 [A-Z])|([A-Z])([A-Z][a-z]))}',.'
afc0 5c 5c 31 5c 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 \\1\\3-\\2\\4',.$manifest['name'
afe0 5d 29 3b 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 ]);.$suggestName.=.strtolower($s
b000 75 67 67 65 73 74 4e 61 6d 65 29 3b 0a 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 72 69 uggestName);..$warnings[].=.spri
b020 6e 74 66 28 0a 27 4e 61 6d 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 ntf(.'Name."%s".does.not.match.t
b040 68 65 20 62 65 73 74 20 70 72 61 63 74 69 63 65 20 28 65 2e 67 2e 20 6c 6f 77 65 72 2d 63 61 73 he.best.practice.(e.g..lower-cas
b060 65 64 2f 77 69 74 68 2d 64 61 73 68 65 73 29 2e 20 57 65 20 73 75 67 67 65 73 74 20 75 73 69 6e ed/with-dashes)..We.suggest.usin
b080 67 20 22 25 73 22 20 69 6e 73 74 65 61 64 2e 20 41 73 20 73 75 63 68 20 79 6f 75 20 77 69 6c 6c g."%s".instead..As.such.you.will
b0a0 20 6e 6f 74 20 62 65 20 61 62 6c 65 20 74 6f 20 73 75 62 6d 69 74 20 69 74 20 74 6f 20 50 61 63 .not.be.able.to.submit.it.to.Pac
b0c0 6b 61 67 69 73 74 2e 27 2c 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 2c 0a 24 73 75 kagist.',.$manifest['name'],.$su
b0e0 67 67 65 73 74 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 0a 20 74 72 79 20 7b 0a 24 6c 6f 61 64 65 72 20 ggestName.);.}....try.{.$loader.
b100 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 65 77 20 =.new.ValidatingArrayLoader(new.
b120 41 72 72 61 79 4c 6f 61 64 65 72 28 29 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 69 73 73 65 ArrayLoader(),.false);.if.(!isse
b140 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 6d 61 6e 69 t($manifest['version'])).{.$mani
b160 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 69 66 20 fest['version'].=.'1.0.0';.}.if.
b180 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 6d (!isset($manifest['name'])).{.$m
b1a0 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 64 75 6d 6d 79 2f 64 75 6d 6d 79 27 3b anifest['name'].=.'dummy/dummy';
b1c0 0a 7d 0a 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 61 6e 69 66 65 73 74 29 3b 0a 7d 20 63 .}.$loader->load($manifest);.}.c
b1e0 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d atch.(\Exception.$e).{.$errors.=
b200 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 65 78 70 6c 6f 64 65 28 22 5c .array_merge($errors,.explode("\
b220 6e 22 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 n",.$e->getMessage()));.}....if.
b240 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 26 26 20 (!$errors.&&.!$publishErrors.&&.
b260 21 24 77 61 72 6e 69 6e 67 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 !$warnings).{.$output->writeln('
b280 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 3c 2f 69 6e <info>'...$file...'.is.valid</in
b2a0 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 70 fo>');.}.elseif.(!$errors.&&.!$p
b2c0 75 62 6c 69 73 68 45 72 72 6f 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e ublishErrors).{.$output->writeln
b2e0 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 2c 20 ('<info>'...$file...'.is.valid,.
b300 62 75 74 20 77 69 74 68 20 61 20 66 65 77 20 77 61 72 6e 69 6e 67 73 3c 2f 69 6e 66 6f 3e 27 29 but.with.a.few.warnings</info>')
b320 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 65 ;.$output->writeln('<warning>See
b340 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 .http://getcomposer.org/doc/04-s
b360 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 65 chema.md.for.details.on.the.sche
b380 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f ma</warning>');.}.elseif.(!$erro
b3a0 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 20 rs).{.$output->writeln('<info>'.
b3c0 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 20 66 6f 72 20 73 69 6d 70 6c 65 20 ..$file...'.is.valid.for.simple.
b3e0 75 73 61 67 65 20 77 69 74 68 20 63 6f 6d 70 6f 73 65 72 20 62 75 74 20 68 61 73 3c 2f 69 6e 66 usage.with.composer.but.has</inf
b400 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 73 74 o>');.$output->writeln('<info>st
b420 72 69 63 74 20 65 72 72 6f 72 73 20 74 68 61 74 20 6d 61 6b 65 20 69 74 20 75 6e 61 62 6c 65 20 rict.errors.that.make.it.unable.
b440 74 6f 20 62 65 20 70 75 62 6c 69 73 68 65 64 20 61 73 20 61 20 70 61 63 6b 61 67 65 3a 3c 2f 69 to.be.published.as.a.package:</i
b460 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 nfo>');.$output->writeln('<warni
b480 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f ng>See.http://getcomposer.org/do
b4a0 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 c/04-schema.md.for.details.on.th
b4c0 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 e.schema</warning>');.}.else.{.$
b4e0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c output->writeln('<error>'...$fil
b500 65 20 2e 20 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 e...'.is.invalid,.the.following.
b520 65 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 77 65 72 65 20 66 6f 75 6e 64 3a 3c 2f 65 72 72 errors/warnings.were.found:</err
b540 6f 72 3e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 or>');.}..$messages.=.array(.'er
b560 72 6f 72 27 20 3d 3e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 70 75 ror'.=>.array_merge($errors,.$pu
b580 62 6c 69 73 68 45 72 72 6f 72 73 29 2c 0a 27 77 61 72 6e 69 6e 67 27 20 3d 3e 20 24 77 61 72 6e blishErrors),.'warning'.=>.$warn
b5a0 69 6e 67 73 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 ings,.);..foreach.($messages.as.
b5c0 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 73 67 $style.=>.$msgs).{.foreach.($msg
b5e0 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c s.as.$msg).{.$output->writeln('<
b600 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 24 6d 73 67 20 2e 20 27 3c 2f 27 20 2e '...$style...'>'...$msg...'</'..
b620 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 .$style...'>');.}.}..return.$err
b640 6f 72 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 3f 20 31 20 3a 20 30 3b 0a 7d ors.||.$publishErrors.?.1.:.0;.}
b660 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
b680 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f mposer\Command;..use.Composer\Co
b6a0 6d 70 6f 73 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f mposer;.use.Symfony\Component\Co
b6c0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 nsole\Input\InputInterface;.use.
b6e0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
b700 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f InputArgument;.use.Symfony\Compo
b720 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a nent\Console\Input\InputOption;.
b740 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 use.Symfony\Component\Console\Ou
b760 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 tput\OutputInterface;......class
b780 20 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a .DependsCommand.extends.Command.
b7a0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a {.protected.$linkTypes.=.array(.
b7c0 27 72 65 71 75 69 72 65 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c 0a 27 72 65 71 75 69 72 'require'.=>.'requires',.'requir
b7e0 65 2d 64 65 76 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 72 65 73 27 2c 0a 29 3b 0a 0a 70 72 6f e-dev'.=>.'devRequires',.);..pro
b800 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 tected.function.configure().{.$t
b820 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 65 70 65 6e 64 73 27 29 0a 2d 3e 73 65 74 44 65 his.->setName('depends').->setDe
b840 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 73 20 77 68 69 63 68 20 70 61 63 6b 61 67 65 73 20 scription('Shows.which.packages.
b860 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 27 29 0a 2d 3e depend.on.the.given.package').->
b880 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 setDefinition(array(.new.InputAr
b8a0 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a gument('package',.InputArgument:
b8c0 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 :REQUIRED,.'Package.to.inspect')
b8e0 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 2c 20 27 ,.new.InputOption('link-type',.'
b900 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 7c ',.InputOption::VALUE_OPTIONAL.|
b920 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 2c 20 27 4c .InputOption::VALUE_IS_ARRAY,.'L
b940 69 6e 6b 20 74 79 70 65 73 20 74 6f 20 73 68 6f 77 20 28 72 65 71 75 69 72 65 2c 20 72 65 71 75 ink.types.to.show.(require,.requ
b960 69 72 65 2d 64 65 76 29 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 6c 69 6e ire-dev)',.array_keys($this->lin
b980 6b 54 79 70 65 73 29 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 44 69 73 kTypes)).)).->setHelp(<<<EOT.Dis
b9a0 70 6c 61 79 73 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 plays.detailed.information.about
b9c0 20 77 68 65 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 72 65 66 65 72 65 6e 63 65 64 2e 0a .where.a.package.is.referenced..
b9e0 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 64 65 70 65 6e 64 73 .<info>php.composer.phar.depends
ba00 20 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 .composer/composer</info>..EOT.)
ba20 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 .;.}..protected.function.execute
ba40 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e (InputInterface.$input,.OutputIn
ba60 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 terface.$output).{.$composer.=.$
ba80 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 this->getComposer();.$references
baa0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 24 69 6e 70 75 74 2c 20 .=.$this->getReferences($input,.
bac0 24 6f 75 74 70 75 74 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 $output,.$composer);..if.($input
bae0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 74 68 69 73 2d ->getOption('verbose')).{.$this-
bb00 3e 70 72 69 6e 74 52 65 66 65 72 65 6e 63 65 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 >printReferences($input,.$output
bb20 2c 20 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e ,.$references);.}.else.{.$this->
bb40 70 72 69 6e 74 50 61 63 6b 61 67 65 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 printPackages($input,.$output,.$
bb60 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 references);.}.}...........priva
bb80 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 49 6e 70 75 74 49 te.function.getReferences(InputI
bba0 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 nterface.$input,.OutputInterface
bbc0 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a .$output,.Composer.$composer).{.
bbe0 24 6e 65 65 64 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 $needle.=.$input->getArgument('p
bc00 61 63 6b 61 67 65 27 29 3b 0a 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 ackage');..$references.=.array()
bc20 3b 0a 24 76 65 72 62 6f 73 65 20 3d 20 28 62 6f 6f 6c 29 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f ;.$verbose.=.(bool).$input->getO
bc40 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 3b 0a 0a 24 72 65 70 6f 73 20 3d 20 24 63 6f 6d ption('verbose');..$repos.=.$com
bc60 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 poser->getRepositoryManager()->g
bc80 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 24 74 79 70 65 73 20 3d 20 24 69 6e 70 75 etRepositories();.$types.=.$inpu
bca0 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 29 3b 0a 0a 66 6f 72 65 t->getOption('link-type');..fore
bcc0 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 66 6f ach.($repos.as.$repository).{.fo
bce0 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 reach.($repository->getPackages(
bd00 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 ).as.$package).{.foreach.($types
bd20 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 74 79 70 65 20 3d 20 72 74 72 69 6d 28 24 74 79 70 65 .as.$type).{.$type.=.rtrim($type
bd40 2c 20 27 73 27 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 ,.'s');.if.(!isset($this->linkTy
bd60 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 pes[$type])).{.throw.new.\Invali
bd80 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 64 20 6c dArgumentException('Unexpected.l
bda0 69 6e 6b 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 2e 27 2c 20 76 61 6c 69 64 20 74 79 70 65 73 ink.type:.'.$type.',.valid.types
bdc0 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 :.'.implode(',.',.array_keys($th
bde0 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 29 29 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 61 is->linkTypes)));.}.foreach.($pa
be00 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 5b 24 ckage->{'get'.$this->linkTypes[$
be20 74 79 70 65 5d 7d 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e type]}().as.$link).{.if.($link->
be40 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 65 65 64 6c 65 29 20 7b 0a 69 66 20 28 24 getTarget().===.$needle).{.if.($
be60 76 65 72 62 6f 73 65 29 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 5d 20 3d 20 61 72 72 61 79 verbose).{.$references[].=.array
be80 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 29 3b 0a 7d 20 65 6c 73 65 ($type,.$package,.$link);.}.else
bea0 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 .{.$references[$package->getName
bec0 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b ()].=.$package->getPrettyName();
bee0 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 72 65 6e 63 65 73 .}.}.}.}.}.}..return.$references
bf00 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 52 65 66 65 72 ;.}..private.function.printRefer
bf20 65 6e 63 65 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 ences(InputInterface.$input,.Out
bf40 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 61 72 72 61 79 20 24 72 65 66 putInterface.$output,.array.$ref
bf60 65 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 66 65 72 65 6e 63 65 73 20 erences).{.foreach.($references.
bf80 61 73 20 24 72 65 66 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 72 65 66 as.$ref).{.$output->writeln($ref
bfa0 5b 31 5d 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 27 20 27 20 2e 20 24 72 65 [1]->getPrettyName()...'.'...$re
bfc0 66 5b 31 5d 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 3c 69 6e f[1]->getPrettyVersion()...'.<in
bfe0 66 6f 3e 27 20 2e 20 24 72 65 66 5b 30 5d 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 27 20 2e 20 24 72 fo>'...$ref[0]...'</info>.'...$r
c000 65 66 5b 32 5d 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d ef[2]->getPrettyConstraint());.}
c020 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 50 61 63 6b 61 67 .}..private.function.printPackag
c040 65 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 es(InputInterface.$input,.Output
c060 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 Interface.$output,.array.$packag
c080 65 73 29 0a 7b 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 66 6f 72 65 61 63 68 20 es).{.ksort($packages);.foreach.
c0a0 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6f 75 74 70 75 ($packages.as.$package).{.$outpu
c0c0 74 2d 3e 77 72 69 74 65 6c 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 t->writeln($package);.}.}.}.<?ph
c0e0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
c100 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Command;..use.Symfony\Component\
c120 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 Console\Input\InputInterface;.us
c140 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
c160 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d t\InputArgument;.use.Symfony\Com
c180 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 ponent\Console\Output\OutputInte
c1a0 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 rface;.use.Composer\Repository\C
c1c0 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ompositeRepository;.use.Composer
c1e0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a \Repository\PlatformRepository;.
c200 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 use.Composer\Package\PackageInte
c220 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 rface;.use.Composer\Package\Alia
c240 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a sPackage;.use.Composer\Factory;.
c260 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 ....class.SearchCommand.extends.
c280 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e Command.{.protected.function.con
c2a0 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 61 72 figure().{.$this.->setName('sear
c2c0 63 68 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f ch').->setDescription('Search.fo
c2e0 72 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 r.packages').->setDefinition(arr
c300 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 2c 20 ay(.new.InputArgument('tokens',.
c320 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 InputArgument::IS_ARRAY.|.InputA
c340 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 74 6f 6b 65 6e 73 20 74 6f 20 73 65 rgument::REQUIRED,.'tokens.to.se
c360 61 72 63 68 20 66 6f 72 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a arch.for'),.)).->setHelp(<<<EOT.
c380 54 68 65 20 73 65 61 72 63 68 20 63 6f 6d 6d 61 6e 64 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 The.search.command.searches.for.
c3a0 70 61 63 6b 61 67 65 73 20 62 79 20 69 74 73 20 6e 61 6d 65 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 packages.by.its.name.<info>php.c
c3c0 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 61 72 63 68 20 73 79 6d 66 6f 6e 79 20 63 6f 6d 70 omposer.phar.search.symfony.comp
c3e0 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 oser</info>..EOT.).;.}..protecte
c400 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 d.function.execute(InputInterfac
c420 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 e.$input,.OutputInterface.$outpu
c440 74 29 0a 7b 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 t).{...$platformRepo.=.new.Platf
c460 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 ormRepository;.if.($composer.=.$
c480 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 this->getComposer(false)).{.$loc
c4a0 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 alRepo.=.$composer->getRepositor
c4c0 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 yManager()->getLocalRepository()
c4e0 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 ;.$installedRepo.=.new.Composite
c500 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6c Repository(array($localRepo,.$pl
c520 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f atformRepo));.$repos.=.new.Compo
c540 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 siteRepository(array_merge(array
c560 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 ($installedRepo),.$composer->get
c580 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f RepositoryManager()->getReposito
c5a0 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 ries()));.}.else.{.$defaultRepos
c5c0 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 .=.Factory::createDefaultReposit
c5e0 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e ories($this->getIO());.$output->
c600 77 72 69 74 65 6c 6e 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 writeln('No.composer.json.found.
c620 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e in.the.current.directory,.showin
c640 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 g.packages.from.'...implode(',.'
c660 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 ,.array_keys($defaultRepos)));.$
c680 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 24 installedRepo.=.$platformRepo;.$
c6a0 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 repos.=.new.CompositeRepository(
c6c0 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f array_merge(array($installedRepo
c6e0 29 2c 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 73 20 3d ),.$defaultRepos));.}..$tokens.=
c700 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 29 3b 0a .$input->getArgument('tokens');.
c720 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6d 61 78 50 61 63 6b 61 67 $packages.=.array();..$maxPackag
c740 65 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 2d 3e 67 65 eLength.=.0;.foreach.($repos->ge
c760 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 tPackages().as.$package).{.if.($
c780 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 package.instanceof.AliasPackage.
c7a0 7c 7c 20 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ||.isset($packages[$package->get
c7c0 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 Name()])).{.continue;.}..foreach
c7e0 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 21 24 73 63 6f .($tokens.as.$token).{.if.(!$sco
c800 72 65 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 re.=.$this->matchPackage($packag
c820 65 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 e,.$token)).{.continue;.}..if.(f
c840 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 69 70 6f 73 28 24 70 61 63 6b 61 67 alse.!==.($pos.=.stripos($packag
c860 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 6f 6b 65 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 e->getName(),.$token))).{.$name.
c880 3d 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 =.substr($package->getPrettyName
c8a0 28 29 2c 20 30 2c 20 24 70 6f 73 29 0a 2e 20 27 3c 68 69 67 68 6c 69 67 68 74 3e 27 20 2e 20 73 (),.0,.$pos)...'<highlight>'...s
c8c0 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c ubstr($package->getPrettyName(),
c8e0 20 24 70 6f 73 2c 20 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 20 2e 20 27 3c 2f 68 69 67 68 .$pos,.strlen($token))...'</high
c900 6c 69 67 68 74 3e 27 0a 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 light>'...substr($package->getPr
c920 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 70 6f 73 20 2b 20 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e ettyName(),.$pos.+.strlen($token
c940 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 ));.}.else.{.$name.=.$package->g
c960 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 etPrettyName();.}..$description.
c980 3d 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f =.strtok($package->getDescriptio
c9a0 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f n(),."\r\n");.if.(false.!==.($po
c9c0 73 20 3d 20 73 74 72 69 70 6f 73 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 74 6f 6b 65 6e s.=.stripos($description,.$token
c9e0 29 29 29 20 7b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 64 65 73 ))).{.$description.=.substr($des
ca00 63 72 69 70 74 69 6f 6e 2c 20 30 2c 20 24 70 6f 73 29 0a 2e 20 27 3c 68 69 67 68 6c 69 67 68 74 cription,.0,.$pos)...'<highlight
ca20 3e 27 20 2e 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 70 6f 73 2c 20 >'...substr($description,.$pos,.
ca40 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 20 2e 20 27 3c 2f 68 69 67 68 6c 69 67 68 74 3e 27 strlen($token))...'</highlight>'
ca60 0a 2e 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 70 6f 73 20 2b 20 73 ...substr($description,.$pos.+.s
ca80 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 trlen($token));.}..$packages[$pa
caa0 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 ckage->getName()].=.array(.'name
cac0 27 20 3d 3e 20 24 6e 61 6d 65 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 64 65 '.=>.$name,.'description'.=>.$de
cae0 73 63 72 69 70 74 69 6f 6e 2c 0a 27 6c 65 6e 67 74 68 27 20 3d 3e 20 24 6c 65 6e 67 74 68 20 3d scription,.'length'.=>.$length.=
cb00 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 .strlen($package->getPrettyName(
cb20 29 29 2c 0a 27 73 63 6f 72 65 27 20 3d 3e 20 24 73 63 6f 72 65 2c 0a 29 3b 0a 0a 24 6d 61 78 50 )),.'score'.=>.$score,.);..$maxP
cb40 61 63 6b 61 67 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6d 61 78 50 61 63 6b 61 67 65 4c 65 ackageLength.=.max($maxPackageLe
cb60 6e 67 74 68 2c 20 24 6c 65 6e 67 74 68 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d ngth,.$length);..continue.2;.}.}
cb80 0a 0a 75 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c ..usort($packages,.function.($a,
cba0 20 24 62 29 20 7b 0a 69 66 20 28 24 61 5b 27 73 63 6f 72 65 27 5d 20 3d 3d 3d 20 24 62 5b 27 73 .$b).{.if.($a['score'].===.$b['s
cbc0 63 6f 72 65 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 core']).{.return.0;.}..return.$a
cbe0 5b 27 73 63 6f 72 65 27 5d 20 3e 20 24 62 5b 27 73 63 6f 72 65 27 5d 20 3f 20 2d 31 20 3a 20 31 ['score'].>.$b['score'].?.-1.:.1
cc00 3b 0a 7d 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 64 65 ;.});..foreach.($packages.as.$de
cc20 74 61 69 6c 73 29 20 7b 0a 24 65 78 74 72 61 53 70 61 63 65 73 20 3d 20 24 6d 61 78 50 61 63 6b tails).{.$extraSpaces.=.$maxPack
cc40 61 67 65 4c 65 6e 67 74 68 20 2d 20 24 64 65 74 61 69 6c 73 5b 27 6c 65 6e 67 74 68 27 5d 3b 0a ageLength.-.$details['length'];.
cc60 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 65 74 61 69 6c 73 5b 27 6e 61 6d 65 27 $output->writeln($details['name'
cc80 5d 20 2e 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 65 78 74 72 61 53 70 61 63 65 73 ]...str_repeat('.',.$extraSpaces
cca0 29 20 2e 27 20 3c 63 6f 6d 6d 65 6e 74 3e 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 27 2e 20 24 64 65 )..'.<comment>:</comment>.'..$de
ccc0 74 61 69 6c 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a tails['description']);.}.}......
cce0 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 50 61 63 6b 61 67 65 ...private.function.matchPackage
cd00 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 6f 6b (PackageInterface.$package,.$tok
cd20 65 6e 29 0a 7b 0a 24 73 63 6f 72 65 20 3d 20 30 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d en).{.$score.=.0;..if.(false.!==
cd40 20 73 74 72 69 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 .stripos($package->getName(),.$t
cd60 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 35 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c oken)).{.$score.+=.5;.}..if.(fal
cd80 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 6a 6f 69 6e 28 27 2c 27 2c 20 24 70 61 63 6b 61 67 se.!==.stripos(join(',',.$packag
cda0 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 20 3f 3a 20 61 72 72 61 79 28 29 29 2c 20 24 74 e->getKeywords().?:.array()),.$t
cdc0 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 33 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c oken)).{.$score.+=.3;.}..if.(fal
cde0 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 se.!==.stripos($package->getDesc
ce00 72 69 70 74 69 6f 6e 28 29 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 ription(),.$token)).{.$score.+=.
ce20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 63 6f 72 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 1;.}..return.$score;.}.}.<?php..
ce40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d ..........namespace.Composer\Com
ce60 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 mand;..use.Composer\Composer;.us
ce80 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d e.Composer\Util\RemoteFilesystem
cea0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
cec0 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e Input\InputInterface;.use.Symfon
cee0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 y\Component\Console\Output\Outpu
cf00 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 6c 66 55 70 64 61 74 65 tInterface;.....class.SelfUpdate
cf20 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 Command.extends.Command.{.protec
cf40 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 ted.function.configure().{.$this
cf60 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 6c 66 2d 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 41 .->setName('self-update').->setA
cf80 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 73 65 6c 66 75 70 64 61 74 65 27 29 29 0a 2d 3e 73 65 liases(array('selfupdate')).->se
cfa0 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 63 6f 6d 70 6f 73 65 72 2e 70 tDescription('Updates.composer.p
cfc0 68 61 72 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 27 29 0a 2d 3e 73 har.to.the.latest.version.').->s
cfe0 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 73 65 6c 66 2d 75 70 64 etHelp(<<<EOT.The.<info>self-upd
d000 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 67 65 74 63 6f 6d ate</info>.command.checks.getcom
d020 70 6f 73 65 72 2e 6f 72 67 20 66 6f 72 20 6e 65 77 65 72 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 poser.org.for.newer.versions.of.
d040 63 6f 6d 70 6f 73 65 72 20 61 6e 64 20 69 66 20 66 6f 75 6e 64 2c 20 69 6e 73 74 61 6c 6c 73 20 composer.and.if.found,.installs.
d060 74 68 65 20 6c 61 74 65 73 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e the.latest...<info>php.composer.
d080 70 68 61 72 20 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b phar.self-update</info>..EOT.).;
d0a0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 .}..protected.function.execute(I
d0c0 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 nputInterface.$input,.OutputInte
d0e0 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f rface.$output).{.$rfs.=.new.Remo
d100 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 6c teFilesystem($this->getIO());.$l
d120 61 74 65 73 74 20 3d 20 74 72 69 6d 28 24 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 atest.=.trim($rfs->getContents('
d140 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 27 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d getcomposer.org',.'http://getcom
d160 70 6f 73 65 72 2e 6f 72 67 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 0a 69 66 poser.org/version',.false));..if
d180 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 74 65 73 74 29 .(Composer::VERSION.!==.$latest)
d1a0 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 22 55 70 64 .{.$output->writeln(sprintf("Upd
d1c0 61 74 69 6e 67 20 74 6f 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e ating.to.version.<info>%s</info>
d1e0 2e 22 2c 20 24 6c 61 74 65 73 74 29 29 3b 0a 0a 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 20 .",.$latest));..$remoteFilename.
d200 3d 20 27 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 70 6f 73 =.'http://getcomposer.org/compos
d220 65 72 2e 70 68 61 72 27 3b 0a 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 20 3d 20 24 5f 53 45 52 er.phar';.$localFilename.=.$_SER
d240 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 3b 0a 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 20 3d 20 VER['argv'][0];.$tempFilename.=.
d260 62 61 73 65 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 27 2e 70 68 61 72 27 basename($localFilename,.'.phar'
d280 29 2e 27 2d 74 65 6d 70 2e 70 68 61 72 27 3b 0a 0a 24 72 66 73 2d 3e 63 6f 70 79 28 27 67 65 74 ).'-temp.phar';..$rfs->copy('get
d2a0 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 2c 20 composer.org',.$remoteFilename,.
d2c0 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 3b 0a 0a 74 72 79 20 7b 0a 63 68 6d 6f 64 28 24 74 65 $tempFilename);..try.{.chmod($te
d2e0 6d 70 46 69 6c 65 6e 61 6d 65 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 0a 20 mpFilename,.0777.&.~umask());...
d300 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 $phar.=.new.\Phar($tempFilename)
d320 3b 0a 0a 20 75 6e 73 65 74 28 24 70 68 61 72 29 3b 0a 72 65 6e 61 6d 65 28 24 74 65 6d 70 46 69 ;...unset($phar);.rename($tempFi
d340 6c 65 6e 61 6d 65 2c 20 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 3b 0a 7d 20 63 61 74 63 68 lename,.$localFilename);.}.catch
d360 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 65 20 69 6e 73 74 61 .(\Exception.$e).{.if.(!$e.insta
d380 6e 63 65 6f 66 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 nceof.\UnexpectedValueException.
d3a0 26 26 20 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 50 68 61 72 45 78 63 65 70 74 69 6f 6e &&.!$e.instanceof.\PharException
d3c0 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 74 65 6d 70 46 69 6c 65 ).{.throw.$e;.}.unlink($tempFile
d3e0 6e 61 6d 65 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e name);.$output->writeln('<error>
d400 54 68 65 20 64 6f 77 6e 6c 6f 61 64 20 69 73 20 63 6f 72 72 75 70 74 65 64 20 28 27 2e 24 65 2d The.download.is.corrupted.('.$e-
d420 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 6f 75 >getMessage().').</error>');.$ou
d440 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 50 6c 65 61 73 65 20 72 65 2d tput->writeln('<error>Please.re-
d460 72 75 6e 20 74 68 65 20 73 65 6c 66 2d 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 run.the.self-update.command.to.t
d480 72 79 20 61 67 61 69 6e 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a ry.again.</error>');.}.}.else.{.
d4a0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 3c 69 6e 66 6f 3e 59 6f 75 20 61 72 65 20 $output->writeln("<info>You.are.
d4c0 75 73 69 6e 67 20 74 68 65 20 6c 61 74 65 73 74 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f using.the.latest.composer.versio
d4e0 6e 2e 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a n.</info>");.}.}.}.<?php........
d500 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a ....namespace.Composer\Command;.
d520 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 .use.Symfony\Component\Console\I
d540 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nput\InputInterface;.use.Symfony
d560 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 \Component\Console\Input\InputAr
d580 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f gument;.use.Symfony\Component\Co
d5a0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d nsole\Input\InputOption;.use.Sym
d5c0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 fony\Component\Console\Output\Ou
d5e0 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 tputInterface;.use.Composer\Fact
d600 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 ory;.use.Composer\Installer;.use
d620 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d .Composer\Json\JsonFile;.use.Com
d640 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a poser\Json\JsonManipulator;.....
d660 0a 63 6c 61 73 73 20 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 49 6e .class.RequireCommand.extends.In
d680 69 74 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 itCommand.{.protected.function.c
d6a0 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 72 65 onfigure().{.$this.->setName('re
d6c0 71 75 69 72 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 64 64 73 20 72 quire').->setDescription('Adds.r
d6e0 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 equired.packages.to.your.compose
d700 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 27 29 0a 2d 3e 73 65 74 r.json.and.installs.them').->set
d720 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d Definition(array(.new.InputArgum
d740 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 ent('packages',.InputArgument::I
d760 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 S_ARRAY.|.InputArgument::OPTIONA
d780 4c 2c 20 27 52 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 20 77 69 74 68 20 61 20 76 65 72 73 L,.'Required.package.with.a.vers
d7a0 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 ion.constraint,.e.g..foo/bar:1.0
d7c0 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 .0.or.foo/bar=1.0.0.or."foo/bar.
d7e0 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 1.0.0"'),.new.InputOption('dev',
d800 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 .null,.InputOption::VALUE_NONE,.
d820 27 41 64 64 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 6f 20 72 65 71 75 69 72 65 2d 64 65 76 2e 'Add.requirement.to.require-dev.
d840 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 '),.new.InputOption('prefer-sour
d860 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f ce',.null,.InputOption::VALUE_NO
d880 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 NE,.'Forces.installation.from.pa
d8a0 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 ckage.sources.when.possible,.inc
d8c0 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 luding.VCS.information.'),.new.I
d8e0 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e nputOption('no-update',.null,.In
d900 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 putOption::VALUE_NONE,.'Disables
d920 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 75 70 64 61 74 65 20 6f 66 20 74 68 65 20 64 65 70 .the.automatic.update.of.the.dep
d940 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f endencies.'),.)).->setHelp(<<<EO
d960 54 0a 54 68 65 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 6e 64 20 61 64 64 73 20 72 65 71 75 69 T.The.require.command.adds.requi
d980 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 red.packages.to.your.composer.js
d9a0 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 0a 0a 49 66 20 79 6f 75 20 64 6f 20 on.and.installs.them..If.you.do.
d9c0 6e 6f 74 20 77 61 6e 74 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 20 64 65 70 65 not.want.to.install.the.new.depe
d9e0 6e 64 65 6e 63 69 65 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 79 6f 75 20 63 61 6e 20 63 61 6c ndencies.immediately.you.can.cal
da00 6c 20 69 74 20 77 69 74 68 20 2d 2d 6e 6f 2d 75 70 64 61 74 65 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d l.it.with.--no-update..EOT.).;.}
da20 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 ..protected.function.execute(Inp
da40 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 utInterface.$input,.OutputInterf
da60 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 ace.$output).{.$factory.=.new.Fa
da80 63 74 6f 72 79 3b 0a 24 66 69 6c 65 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 67 65 74 43 6f 6d 70 ctory;.$file.=.$factory->getComp
daa0 6f 73 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 oserFile();..if.(!file_exists($f
dac0 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 ile)).{.$output->writeln('<error
dae0 3e 27 2e 24 66 69 6c 65 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b >'.$file.'.not.found.</error>');
db00 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 ..return.1;.}.if.(!is_readable($
db20 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f file)).{.$output->writeln('<erro
db40 72 3e 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 72 r>'.$file.'.is.not.readable.</er
db60 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 64 69 61 6c 6f 67 20 3d 20 ror>');..return.1;.}..$dialog.=.
db80 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c $this->getHelperSet()->get('dial
dba0 6f 67 27 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c og');..$json.=.new.JsonFile($fil
dbc0 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a e);.$composer.=.$json->read();..
dbe0 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e 65 $requirements.=.$this->determine
dc00 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 69 Requirements($input,.$output,.$i
dc20 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 3b 0a nput->getArgument('packages'));.
dc40 0a 24 72 65 71 75 69 72 65 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e .$requireKey.=.$input->getOption
dc60 28 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3a 20 27 72 65 71 75 69 ('dev').?.'require-dev'.:.'requi
dc80 72 65 27 3b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 6b re';.$baseRequirements.=.array_k
dca0 65 79 5f 65 78 69 73 74 73 28 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 63 6f 6d 70 6f 73 65 72 ey_exists($requireKey,.$composer
dcc0 29 20 3f 20 24 63 6f 6d 70 6f 73 65 72 5b 24 72 65 71 75 69 72 65 4b 65 79 5d 20 3a 20 61 72 72 ).?.$composer[$requireKey].:.arr
dce0 61 79 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 ay();.$requirements.=.$this->for
dd00 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a matRequirements($requirements);.
dd20 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 46 69 6c 65 43 6c 65 61 6e 6c 79 28 24 .if.(!$this->updateFileCleanly($
dd40 6a 73 6f 6e 2c 20 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 24 72 65 71 75 69 72 json,.$baseRequirements,.$requir
dd60 65 6d 65 6e 74 73 2c 20 24 72 65 71 75 69 72 65 4b 65 79 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 ements,.$requireKey)).{.foreach.
dd80 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 ($requirements.as.$package.=>.$v
dda0 65 72 73 69 6f 6e 29 20 7b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 24 70 61 63 ersion).{.$baseRequirements[$pac
ddc0 6b 61 67 65 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 5b 24 kage].=.$version;.}..$composer[$
dde0 72 65 71 75 69 72 65 4b 65 79 5d 20 3d 20 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 3b requireKey].=.$baseRequirements;
de00 0a 24 6a 73 6f 6e 2d 3e 77 72 69 74 65 28 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 7d 0a 0a 24 6f 75 .$json->write($composer);.}..$ou
de20 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 2e 24 66 69 6c 65 2e 27 20 68 tput->writeln('<info>'.$file.'.h
de40 61 73 20 62 65 65 6e 20 75 70 64 61 74 65 64 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 as.been.updated</info>');..if.($
de60 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 29 29 20 7b input->getOption('no-update')).{
de80 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 .return.0;.}....$composer.=.$thi
dea0 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 s->getComposer();.$io.=.$this->g
dec0 65 74 49 4f 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 etIO();.$install.=.Installer::cr
dee0 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a eate($io,.$composer);..$install.
df00 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 ->setVerbose($input->getOption('
df20 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e verbose')).->setPreferSource($in
df40 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 put->getOption('prefer-source'))
df60 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 .->setDevMode($input->getOption(
df80 27 64 65 76 27 29 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 'dev')).->setUpdate(true).->setU
dfa0 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 3b pdateWhitelist($requirements);.;
dfc0 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 20 3f 20 30 20 3a 20 31 ..return.$install->run().?.0.:.1
dfe0 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 46 69 6c 65 ;.}..private.function.updateFile
e000 43 6c 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 61 72 72 61 79 20 24 62 61 73 65 2c 20 61 72 72 61 Cleanly($json,.array.$base,.arra
e020 79 20 24 6e 65 77 2c 20 24 72 65 71 75 69 72 65 4b 65 79 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 y.$new,.$requireKey).{.$contents
e040 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 .=.file_get_contents($json->getP
e060 61 74 68 28 29 29 3b 0a 0a 24 6d 61 6e 69 70 75 6c 61 74 6f 72 20 3d 20 6e 65 77 20 4a 73 6f 6e ath());..$manipulator.=.new.Json
e080 4d 61 6e 69 70 75 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 66 6f 72 65 61 63 68 Manipulator($contents);..foreach
e0a0 20 28 24 6e 65 77 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e .($new.as.$package.=>.$constrain
e0c0 74 29 20 7b 0a 69 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 61 64 64 4c 69 6e 6b 28 t).{.if.(!$manipulator->addLink(
e0e0 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 $requireKey,.$package,.$constrai
e100 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 nt)).{.return.false;.}.}..file_p
e120 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d ut_contents($json->getPath(),.$m
e140 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 0a 72 65 74 anipulator->getContents());..ret
e160 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 urn.true;.}..protected.function.
e180 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 interact(InputInterface.$input,.
e1a0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 OutputInterface.$output).{.retur
e1c0 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 n;.}.}.<?php............namespac
e1e0 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 e.Composer\Command\Helper;..use.
e200 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 Symfony\Component\Console\Helper
e220 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 61 73 20 42 61 73 65 44 69 61 6c 6f 67 48 65 6c 70 65 \DialogHelper.as.BaseDialogHelpe
e240 72 3b 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 42 r;..class.DialogHelper.extends.B
e260 61 73 65 44 69 61 6c 6f 67 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 aseDialogHelper.{............pub
e280 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 51 75 65 73 74 69 6f 6e 28 24 71 75 65 73 74 69 lic.function.getQuestion($questi
e2a0 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 24 73 65 70 20 3d 20 27 3a 27 29 on,.$default.=.null,.$sep.=.':')
e2c0 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 20 21 3d 3d 20 6e 75 6c 6c 20 3f 0a 73 70 .{.return.$default.!==.null.?.sp
e2e0 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 rintf('<info>%s</info>.[<comment
e300 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 25 73 20 27 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 >%s</comment>]%s.',.$question,.$
e320 64 65 66 61 75 6c 74 2c 20 24 73 65 70 29 20 3a 0a 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e default,.$sep).:.sprintf('<info>
e340 25 73 3c 2f 69 6e 66 6f 3e 25 73 20 27 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 73 65 70 29 3b %s</info>%s.',.$question,.$sep);
e360 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
e380 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c Composer\Command;..use.Composer\
e3a0 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 Json\JsonFile;.use.Composer\Fact
e3c0 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d ory;.use.Composer\Repository\Com
e3e0 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 positeRepository;.use.Composer\R
e400 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 epository\PlatformRepository;.us
e420 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
e440 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f t\InputInterface;.use.Symfony\Co
e460 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f mponent\Console\Input\InputOptio
e480 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 n;.use.Symfony\Component\Console
e4a0 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d \Output\OutputInterface;.use.Sym
e4c0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a fony\Component\Process\Process;.
e4e0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 use.Symfony\Component\Process\Ex
e500 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 69 74 43 ecutableFinder;......class.InitC
e520 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 ommand.extends.Command.{.private
e540 20 24 67 69 74 43 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 3b 0a 0a 70 75 .$gitConfig;.private.$repos;..pu
e560 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 blic.function.parseAuthorString(
e580 24 61 75 74 68 6f 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 3f 50 $author).{.if.(preg_match('/^(?P
e5a0 3c 6e 61 6d 65 3e 5b 2d 20 5c 2e 2c 5c 77 5c 27 e2 80 99 5d 2b 29 20 3c 28 3f 50 3c 65 6d 61 69 <name>[-.\.,\w\'...]+).<(?P<emai
e5c0 6c 3e 2e 2b 3f 29 3e 24 2f 75 27 2c 20 24 61 75 74 68 6f 72 2c 20 24 6d 61 74 63 68 29 29 20 7b l>.+?)>$/u',.$author,.$match)).{
e5e0 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 .if.(!function_exists('filter_va
e600 72 27 29 20 7c 7c 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 r').||.version_compare(PHP_VERSI
e620 4f 4e 2c 20 27 35 2e 33 2e 33 27 2c 20 27 3c 27 29 20 7c 7c 20 24 6d 61 74 63 68 5b 27 65 6d 61 ON,.'5.3.3',.'<').||.$match['ema
e640 69 6c 27 5d 20 3d 3d 3d 20 66 69 6c 74 65 72 5f 76 61 72 28 24 6d 61 74 63 68 5b 27 65 6d 61 69 il'].===.filter_var($match['emai
e660 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 72 l'],.FILTER_VALIDATE_EMAIL)).{.r
e680 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 74 72 69 6d 28 24 6d 61 74 eturn.array(.'name'.=>.trim($mat
e6a0 63 68 5b 27 6e 61 6d 65 27 5d 29 2c 0a 27 65 6d 61 69 6c 27 20 3d 3e 20 24 6d 61 74 63 68 5b 27 ch['name']),.'email'.=>.$match['
e6c0 65 6d 61 69 6c 27 5d 0a 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c email'].);.}.}..throw.new.\Inval
e6e0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 49 6e 76 61 6c 69 64 20 61 75 idArgumentException(.'Invalid.au
e700 74 68 6f 72 20 73 74 72 69 6e 67 2e 20 20 4d 75 73 74 20 62 65 20 69 6e 20 74 68 65 20 66 6f 72 thor.string...Must.be.in.the.for
e720 6d 61 74 3a 20 27 2e 0a 27 4a 6f 68 6e 20 53 6d 69 74 68 20 3c 6a 6f 68 6e 40 65 78 61 6d 70 6c mat:.'..'John.Smith.<john@exampl
e740 65 2e 63 6f 6d 3e 27 0a 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e e.com>'.);.}..protected.function
e760 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 .configure().{.$this.->setName('
e780 69 6e 69 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 73 init').->setDescription('Creates
e7a0 20 61 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 6e 20 63 .a.basic.composer.json.file.in.c
e7c0 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 urrent.directory.').->setDefinit
e7e0 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 ion(array(.new.InputOption('name
e800 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
e820 2c 20 27 4e 61 6d 65 20 6f 66 20 74 68 65 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e ,.'Name.of.the.package'),.new.In
e840 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 6e 75 6c 6c 2c 20 49 putOption('description',.null,.I
e860 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 65 73 63 72 69 70 nputOption::VALUE_NONE,.'Descrip
e880 74 69 6f 6e 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 tion.of.package'),.new.InputOpti
e8a0 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a on('author',.null,.InputOption::
e8c0 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 75 74 68 6f 72 20 6e 61 6d 65 20 6f 66 20 70 61 63 6b VALUE_NONE,.'Author.name.of.pack
e8e0 61 67 65 27 29 2c 0a 0a 20 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 age'),...new.InputOption('homepa
e900 67 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f ge',.null,.InputOption::VALUE_NO
e920 4e 45 2c 20 27 48 6f 6d 65 70 61 67 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 NE,.'Homepage.of.package'),.new.
e940 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 InputOption('require',.null,.Inp
e960 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 utOption::VALUE_IS_ARRAY.|.Input
e980 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 Option::VALUE_REQUIRED,.'Package
e9a0 20 74 6f 20 72 65 71 75 69 72 65 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 .to.require.with.a.version.const
e9c0 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f raint,.e.g..foo/bar:1.0.0.or.foo
e9e0 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c /bar=1.0.0.or."foo/bar.1.0.0"'),
ea00 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 .new.InputOption('require-dev',.
ea20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 null,.InputOption::VALUE_IS_ARRA
ea40 59 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c Y.|.InputOption::VALUE_REQUIRED,
ea60 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 66 6f 72 20 64 65 76 65 6c 6f 70 .'Package.to.require.for.develop
ea80 6d 65 6e 74 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 ment.with.a.version.constraint,.
eaa0 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e e.g..foo/bar:1.0.0.or.foo/bar=1.
eac0 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 29 29 0a 2d 3e 73 0.0.or."foo/bar.1.0.0"'),.)).->s
eae0 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 69 74 3c 2f 69 6e etHelp(<<<EOT.The.<info>init</in
eb00 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 fo>.command.creates.a.basic.comp
eb20 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 oser.json.file.in.the.current.di
eb40 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 rectory...<info>php.composer.pha
eb60 72 20 69 6e 69 74 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 r.init</info>..EOT.).;.}..protec
eb80 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 ted.function.execute(InputInterf
eba0 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
ebc0 70 75 74 29 0a 7b 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 put).{.$dialog.=.$this->getHelpe
ebe0 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 24 77 68 69 74 65 6c 69 rSet()->get('dialog');..$whiteli
ec00 73 74 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 2c 20 27 64 65 73 63 72 69 70 74 69 6f 6e 27 st.=.array('name',.'description'
ec20 2c 20 27 61 75 74 68 6f 72 27 2c 20 27 72 65 71 75 69 72 65 27 29 3b 0a 0a 24 6f 70 74 69 6f 6e ,.'author',.'require');..$option
ec40 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 s.=.array_filter(array_intersect
ec60 5f 6b 65 79 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 2c 20 61 72 72 61 79 _key($input->getOptions(),.array
ec80 5f 66 6c 69 70 28 24 77 68 69 74 65 6c 69 73 74 29 29 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 _flip($whitelist)));..if.(isset(
eca0 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b $options['author'])).{.$options[
ecc0 27 61 75 74 68 6f 72 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 41 75 74 68 6f 72 'authors'].=.$this->formatAuthor
ece0 73 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 75 6e 73 65 74 28 24 6f 70 s($options['author']);.unset($op
ed00 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 tions['author']);.}..$options['r
ed20 65 71 75 69 72 65 27 5d 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 equire'].=.isset($options['requi
ed40 72 65 27 5d 29 20 3f 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 re']).?.$this->formatRequirement
ed60 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3a 0a 6e 65 77 20 5c 73 74 s($options['require']).:.new.\st
ed80 64 43 6c 61 73 73 3b 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 63 dClass;..$file.=.new.JsonFile('c
eda0 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 24 66 69 6c 65 2d 3e omposer.json');..$json.=.$file->
edc0 65 6e 63 6f 64 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 encode($options);..if.($input->i
ede0 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 sInteractive()).{.$output->write
ee00 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 6a 73 6f 6e 2c 0a 27 27 0a 29 29 3b 0a 69 66 20 28 ln(array(.'',.$json,.''.));.if.(
ee20 21 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 !$dialog->askConfirmation($outpu
ee40 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 44 6f 20 79 6f 75 20 t,.$dialog->getQuestion('Do.you.
ee60 63 6f 6e 66 69 72 6d 20 67 65 6e 65 72 61 74 69 6f 6e 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 confirm.generation',.'yes',.'?')
ee80 2c 20 74 72 75 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 ,.true)).{.$output->writeln('<er
eea0 72 6f 72 3e 43 6f 6d 6d 61 6e 64 20 61 62 6f 72 74 65 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a ror>Command.aborted</error>');..
eec0 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 6f 70 74 return.1;.}.}..$file->write($opt
eee0 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 ions);..if.($input->isInteractiv
ef00 65 28 29 29 20 7b 0a 24 69 67 6e 6f 72 65 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e e()).{.$ignoreFile.=.realpath('.
ef20 67 69 74 69 67 6e 6f 72 65 27 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 69 67 6e gitignore');..if.(false.===.$ign
ef40 6f 72 65 46 69 6c 65 29 20 7b 0a 24 69 67 6e 6f 72 65 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 oreFile).{.$ignoreFile.=.realpat
ef60 68 28 27 2e 27 29 20 2e 20 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 3b 0a 7d 0a 0a 69 66 20 28 21 h('.')...'/.gitignore';.}..if.(!
ef80 24 74 68 69 73 2d 3e 68 61 73 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 $this->hasVendorIgnore($ignoreFi
efa0 6c 65 29 29 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 le)).{.$question.=.'Would.you.li
efc0 6b 65 20 74 68 65 20 3c 69 6e 66 6f 3e 76 65 6e 64 6f 72 3c 2f 69 6e 66 6f 3e 20 64 69 72 65 63 ke.the.<info>vendor</info>.direc
efe0 74 6f 72 79 20 61 64 64 65 64 20 74 6f 20 79 6f 75 72 20 3c 69 6e 66 6f 3e 2e 67 69 74 69 67 6e tory.added.to.your.<info>.gitign
f000 6f 72 65 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e ore</info>.[<comment>yes</commen
f020 74 3e 5d 3f 27 3b 0a 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 t>]?';..if.($dialog->askConfirma
f040 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 74 72 75 65 29 29 20 tion($output,.$question,.true)).
f060 7b 0a 24 74 68 69 73 2d 3e 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 {.$this->addVendorIgnore($ignore
f080 46 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 File);.}.}.}.}..protected.functi
f0a0 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 on.interact(InputInterface.$inpu
f0c0 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 67 t,.OutputInterface.$output).{.$g
f0e0 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 64 69 it.=.$this->getGitConfig();..$di
f100 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 alog.=.$this->getHelperSet()->ge
f120 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 74 68 69 73 2d t('dialog');.$formatter.=.$this-
f140 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 >getHelperSet()->get('formatter'
f160 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 );.$output->writeln(array(.'',.$
f180 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 27 57 65 6c 63 6f 6d 65 20 formatter->formatBlock('Welcome.
f1a0 74 6f 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 63 6f 6e 66 69 67 20 67 65 6e 65 72 61 74 6f 72 to.the.Composer.config.generator
f1c0 27 2c 20 27 62 67 3d 62 6c 75 65 3b 66 67 3d 77 68 69 74 65 27 2c 20 74 72 75 65 29 2c 0a 27 27 ',.'bg=blue;fg=white',.true),.''
f1e0 0a 29 29 3b 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a .));....$output->writeln(array(.
f200 27 27 2c 0a 27 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 '',.'This.command.will.guide.you
f220 20 74 68 72 6f 75 67 68 20 63 72 65 61 74 69 6e 67 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e .through.creating.your.composer.
f240 6a 73 6f 6e 20 63 6f 6e 66 69 67 2e 27 2c 0a 27 27 2c 0a 29 29 3b 0a 0a 24 63 77 64 20 3d 20 72 json.config.',.'',.));..$cwd.=.r
f260 65 61 6c 70 61 74 68 28 22 2e 22 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 61 ealpath(".");..if.(false.===.$na
f280 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 29 29 20 me.=.$input->getOption('name')).
f2a0 7b 0a 24 6e 61 6d 65 20 3d 20 62 61 73 65 6e 61 6d 65 28 24 63 77 64 29 3b 0a 69 66 20 28 69 73 {.$name.=.basename($cwd);.if.(is
f2c0 73 65 74 28 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 29 29 20 7b 0a 24 6e 61 6d set($git['github.user'])).{.$nam
f2e0 65 20 3d 20 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 20 2e 20 27 2f 27 20 2e 20 e.=.$git['github.user']...'/'...
f300 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 $name;.}.elseif.(!empty($_SERVER
f320 5b 27 55 53 45 52 4e 41 4d 45 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 5f 53 45 52 56 45 ['USERNAME'])).{.$name.=.$_SERVE
f340 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 R['USERNAME']...'/'...$name;.}.e
f360 6c 73 65 69 66 20 28 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 29 20 7b 0a 24 6e 61 lseif.(get_current_user()).{.$na
f380 6d 65 20 3d 20 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 20 2e 20 27 2f 27 20 2e 20 me.=.get_current_user()...'/'...
f3a0 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 20 $name;.}.else.{...$name.=.$name.
f3c0 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 64 69 61 ..'/'...$name;.}.}..$name.=.$dia
f3e0 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 log->askAndValidate(.$output,.$d
f400 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 ialog->getQuestion('Package.name
f420 20 28 3c 76 65 6e 64 6f 72 3e 2f 3c 6e 61 6d 65 3e 29 27 2c 20 24 6e 61 6d 65 29 2c 0a 66 75 6e .(<vendor>/<name>)',.$name),.fun
f440 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 6e 61 6d 65 29 20 7b 0a 69 66 20 ction.($value).use.($name).{.if.
f460 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 (null.===.$value).{.return.$name
f480 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f ;.}..if.(!preg_match('{^[a-z0-9_
f4a0 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 24 7d 69 27 2c 20 24 76 61 6c 75 65 29 29 20 .-]+/[a-z0-9_.-]+$}i',.$value)).
f4c0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
f4e0 70 74 69 6f 6e 28 0a 27 54 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 76 61 6c 75 ption(.'The.package.name.'.$valu
f500 65 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 e.'.is.invalid,.it.should.have.a
f520 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 2c 20 61 .vendor.name,.a.forward.slash,.a
f540 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 6e 67 3a 20 5b 61 2d nd.a.package.name,.matching:.[a-
f560 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 3b 0a 7d 0a 0a 72 65 z0-9_.-]+/[a-z0-9_.-]+'.);.}..re
f580 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 turn.$value;.}.);.$input->setOpt
f5a0 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 69 6f ion('name',.$name);..$descriptio
f5c0 6e 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 n.=.$input->getOption('descripti
f5e0 6f 6e 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 on').?:.false;.$description.=.$d
f600 69 61 6c 6f 67 2d 3e 61 73 6b 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 ialog->ask(.$output,.$dialog->ge
f620 74 51 75 65 73 74 69 6f 6e 28 27 44 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 63 72 69 tQuestion('Description',.$descri
f640 70 74 69 6f 6e 29 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 ption).);.$input->setOption('des
f660 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 3b 0a 0a 69 66 20 28 66 cription',.$description);..if.(f
f680 61 6c 73 65 20 3d 3d 3d 20 24 61 75 74 68 6f 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 alse.===.$author.=.$input->getOp
f6a0 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 tion('author')).{.if.(isset($git
f6c0 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 67 69 74 5b 27 75 73 ['user.name']).&&.isset($git['us
f6e0 65 72 2e 65 6d 61 69 6c 27 5d 29 29 20 7b 0a 24 61 75 74 68 6f 72 20 3d 20 73 70 72 69 6e 74 66 er.email'])).{.$author.=.sprintf
f700 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 2c 20 24 ('%s.<%s>',.$git['user.name'],.$
f720 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 73 65 6c 66 20 3d git['user.email']);.}.}..$self.=
f740 20 24 74 68 69 73 3b 0a 24 61 75 74 68 6f 72 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e .$this;.$author.=.$dialog->askAn
f760 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 dValidate(.$output,.$dialog->get
f780 51 75 65 73 74 69 6f 6e 28 27 41 75 74 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 2c 0a 66 75 6e Question('Author',.$author),.fun
f7a0 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 61 75 74 68 ction.($value).use.($self,.$auth
f7c0 6f 72 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 or).{.if.(null.===.$value).{.ret
f7e0 75 72 6e 20 24 61 75 74 68 6f 72 3b 0a 7d 0a 0a 24 61 75 74 68 6f 72 20 3d 20 24 73 65 6c 66 2d urn.$author;.}..$author.=.$self-
f800 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 >parseAuthorString($value);..ret
f820 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 61 75 74 68 6f 72 5b 27 urn.sprintf('%s.<%s>',.$author['
f840 6e 61 6d 65 27 5d 2c 20 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 29 3b 0a name'],.$author['email']);.}.);.
f860 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 24 61 75 74 $input->setOption('author',.$aut
f880 68 6f 72 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 hor);..$output->writeln(array(.'
f8a0 27 2c 0a 27 44 65 66 69 6e 65 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 2c 0a ',.'Define.your.dependencies.',.
f8c0 27 27 0a 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b ''.));..$requirements.=.array();
f8e0 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f .if.($dialog->askConfirmation($o
f900 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 57 6f 75 utput,.$dialog->getQuestion('Wou
f920 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 70 65 6e ld.you.like.to.define.your.depen
f940 64 65 6e 63 69 65 73 20 28 72 65 71 75 69 72 65 29 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 27 dencies.(require).interactively'
f960 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 72 65 71 75 69 72 65 ,.'yes',.'?'),.true)).{.$require
f980 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d ments.=.$this->determineRequirem
f9a0 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 ents($input,.$output,.$input->ge
f9c0 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e 73 tOption('require'));.}.$input->s
f9e0 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 etOption('require',.$requirement
fa00 73 29 3b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a s);.$devRequirements.=.array();.
fa20 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 if.($dialog->askConfirmation($ou
fa40 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 57 6f 75 6c tput,.$dialog->getQuestion('Woul
fa60 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 76 20 64 65 d.you.like.to.define.your.dev.de
fa80 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 71 75 69 72 65 2d 64 65 76 29 20 69 6e 74 65 72 61 63 pendencies.(require-dev).interac
faa0 74 69 76 65 6c 79 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 tively',.'yes',.'?'),.true)).{.$
fac0 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 devRequirements.=.$this->determi
fae0 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 neRequirements($input,.$output,.
fb00 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 $input->getOption('require-dev')
fb20 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d );.}.$input->setOption('require-
fb40 64 65 76 27 2c 20 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 dev',.$devRequirements);.}..prot
fb60 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d ected.function.findPackages($nam
fb80 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 66 20 e).{.$packages.=.array();....if.
fba0 28 21 24 74 68 69 73 2d 3e 72 65 70 6f 73 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 20 3d (!$this->repos).{.$this->repos.=
fbc0 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d .new.CompositeRepository(array_m
fbe0 65 72 67 65 28 0a 61 72 72 61 79 28 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f erge(.array(new.PlatformReposito
fc00 72 79 29 2c 0a 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 ry),.Factory::createDefaultRepos
fc20 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 0a 29 29 3b 0a 7d 0a 0a 24 itories($this->getIO()).));.}..$
fc40 74 6f 6b 65 6e 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 65 61 token.=.strtolower($name);.forea
fc60 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 ch.($this->repos->getPackages().
fc80 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 28 24 70 as.$package).{.if.(false.===.($p
fca0 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c os.=.strpos($package->getName(),
fcc0 20 24 74 6f 6b 65 6e 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 .$token))).{.continue;.}..$packa
fce0 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 ges[].=.$package;.}..return.$pac
fd00 6b 61 67 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 kages;.}..protected.function.det
fd20 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 ermineRequirements(InputInterfac
fd40 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 e.$input,.OutputInterface.$outpu
fd60 74 2c 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 69 61 6c 6f t,.$requires.=.array()).{.$dialo
fd80 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 g.=.$this->getHelperSet()->get('
fda0 64 69 61 6c 6f 67 27 29 3b 0a 24 70 72 6f 6d 70 74 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 dialog');.$prompt.=.$dialog->get
fdc0 51 75 65 73 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 20 61 20 70 61 63 6b 61 67 65 27 2c Question('Search.for.a.package',
fde0 20 66 61 6c 73 65 2c 20 27 3a 27 29 3b 0a 0a 69 66 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a .false,.':');..if.($requires).{.
fe00 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 foreach.($requires.as.$key.=>.$r
fe20 65 71 75 69 72 65 6d 65 6e 74 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 24 6b 65 79 5d 20 3d 20 equirement).{.$requires[$key].=.
fe40 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 28 24 72 65 71 $this->normalizeRequirement($req
fe60 75 69 72 65 6d 65 6e 74 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 uirement);.if.(false.===.strpos(
fe80 24 72 65 71 75 69 72 65 73 5b 24 6b 65 79 5d 2c 20 27 20 27 29 20 26 26 20 24 69 6e 70 75 74 2d $requires[$key],.'.').&&.$input-
fea0 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 >isInteractive()).{.$question.=.
fec0 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 50 6c 65 61 73 65 20 70 72 6f $dialog->getQuestion('Please.pro
fee0 76 69 64 65 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 66 6f 72 20 74 68 vide.a.version.constraint.for.th
ff00 65 20 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 20 72 65 71 75 69 72 65 6d 65 6e 74 27 29 e.'.$requirement.'.requirement')
ff20 3b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b ;.if.($constraint.=.$dialog->ask
ff40 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 29 20 7b 0a 24 72 65 71 75 69 72 65 ($output,.$question)).{.$require
ff60 73 5b 24 6b 65 79 5d 20 2e 3d 20 27 20 27 20 2e 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a s[$key]..=.'.'...$constraint;.}.
ff80 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 65 71 75 69 72 65 73 }.if.(false.===.strpos($requires
ffa0 5b 24 6b 65 79 5d 2c 20 27 20 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c [$key],.'.')).{.throw.new.\Inval
ffc0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 72 65 71 75 69 72 65 idArgumentException('The.require
ffe0 6d 65 6e 74 20 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 20 6d 75 73 74 20 63 6f 6e 74 61 ment.'.$requirement.'.must.conta
10000 69 6e 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 27 29 3b 0a 7d 0a 7d 0a 0a in.a.version.constraint');.}.}..
10020 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 6e 75 6c 6c return.$requires;.}..while.(null
10040 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 .!==.$package.=.$dialog->ask($ou
10060 74 70 75 74 2c 20 24 70 72 6f 6d 70 74 29 29 20 7b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 74 68 tput,.$prompt)).{.$matches.=.$th
10080 69 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 is->findPackages($package);..if.
100a0 28 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 (count($matches)).{.$output->wri
100c0 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 73 70 72 69 6e 74 66 28 27 46 6f 75 6e 64 20 3c teln(array(.'',.sprintf('Found.<
100e0 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 70 61 63 6b 61 67 65 73 20 6d 61 74 63 68 69 6e 67 info>%s</info>.packages.matching
10100 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 .<info>%s</info>',.count($matche
10120 73 29 2c 20 24 70 61 63 6b 61 67 65 29 2c 0a 27 27 0a 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 s),.$package),.''.));..foreach.(
10140 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 6f 73 69 74 69 6f 6e 20 3d 3e 20 24 70 61 63 6b 61 67 $matches.as.$position.=>.$packag
10160 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 20 e).{.$output->writeln(sprintf('.
10180 3c 69 6e 66 6f 3e 25 35 73 3c 2f 69 6e 66 6f 3e 20 25 73 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c <info>%5s</info>.%s.<comment>%s<
101a0 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 22 5b 24 70 6f 73 69 74 69 6f 6e 5d 22 2c 20 24 70 61 63 6b /comment>',."[$position]",.$pack
101c0 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e age->getPrettyName(),.$package->
101e0 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 getPrettyVersion()));.}..$output
10200 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 66 75 6e ->writeln('');..$validator.=.fun
10220 63 74 69 6f 6e 20 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 75 73 65 20 28 24 6d 61 74 63 68 65 73 ction.($selection).use.($matches
10240 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 73 65 6c 65 63 74 69 6f 6e 29 20 7b 0a 72 65 74 ).{.if.(''.===.$selection).{.ret
10260 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 urn.false;.}..if.(!is_numeric($s
10280 65 6c 65 63 74 69 6f 6e 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c election).&&.preg_match('{^\s*(\
102a0 53 2b 29 20 2b 28 5c 53 2e 2a 29 5c 73 2a 7d 27 2c 20 24 73 65 6c 65 63 74 69 6f 6e 2c 20 24 6d S+).+(\S.*)\s*}',.$selection,.$m
102c0 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 20 atches)).{.return.$matches[1].'.
102e0 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 '.$matches[2];.}..if.(!isset($ma
10300 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f tches[(int).$selection])).{.thro
10320 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 74 20 61 20 76 61 6c 69 64 20 73 65 w.new.\Exception('Not.a.valid.se
10340 6c 65 63 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6d 61 74 63 68 65 lection');.}..$package.=.$matche
10360 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 s[(int).$selection];..return.spr
10380 69 6e 74 66 28 27 25 73 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 intf('%s.%s',.$package->getName(
103a0 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 ),.$package->getPrettyVersion())
103c0 3b 0a 7d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 ;.};..$package.=.$dialog->askAnd
103e0 56 61 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 Validate($output,.$dialog->getQu
10400 65 73 74 69 6f 6e 28 27 45 6e 74 65 72 20 70 61 63 6b 61 67 65 20 23 20 74 6f 20 61 64 64 2c 20 estion('Enter.package.#.to.add,.
10420 6f 72 20 61 20 22 5b 70 61 63 6b 61 67 65 5d 20 5b 76 65 72 73 69 6f 6e 5d 22 20 63 6f 75 70 6c or.a."[package].[version]".coupl
10440 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 6c 69 73 74 65 64 27 2c 20 66 61 6c 73 65 2c 20 27 e.if.it.is.not.listed',.false,.'
10460 3a 27 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 33 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 :'),.$validator,.3);..if.(false.
10480 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 70 !==.$package).{.$requires[].=.$p
104a0 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b ackage;.}.}.}..return.$requires;
104c0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 41 75 74 .}..protected.function.formatAut
104e0 68 6f 72 73 28 24 61 75 74 68 6f 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 hors($author).{.return.array($th
10500 69 73 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f 72 29 29 3b is->parseAuthorString($author));
10520 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 52 65 71 .}..protected.function.formatReq
10540 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 0a 7b uirements(array.$requirements).{
10560 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 .$requires.=.array();.foreach.($
10580 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 20 7b 0a requirements.as.$requirement).{.
105a0 24 72 65 71 75 69 72 65 6d 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 $requirement.=.$this->normalizeR
105c0 65 71 75 69 72 65 6d 65 6e 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 29 3b 0a 6c 69 73 74 28 24 equirement($requirement);.list($
105e0 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 20 3d 20 packageName,.$packageVersion).=.
10600 65 78 70 6c 6f 64 65 28 22 20 22 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 2c 20 32 29 3b 0a 0a explode(".",.$requirement,.2);..
10620 24 72 65 71 75 69 72 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 $requires[$packageName].=.$packa
10640 67 65 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 72 65 71 75 geVersion;.}..return.empty($requ
10660 69 72 65 73 29 20 3f 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 20 3a 20 24 72 65 71 75 69 72 65 ires).?.new.\stdClass.:.$require
10680 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 s;.}..protected.function.normali
106a0 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 29 0a 7b 0a 72 65 zeRequirement($requirement).{.re
106c0 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 3d 3a 20 5d 2b 29 5b 3d turn.preg_replace('{^([^=:.]+)[=
106e0 3a 20 5d 28 2e 2a 29 24 7d 27 2c 20 27 24 31 20 24 32 27 2c 20 24 72 65 71 75 69 72 65 6d 65 6e :.](.*)$}',.'$1.$2',.$requiremen
10700 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 69 74 t);.}..protected.function.getGit
10720 43 6f 6e 66 69 67 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 Config().{.if.(null.!==.$this->g
10740 69 74 43 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e itConfig).{.return.$this->gitCon
10760 66 69 67 3b 0a 7d 0a 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c 65 fig;.}..$finder.=.new.Executable
10780 46 69 6e 64 65 72 28 29 3b 0a 24 67 69 74 42 69 6e 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e Finder();.$gitBin.=.$finder->fin
107a0 64 28 27 67 69 74 27 29 3b 0a 0a 24 63 6d 64 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 73 70 d('git');..$cmd.=.new.Process(sp
107c0 72 69 6e 74 66 28 27 25 73 20 63 6f 6e 66 69 67 20 2d 6c 27 2c 20 65 73 63 61 70 65 73 68 65 6c rintf('%s.config.-l',.escapeshel
107e0 6c 61 72 67 28 24 67 69 74 42 69 6e 29 29 29 3b 0a 24 63 6d 64 2d 3e 72 75 6e 28 29 3b 0a 0a 69 larg($gitBin)));.$cmd->run();..i
10800 66 20 28 24 63 6d 64 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 24 74 68 69 73 f.($cmd->isSuccessful()).{.$this
10820 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 65 67 5f 6d 61 74 63 ->gitConfig.=.array();.preg_matc
10840 68 5f 61 6c 6c 28 27 7b 5e 28 5b 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d 27 2c 20 24 63 6d 64 2d h_all('{^([^=]+)=(.*)$}m',.$cmd-
10860 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 >getOutput(),.$matches,.PREG_SET
10880 5f 4f 52 44 45 52 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 6d _ORDER);.foreach.($matches.as.$m
108a0 61 74 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 5b 24 6d 61 74 63 68 5b atch).{.$this->gitConfig[$match[
108c0 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 1]].=.$match[2];.}..return.$this
108e0 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 ->gitConfig;.}..return.$this->gi
10900 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tConfig.=.array();.}............
10920 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 56 65 6e 64 ......protected.function.hasVend
10940 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d 20 orIgnore($ignoreFile,.$vendor.=.
10960 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 'vendor').{.if.(!file_exists($ig
10980 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 noreFile)).{.return.false;.}..$p
109a0 61 74 74 65 72 6e 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 7e 5e 2f 3f 25 73 28 2f 7c 2f 5c 2a 29 attern.=.sprintf(.'~^/?%s(/|/\*)
109c0 3f 24 7e 27 2c 0a 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 6e 64 6f 72 2c 20 27 7e 27 29 0a 29 ?$~',.preg_quote($vendor,.'~').)
109e0 3b 0a 0a 24 6c 69 6e 65 73 20 3d 20 66 69 6c 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 46 49 ;..$lines.=.file($ignoreFile,.FI
10a00 4c 45 5f 49 47 4e 4f 52 45 5f 4e 45 57 5f 4c 49 4e 45 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 LE_IGNORE_NEW_LINES);.foreach.($
10a20 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 lines.as.$line).{.if.(preg_match
10a40 28 24 70 61 74 74 65 72 6e 2c 20 24 6c 69 6e 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 ($pattern,.$line)).{.return.true
10a60 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ;.}.}..return.false;.}..protecte
10a80 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f d.function.addVendorIgnore($igno
10aa0 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 24 63 reFile,.$vendor.=.'vendor').{.$c
10ac0 6f 6e 74 65 6e 74 73 20 3d 20 22 22 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 ontents.=."";.if.(file_exists($i
10ae0 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 gnoreFile)).{.$contents.=.file_g
10b00 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 0a 69 66 20 28 22 et_contents($ignoreFile);..if.("
10b20 5c 6e 22 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 2d 31 29 \n".!==.substr($contents,.0,.-1)
10b40 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 ).{.$contents..=."\n";.}.}..file
10b60 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 63 6f 6e 74 _put_contents($ignoreFile,.$cont
10b80 65 6e 74 73 20 2e 20 24 76 65 6e 64 6f 72 2e 20 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ents...$vendor.."\n");.}.}.<?php
10ba0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
10bc0 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ownloader;..use.Composer\Package
10be0 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \PackageInterface;.use.Composer\
10c00 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 Util\ProcessExecutor;.use.Compos
10c20 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c er\IO\IOInterface;.use.Composer\
10c40 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c Util\Filesystem;.....abstract.cl
10c60 61 73 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 ass.VcsDownloader.implements.Dow
10c80 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f nloaderInterface.{.protected.$io
10ca0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 ;.protected.$process;.protected.
10cc0 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f $filesystem;..public.function.__
10ce0 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 construct(IOInterface.$io,.Proce
10d00 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 ssExecutor.$process.=.null,.File
10d20 73 79 73 74 65 6d 20 24 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d system.$fs.=.null).{.$this->io.=
10d40 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 .$io;.$this->process.=.$process.
10d60 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 66 ?:.new.ProcessExecutor;.$this->f
10d80 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 73 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 ilesystem.=.$fs.?:.new.Filesyste
10da0 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 m;.}.....public.function.getInst
10dc0 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 73 6f 75 72 63 allationSource().{.return.'sourc
10de0 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f e';.}.....public.function.downlo
10e00 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 ad(PackageInterface.$package,.$p
10e20 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 ath).{.if.(!$package->getSourceR
10e40 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 eference()).{.throw.new.\Invalid
10e60 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 ArgumentException('Package.'.$pa
10e80 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 ckage->getPrettyName().'.is.miss
10ea0 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a ing.reference.information');.}..
10ec0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 $this->io->write("..-.Installing
10ee0 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e .<info>"...$package->getName()..
10f00 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 ."</info>.(<comment>"...$package
10f20 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e ->getPrettyVersion()..."</commen
10f40 74 3e 29 22 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 t>)");.$this->filesystem->remove
10f60 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c Directory($path);.$this->doDownl
10f80 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d oad($package,.$path);.$this->io-
10fa0 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f >write('');.}.....public.functio
10fc0 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 n.update(PackageInterface.$initi
10fe0 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 al,.PackageInterface.$target,.$p
11000 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 ath).{.if.(!$target->getSourceRe
11020 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ference()).{.throw.new.\InvalidA
11040 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 74 61 72 rgumentException('Package.'.$tar
11060 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 69 6e get->getPrettyName().'.is.missin
11080 67 20 72 65 66 65 72 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 g.reference.information');.}..$t
110a0 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 55 70 64 61 74 69 6e 67 20 3c 69 6e his->io->write("..-.Updating.<in
110c0 66 6f 3e 22 20 2e 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 fo>"...$target->getName()..."</i
110e0 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 nfo>.(<comment>"...$target->getP
11100 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b rettyVersion()..."</comment>)");
11120 0a 24 74 68 69 73 2d 3e 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 .$this->enforceCleanDirectory($p
11140 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 55 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 ath);.$this->doUpdate($initial,.
11160 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 $target,.$path);.$this->io->writ
11180 65 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d e('');.}.....public.function.rem
111a0 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 ove(PackageInterface.$package,.$
111c0 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 path).{.$this->enforceCleanDirec
111e0 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 tory($path);.$this->io->write(".
11200 20 2d 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e .-.Removing.<info>"...$package->
11220 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 getName()..."</info>.(<comment>"
11240 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 ...$package->getPrettyVersion().
11260 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 .."</comment>)");.if.(!$this->fi
11280 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 lesystem->removeDirectory($path)
112a0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
112c0 27 43 6f 75 6c 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 65 20 27 2e 24 'Could.not.completely.delete.'.$
112e0 70 61 74 68 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a path.',.aborting.');.}.}........
11300 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f abstract.protected.function.doDo
11320 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 wnload(PackageInterface.$package
11340 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 ,.$path);.........abstract.prote
11360 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e cted.function.doUpdate(PackageIn
11380 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 terface.$initial,.PackageInterfa
113a0 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 ce.$target,.$path);.......abstra
113c0 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 ct.protected.function.enforceCle
113e0 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a anDirectory($path);.}.<?php.....
11400 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f .......namespace.Composer\Downlo
11420 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 ader;..use.Composer\IO\IOInterfa
11440 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 ce;.use.Composer\Package\Package
11460 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c Interface;.use.Composer\Util\Fil
11480 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 esystem;.use.Composer\Util\Remot
114a0 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 44 eFilesystem;.........class.FileD
114c0 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 64 65 72 49 ownloader.implements.DownloaderI
114e0 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 nterface.{.protected.$io;.protec
11500 74 65 64 20 24 72 66 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b ted.$rfs;.protected.$filesystem;
11520 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
11540 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 ct(IOInterface.$io,.RemoteFilesy
11560 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 stem.$rfs.=.null,.Filesystem.$fi
11580 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 lesystem.=.null).{.$this->io.=.$
115a0 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 6d io;.$this->rfs.=.$rfs.?:.new.Rem
115c0 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 oteFilesystem($io);.$this->files
115e0 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 ystem.=.$filesystem.?:.new.Files
11600 79 73 74 65 6d 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ystem();.}.....public.function.g
11620 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 etInstallationSource().{.return.
11640 27 64 69 73 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 'dist';.}.....public.function.do
11660 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 wnload(PackageInterface.$package
11680 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 ,.$path).{.$url.=.$package->getD
116a0 69 73 74 55 72 6c 28 29 3b 0a 69 66 20 28 21 24 75 72 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 istUrl();.if.(!$url).{.throw.new
116c0 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 .\InvalidArgumentException('The.
116e0 67 69 76 65 6e 20 70 61 63 6b 61 67 65 20 69 73 20 6d 69 73 73 69 6e 67 20 75 72 6c 20 69 6e 66 given.package.is.missing.url.inf
11700 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d ormation');.}..$this->filesystem
11720 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 70 61 74 68 29 3b 0a ->ensureDirectoryExists($path);.
11740 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 4e 61 6d 65 28 .$fileName.=.$this->getFileName(
11760 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 $package,.$path);..$this->io->wr
11780 69 74 65 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 ite("..-.Installing.<info>"...$p
117a0 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 ackage->getName()..."</info>.(<c
117c0 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 omment>"...$package->getPrettyVe
117e0 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 70 72 6f 63 rsion()..."</comment>)");..$proc
11800 65 73 73 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 55 72 6c 28 24 75 72 6c 29 essUrl.=.$this->processUrl($url)
11820 3b 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 66 73 2d 3e 63 6f 70 79 28 24 70 61 63 6b 61 ;..try.{.$this->rfs->copy($packa
11840 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 72 6f 63 65 73 73 55 72 6c 2c ge->getSourceUrl(),.$processUrl,
11860 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 .$fileName);..if.(!file_exists($
11880 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 fileName)).{.throw.new.\Unexpect
118a0 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f edValueException($url.'.could.no
118c0 74 20 62 65 20 73 61 76 65 64 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 2c 20 6d 61 6b t.be.saved.to.'.$fileName.',.mak
118e0 65 20 73 75 72 65 20 74 68 65 27 0a 2e 27 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 77 72 69 74 e.sure.the'..'.directory.is.writ
11900 61 62 6c 65 20 61 6e 64 20 79 6f 75 20 68 61 76 65 20 69 6e 74 65 72 6e 65 74 20 63 6f 6e 6e 65 able.and.you.have.internet.conne
11920 63 74 69 76 69 74 79 27 29 3b 0a 7d 0a 0a 24 63 68 65 63 6b 73 75 6d 20 3d 20 24 70 61 63 6b 61 ctivity');.}..$checksum.=.$packa
11940 67 65 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 69 66 20 28 24 ge->getDistSha1Checksum();.if.($
11960 63 68 65 63 6b 73 75 6d 20 26 26 20 68 61 73 68 5f 66 69 6c 65 28 27 73 68 61 31 27 2c 20 24 66 checksum.&&.hash_file('sha1',.$f
11980 69 6c 65 4e 61 6d 65 29 20 21 3d 3d 20 24 63 68 65 63 6b 73 75 6d 29 20 7b 0a 74 68 72 6f 77 20 ileName).!==.$checksum).{.throw.
119a0 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 54 new.\UnexpectedValueException('T
119c0 68 65 20 63 68 65 63 6b 73 75 6d 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 he.checksum.verification.of.the.
119e0 66 69 6c 65 20 66 61 69 6c 65 64 20 28 64 6f 77 6e 6c 6f 61 64 65 64 20 66 72 6f 6d 20 27 2e 24 file.failed.(downloaded.from.'.$
11a00 75 72 6c 2e 27 29 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 url.')');.}.}.catch.(\Exception.
11a20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 $e).{...$this->filesystem->remov
11a40 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d eDirectory($path);.throw.$e;.}.}
11a60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b .....public.function.update(Pack
11a80 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e ageInterface.$initial,.PackageIn
11aa0 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d terface.$target,.$path).{.$this-
11ac0 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d >remove($initial,.$path);.$this-
11ae0 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a >download($target,.$path);.}....
11b00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 .public.function.remove(PackageI
11b20 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 nterface.$package,.$path).{.$thi
11b40 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f s->io->write("..-.Removing.<info
11b60 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e >"...$package->getName()..."</in
11b80 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 fo>.(<comment>"...$package->getP
11ba0 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b rettyVersion()..."</comment>)");
11bc0 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 .if.(!$this->filesystem->removeD
11be0 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 irectory($path)).{.throw.new.\Ru
11c00 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 ntimeException('Could.not.comple
11c20 74 65 6c 79 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e tely.delete.'.$path.',.aborting.
11c40 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ');.}.}.........protected.functi
11c60 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 on.getFileName(PackageInterface.
11c80 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 2e $package,.$path).{.return.$path.
11ca0 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 '/'.pathinfo($package->getDistUr
11cc0 6c 28 29 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a l(),.PATHINFO_BASENAME);.}......
11ce0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 ....protected.function.processUr
11d00 6c 28 24 75 72 6c 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 l($url).{.if.(!extension_loaded(
11d20 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 'openssl').&&.0.===.strpos($url,
11d40 20 27 68 74 74 70 73 3a 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 .'https:')).{.throw.new.\Runtime
11d60 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f Exception('You.must.enable.the.o
11d80 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 66 69 6c penssl.extension.to.download.fil
11da0 65 73 20 76 69 61 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a es.via.https');.}..return.$url;.
11dc0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
11de0 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 omposer\Downloader;..use.Compose
11e00 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 r\Package\PackageInterface;.use.
11e20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 0a 0a Composer\Util\Svn.as.SvnUtil;...
11e40 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 ...class.SvnDownloader.extends.V
11e60 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f csDownloader.{....public.functio
11e80 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 n.doDownload(PackageInterface.$p
11ea0 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 ackage,.$path).{.$url.=.$package
11ec0 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 ->getSourceUrl();.$ref.=.$packag
11ee0 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 24 74 68 69 73 2d e->getSourceReference();..$this-
11f00 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 >io->write("....Checking.out.".$
11f20 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a package->getSourceReference());.
11f40 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e 20 63 6f 22 2c 20 73 $this->execute($url,."svn.co",.s
11f60 70 72 69 6e 74 66 28 22 25 73 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 6e 75 6c printf("%s/%s",.$url,.$ref),.nul
11f80 6c 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e l,.$path);.}.....public.function
11fa0 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 .doUpdate(PackageInterface.$init
11fc0 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 ial,.PackageInterface.$target,.$
11fe0 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 path).{.$url.=.$target->getSourc
12000 65 55 72 6c 28 29 3b 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 eUrl();.$ref.=.$target->getSourc
12020 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 eReference();..$this->io->write(
12040 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 20 2e 20 24 72 65 66 29 3b 0a 24 74 68 "....Checking.out."...$ref);.$th
12060 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e 20 73 77 69 74 63 68 22 2c 20 is->execute($url,."svn.switch",.
12080 73 70 72 69 6e 74 66 28 22 25 73 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 24 70 sprintf("%s/%s",.$url,.$ref),.$p
120a0 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 ath);.}.....protected.function.e
120c0 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 74 nforceCleanDirectory($path).{.$t
120e0 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 73 74 61 74 75 his->process->execute('svn.statu
12100 73 20 2d 2d 69 67 6e 6f 72 65 2d 65 78 74 65 72 6e 61 6c 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 s.--ignore-externals',.$output,.
12120 24 70 61 74 68 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 58 20 $path);.if.(preg_match('{^.*[^X.
12140 5d 20 2b 7d 6d 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 ].+}m',.$output)).{.throw.new.\R
12160 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 untimeException('Source.director
12180 79 20 27 20 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d 6d 69 74 74 65 64 20 y.'...$path...'.has.uncommitted.
121a0 63 68 61 6e 67 65 73 3a 27 2e 22 5c 6e 5c 6e 22 2e 72 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 changes:'."\n\n".rtrim($output))
121c0 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ;.}.}..............protected.fun
121e0 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 62 61 73 65 55 72 6c 2c 20 24 63 6f 6d 6d 61 6e 64 ction.execute($baseUrl,.$command
12200 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c ,.$url,.$cwd.=.null,.$path.=.nul
12220 6c 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 53 76 6e 55 74 69 6c 28 24 62 61 73 65 55 72 l).{.$util.=.new.SvnUtil($baseUr
12240 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 75 74 69 l,.$this->io);.try.{.return.$uti
12260 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c l->execute($command,.$url,.$cwd,
12280 20 24 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 3b .$path,.$this->io->isVerbose());
122a0 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 .}.catch.(\RuntimeException.$e).
122c0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 {.throw.new.\RuntimeException(.'
122e0 50 61 63 6b 61 67 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 2c Package.could.not.be.downloaded,
12300 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 .'.$e->getMessage().);.}.}.}.<?p
12320 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
12340 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c \Downloader;..use.Composer\Util\
12360 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 Filesystem;...........class.Pear
12380 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 PackageExtractor.{.private.stati
123a0 63 20 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 c.$rolesWithoutPackageNamePrefix
123c0 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 73 63 72 69 70 74 27 2c 20 27 77 77 77 27 29 .=.array('php',.'script',.'www')
123e0 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 61 74 65 20 ;..private.$filesystem;.private.
12400 24 66 69 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 $file;..public.function.__constr
12420 75 63 74 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 29 uct($file).{.if.(!is_file($file)
12440 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 ).{.throw.new.\UnexpectedValueEx
12460 63 65 70 74 69 6f 6e 28 27 50 45 41 52 20 70 61 63 6b 61 67 65 20 66 69 6c 65 20 69 73 20 6e 6f ception('PEAR.package.file.is.no
12480 74 20 66 6f 75 6e 64 20 61 74 20 27 2e 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 t.found.at.'.$file);.}..$this->f
124a0 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 ilesystem.=.new.Filesystem();.$t
124c0 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a his->file.=.$file;.}............
124e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 54 6f 28 24 74 61 72 67 65 public.function.extractTo($targe
12500 74 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e t,.array.$roles.=.array('php'.=>
12520 20 27 2f 27 2c 20 27 73 63 72 69 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 29 2c 20 24 76 61 72 73 .'/',.'script'.=>.'/bin'),.$vars
12540 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 20 3d 20 .=.array()).{.$extractionPath.=.
12560 24 74 61 72 67 65 74 2e 27 2f 74 61 72 62 61 6c 6c 27 3b 0a 0a 74 72 79 20 7b 0a 24 61 72 63 68 $target.'/tarball';..try.{.$arch
12580 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 74 68 69 73 2d 3e 66 69 6c 65 29 ive.=.new.\PharData($this->file)
125a0 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 65 78 74 72 61 63 74 69 6f ;.$archive->extractTo($extractio
125c0 6e 50 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 21 69 73 5f 66 69 6c nPath,.null,.true);..if.(!is_fil
125e0 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 e($this->combine($extractionPath
12600 2c 20 27 2f 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ,.'/package.xml'))).{.throw.new.
12620 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 45 41 52 20 \RuntimeException('Invalid.PEAR.
12640 70 61 63 6b 61 67 65 2e 20 49 74 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 70 61 63 6b 61 67 65 package..It.must.contain.package
12660 2e 78 6d 6c 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 66 69 6c 65 43 6f 70 79 41 63 74 69 6f 6e .xml.file.');.}..$fileCopyAction
12680 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 70 79 41 63 74 69 6f 6e 73 28 24 65 78 74 s.=.$this->buildCopyActions($ext
126a0 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 ractionPath,.$roles,.$vars);.$th
126c0 69 73 2d 3e 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 43 6f 70 79 41 63 74 69 6f 6e 73 2c 20 is->copyFiles($fileCopyActions,.
126e0 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 $extractionPath,.$target,.$roles
12700 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d ,.$vars);.$this->filesystem->rem
12720 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 29 3b 0a 7d oveDirectory($extractionPath);.}
12740 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b .catch.(\Exception.$exception).{
12760 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 .throw.new.\UnexpectedValueExcep
12780 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 74 72 61 63 74 20 tion(sprintf('Failed.to.extract.
127a0 50 45 41 52 20 70 61 63 6b 61 67 65 20 25 73 20 74 6f 20 25 73 2e 20 52 65 61 73 6f 6e 3a 20 25 PEAR.package.%s.to.%s..Reason:.%
127c0 73 27 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 24 74 61 72 67 65 74 2c 20 24 65 78 63 65 70 s',.$this->file,.$target,.$excep
127e0 74 69 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 2c 20 30 2c 20 24 65 78 63 65 70 74 69 tion->getMessage()),.0,.$excepti
12800 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 on);.}.}...........private.funct
12820 69 6f 6e 20 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 2c 20 24 ion.copyFiles($files,.$source,.$
12840 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 target,.$roles,.$vars).{.foreach
12860 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 24 74 68 .($files.as.$file).{.$from.=.$th
12880 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 66 69 6c 65 5b 27 66 72 6f 6d is->combine($source,.$file['from
128a0 27 5d 29 3b 0a 24 74 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 61 72 67 65 ']);.$to.=.$this->combine($targe
128c0 74 2c 20 24 72 6f 6c 65 73 5b 24 66 69 6c 65 5b 27 72 6f 6c 65 27 5d 5d 29 3b 0a 24 74 6f 20 3d t,.$roles[$file['role']]);.$to.=
128e0 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 6f 2c 20 24 66 69 6c 65 5b 27 74 6f 27 5d .$this->combine($to,.$file['to']
12900 29 3b 0a 24 74 61 73 6b 73 20 3d 20 24 66 69 6c 65 5b 27 74 61 73 6b 73 27 5d 3b 0a 24 74 68 69 );.$tasks.=.$file['tasks'];.$thi
12920 73 2d 3e 63 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c 20 s->copyFile($from,.$to,.$tasks,.
12940 24 76 61 72 73 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f $vars);.}.}..private.function.co
12960 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c 20 24 76 61 72 73 pyFile($from,.$to,.$tasks,.$vars
12980 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 72 6f 6d 29 29 20 7b 0a 74 68 72 6f 77 ).{.if.(!is_file($from)).{.throw
129a0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 .new.\RuntimeException('Invalid.
129c0 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 70 61 63 6b 61 67 65 2e 78 6d 6c 20 64 65 66 69 6e 65 PEAR.package..package.xml.define
129e0 73 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 6e 6f 74 20 6c 6f 63 61 74 65 64 20 69 6e 73 69 64 s.file.that.is.not.located.insid
12a00 65 20 74 61 72 62 61 6c 6c 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 e.tarball.');.}..$this->filesyst
12a20 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d em->ensureDirectoryExists(dirnam
12a40 65 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 63 6f 75 6e 74 28 24 74 61 73 6b 73 29 e($to));..if.(0.==.count($tasks)
12a60 29 20 7b 0a 24 63 6f 70 69 65 64 20 3d 20 63 6f 70 79 28 24 66 72 6f 6d 2c 20 24 74 6f 29 3b 0a ).{.$copied.=.copy($from,.$to);.
12a80 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e }.else.{.$content.=.file_get_con
12aa0 74 65 6e 74 73 28 24 66 72 6f 6d 29 3b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 20 3d 20 61 72 tents($from);.$replacements.=.ar
12ac0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 73 6b 73 20 61 73 20 24 74 61 73 6b 29 ray();.foreach.($tasks.as.$task)
12ae0 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 24 74 61 73 6b 5b 27 66 72 6f 6d 27 5d 3b 0a 24 76 61 .{.$pattern.=.$task['from'];.$va
12b00 72 4e 61 6d 65 20 3d 20 24 74 61 73 6b 5b 27 74 6f 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 rName.=.$task['to'];.if.(isset($
12b20 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 29 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 vars[$varName])).{.$replacements
12b40 5b 24 70 61 74 74 65 72 6e 5d 20 3d 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 3b 0a 7d 0a [$pattern].=.$vars[$varName];.}.
12b60 7d 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 73 74 72 74 72 28 24 63 6f 6e 74 65 6e 74 2c 20 24 72 65 }.$content.=.strtr($content,.$re
12b80 70 6c 61 63 65 6d 65 6e 74 73 29 3b 0a 0a 24 63 6f 70 69 65 64 20 3d 20 66 69 6c 65 5f 70 75 74 placements);..$copied.=.file_put
12ba0 5f 63 6f 6e 74 65 6e 74 73 28 24 74 6f 2c 20 24 63 6f 6e 74 65 6e 74 29 3b 0a 7d 0a 0a 69 66 20 _contents($to,.$content);.}..if.
12bc0 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 70 69 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 (false.===.$copied).{.throw.new.
12be0 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 \RuntimeException(sprintf('Faile
12c00 64 20 74 6f 20 63 6f 70 79 20 25 73 20 74 6f 20 25 73 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 d.to.copy.%s.to.%s',.$from,.$to)
12c20 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f );.}.}...........private.functio
12c40 6e 20 62 75 69 6c 64 43 6f 70 79 41 63 74 69 6f 6e 73 28 24 73 6f 75 72 63 65 2c 20 61 72 72 61 n.buildCopyActions($source,.arra
12c60 79 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 73 y.$roles,.$vars).{..$package.=.s
12c80 69 6d 70 6c 65 78 6d 6c 5f 6c 6f 61 64 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e implexml_load_file($this->combin
12ca0 65 28 24 73 6f 75 72 63 65 2c 20 27 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 3b 0a 69 66 28 66 e($source,.'package.xml'));.if(f
12cc0 61 6c 73 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 alse.===.$package).throw.new.\Ru
12ce0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 ntimeException('Package.definiti
12d00 6f 6e 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 29 3b 0a 0a 24 70 61 63 6b 61 on.file.is.not.valid.');..$packa
12d20 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 geSchemaVersion.=.$package['vers
12d40 69 6f 6e 27 5d 3b 0a 69 66 20 28 27 31 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 ion'];.if.('1.0'.==.$packageSche
12d60 6d 61 56 65 72 73 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 70 61 63 6b 61 67 maVersion).{.$children.=.$packag
12d80 65 2d 3e 72 65 6c 65 61 73 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 e->release->filelist->children()
12da0 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 ;.$packageName.=.(string).$packa
12dc0 67 65 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 ge->name;.$packageVersion.=.(str
12de0 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 65 2d 3e 76 65 72 73 69 6f 6e 3b ing).$package->release->version;
12e00 0a 24 73 6f 75 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 .$sourceDir.=.$packageName...'-'
12e20 20 2e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 ...$packageVersion;.$result.=.$t
12e40 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e his->buildSourceList10($children
12e60 2c 20 24 72 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 ,.$roles,.$sourceDir,.'',.null,.
12e80 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 32 2e 30 27 20 3d $packageName);.}.elseif.('2.0'.=
12ea0 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 20 7c 7c 20 27 32 2e 31 27 =.$packageSchemaVersion.||.'2.1'
12ec0 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 29 20 7b 0a 24 63 68 .==.$packageSchemaVersion).{.$ch
12ee0 69 6c 64 72 65 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 63 6f 6e 74 65 6e 74 73 2d 3e 63 68 69 ildren.=.$package->contents->chi
12f00 6c 64 72 65 6e 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 ldren();.$packageName.=.(string)
12f20 20 24 70 61 63 6b 61 67 65 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e .$package->name;.$packageVersion
12f40 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 76 65 72 73 69 6f 6e 2d 3e 72 .=.(string).$package->version->r
12f60 65 6c 65 61 73 65 3b 0a 24 73 6f 75 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d elease;.$sourceDir.=.$packageNam
12f80 65 20 2e 20 27 2d 27 20 2e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 e...'-'...$packageVersion;.$resu
12fa0 6c 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 lt.=.$this->buildSourceList20($c
12fc0 68 69 6c 64 72 65 6e 2c 20 24 72 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c hildren,.$roles,.$sourceDir,.'',
12fe0 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 .null,.$packageName);..$namespac
13000 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 3b 0a es.=.$package->getNamespaces();.
13020 24 70 61 63 6b 61 67 65 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 $package->registerXPathNamespace
13040 28 27 6e 73 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 5b 27 27 5d 29 3b 0a 24 72 65 6c 65 61 73 ('ns',.$namespaces['']);.$releas
13060 65 4e 6f 64 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 68 70 eNodes.=.$package->xpath('ns:php
13080 72 65 6c 65 61 73 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 79 52 65 6c 65 61 73 65 28 24 release');.$this->applyRelease($
130a0 72 65 73 75 6c 74 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 3b 0a 7d result,.$releaseNodes,.$vars);.}
130c0 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 .else.{.throw.new.\RuntimeExcept
130e0 69 6f 6e 28 27 55 6e 73 75 70 70 6f 72 74 65 64 20 73 63 68 65 6d 61 20 76 65 72 73 69 6f 6e 20 ion('Unsupported.schema.version.
13100 6f 66 20 70 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 2e 27 29 3b 0a 7d of.package.definition.file.');.}
13120 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e ..return.$result;.}..private.fun
13140 63 74 69 6f 6e 20 61 70 70 6c 79 52 65 6c 65 61 73 65 28 26 24 61 63 74 69 6f 6e 73 2c 20 24 72 ction.applyRelease(&$actions,.$r
13160 65 6c 65 61 73 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 eleaseNodes,.$vars).{.foreach.($
13180 72 65 6c 65 61 73 65 4e 6f 64 65 73 20 61 73 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 29 20 7b 0a releaseNodes.as.$releaseNode).{.
131a0 24 72 65 71 75 69 72 65 64 4f 73 20 3d 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 $requiredOs.=.$releaseNode->inst
131c0 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 allconditions.&&.$releaseNode->i
131e0 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 20 26 26 20 24 72 65 6c 65 61 73 65 nstallconditions->os.&&.$release
13200 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d Node->installconditions->os->nam
13220 65 20 3f 20 28 73 74 72 69 6e 67 29 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 e.?.(string).$releaseNode->insta
13240 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3a 20 27 27 3b 0a 69 66 20 llconditions->os->name.:.'';.if.
13260 28 24 72 65 71 75 69 72 65 64 4f 73 20 26 26 20 24 76 61 72 73 5b 27 6f 73 27 5d 20 21 3d 20 24 ($requiredOs.&&.$vars['os'].!=.$
13280 72 65 71 75 69 72 65 64 4f 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 requiredOs).{.continue;.}..if.($
132a0 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 29 20 7b 0a 66 6f 72 65 61 63 68 releaseNode->filelist).{.foreach
132c0 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 .($releaseNode->filelist->childr
132e0 65 6e 28 29 20 61 73 20 24 61 63 74 69 6f 6e 29 20 7b 0a 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 en().as.$action).{.if.('install'
13300 20 3d 3d 20 24 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 .==.$action->getName()).{.$name.
13320 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 24 61 73 20 =.(string).$action['name'];.$as.
13340 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 61 73 27 5d 3b 0a 69 66 20 28 69 73 =.(string).$action['as'];.if.(is
13360 73 65 74 28 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e 73 set($actions[$name])).{.$actions
13380 5b 24 6e 61 6d 65 5d 5b 27 74 6f 27 5d 20 3d 20 24 61 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 [$name]['to'].=.$as;.}.}.elseif.
133a0 28 27 69 67 6e 6f 72 65 27 20 3d 3d 20 24 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 ('ignore'.==.$action->getName())
133c0 20 7b 0a 24 6e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d .{.$name.=.(string).$action['nam
133e0 65 27 5d 3b 0a 75 6e 73 65 74 28 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 20 65 e'];.unset($actions[$name]);.}.e
13400 6c 73 65 20 7b 0a 0a 20 7d 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 lse.{...}.}.}.break;.}.}..privat
13420 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 e.function.buildSourceList10($ch
13440 69 6c 64 72 65 6e 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 20 3d 20 ildren,.$targetRoles,.$source.=.
13460 27 27 2c 20 24 74 61 72 67 65 74 20 3d 20 27 27 2c 20 24 72 6f 6c 65 20 3d 20 6e 75 6c 6c 2c 20 '',.$target.=.'',.$role.=.null,.
13480 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 $packageName).{.$result.=.array(
134a0 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 24 63 68 69 );....foreach.($children.as.$chi
134c0 6c 64 29 20 7b 0a 0a 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 ld).{..if.($child->getName().==.
134e0 27 64 69 72 27 29 20 7b 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 'dir').{.$dirSource.=.$this->com
13500 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e bine($source,.(string).$child['n
13520 61 6d 65 27 5d 29 3b 0a 24 64 69 72 54 61 72 67 65 74 20 3d 20 24 63 68 69 6c 64 5b 27 62 61 73 ame']);.$dirTarget.=.$child['bas
13540 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 3b 0a 24 64 69 72 52 einstalldir'].?.:.$target;.$dirR
13560 6f 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b 0a ole.=.$child['role'].?.:.$role;.
13580 24 64 69 72 46 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 $dirFiles.=.$this->buildSourceLi
135a0 73 74 31 30 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 29 2c 20 24 74 61 72 67 65 74 st10($child->children(),.$target
135c0 52 6f 6c 65 73 2c 20 24 64 69 72 53 6f 75 72 63 65 2c 20 24 64 69 72 54 61 72 67 65 74 2c 20 24 Roles,.$dirSource,.$dirTarget,.$
135e0 64 69 72 52 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 dirRole,.$packageName);.$result.
13600 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 69 72 46 69 6c 65 73 =.array_merge($result,.$dirFiles
13620 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d );.}.elseif.($child->getName().=
13640 3d 20 27 66 69 6c 65 27 29 20 7b 0a 24 66 69 6c 65 52 6f 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 =.'file').{.$fileRole.=.(string)
13660 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b 0a 69 66 20 28 69 .$child['role'].?.:.$role;.if.(i
13680 73 73 65 74 28 24 74 61 72 67 65 74 52 6f 6c 65 73 5b 24 66 69 6c 65 52 6f 6c 65 5d 29 29 20 7b sset($targetRoles[$fileRole])).{
136a0 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 6e .$fileName.=.(string).($child['n
136c0 61 6d 65 27 5d 20 3f 20 3a 20 24 63 68 69 6c 64 5b 30 5d 29 3b 20 0a 20 24 66 69 6c 65 53 6f 75 ame'].?.:.$child[0]);...$fileSou
136e0 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 66 rce.=.$this->combine($source,.$f
13700 69 6c 65 4e 61 6d 65 29 3b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 2d 3e 63 ileName);.$fileTarget.=.$this->c
13720 6f 6d 62 69 6e 65 28 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 ombine((string).$child['baseinst
13740 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 2c 20 24 66 69 6c 65 4e 61 6d 65 29 alldir'].?.:.$target,.$fileName)
13760 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a ;.if.(!in_array($fileRole,.self:
13780 3a 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 :$rolesWithoutPackageNamePrefix)
137a0 29 20 7b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e ).{.$fileTarget.=.$packageName..
137c0 20 27 2f 27 20 2e 20 24 66 69 6c 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 .'/'...$fileTarget;.}.$result[(s
137e0 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 tring).$child['name']].=.array('
13800 66 72 6f 6d 27 20 3d 3e 20 24 66 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 from'.=>.$fileSource,.'to'.=>.$f
13820 69 6c 65 54 61 72 67 65 74 2c 20 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 ileTarget,.'role'.=>.$fileRole,.
13840 27 74 61 73 6b 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 'tasks'.=>.array());.}.}.}..retu
13860 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 rn.$result;.}..private.function.
13880 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 74 61 buildSourceList20($children,.$ta
138a0 72 67 65 74 52 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 20 3d 20 27 27 2c 20 24 74 61 72 67 65 74 rgetRoles,.$source.=.'',.$target
138c0 20 3d 20 27 27 2c 20 24 72 6f 6c 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d .=.'',.$role.=.null,.$packageNam
138e0 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 e).{.$result.=.array();....forea
13900 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a 0a 69 66 20 28 ch.($children.as.$child).{..if.(
13920 27 64 69 72 27 20 3d 3d 20 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 64 'dir'.==.$child->getName()).{.$d
13940 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 irSource.=.$this->combine($sourc
13960 65 2c 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 64 69 72 54 61 72 67 65 74 20 3d e,.$child['name']);.$dirTarget.=
13980 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 .$child['baseinstalldir'].?.:.$t
139a0 61 72 67 65 74 3b 0a 24 64 69 72 52 6f 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d arget;.$dirRole.=.$child['role']
139c0 20 3f 20 3a 20 24 72 6f 6c 65 3b 0a 24 64 69 72 46 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 .?.:.$role;.$dirFiles.=.$this->b
139e0 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 uildSourceList20($child->childre
13a00 6e 28 29 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 64 69 72 53 6f 75 72 63 65 2c 20 24 n(),.$targetRoles,.$dirSource,.$
13a20 64 69 72 54 61 72 67 65 74 2c 20 24 64 69 72 52 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d dirTarget,.$dirRole,.$packageNam
13a40 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c e);.$result.=.array_merge($resul
13a60 74 2c 20 24 64 69 72 46 69 6c 65 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 66 69 6c 65 27 20 t,.$dirFiles);.}.elseif.('file'.
13a80 3d 3d 20 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 66 69 6c 65 52 6f 6c ==.$child->getName()).{.$fileRol
13aa0 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 e.=.(string).$child['role'].?.:.
13ac0 24 72 6f 6c 65 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 61 72 67 65 74 52 6f 6c 65 73 5b 24 66 $role;.if.(isset($targetRoles[$f
13ae0 69 6c 65 52 6f 6c 65 5d 29 29 20 7b 0a 24 66 69 6c 65 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 ileRole])).{.$fileSource.=.$this
13b00 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 ->combine($source,.(string).$chi
13b20 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 ld['name']);.$fileTarget.=.$this
13b40 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 62 61 73 65 ->combine((string).($child['base
13b60 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 29 2c 20 28 73 74 72 69 installdir'].?.:.$target),.(stri
13b80 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 73 6b 73 20 ng).$child['name']);.$fileTasks.
13ba0 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c =.array();.foreach.($child->chil
13bc0 64 72 65 6e 28 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 74 61 dren('http://pear.php.net/dtd/ta
13be0 73 6b 73 2d 31 2e 30 27 29 20 61 73 20 24 74 61 73 6b 4e 6f 64 65 29 20 7b 0a 69 66 20 28 27 72 sks-1.0').as.$taskNode).{.if.('r
13c00 65 70 6c 61 63 65 27 20 3d 3d 20 24 74 61 73 6b 4e 6f 64 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 eplace'.==.$taskNode->getName())
13c20 20 7b 0a 24 66 69 6c 65 54 61 73 6b 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d .{.$fileTasks[].=.array('from'.=
13c40 3e 20 28 73 74 72 69 6e 67 29 20 24 74 61 73 6b 4e 6f 64 65 2d 3e 61 74 74 72 69 62 75 74 65 73 >.(string).$taskNode->attributes
13c60 28 29 2d 3e 66 72 6f 6d 2c 20 27 74 6f 27 20 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 61 73 6b ()->from,.'to'.=>.(string).$task
13c80 4e 6f 64 65 2d 3e 61 74 74 72 69 62 75 74 65 73 28 29 2d 3e 74 6f 29 3b 0a 7d 0a 7d 0a 69 66 20 Node->attributes()->to);.}.}.if.
13ca0 28 21 69 6e 5f 61 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a 3a 24 72 6f 6c (!in_array($fileRole,.self::$rol
13cc0 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 29 20 7b 0a 24 esWithoutPackageNamePrefix)).{.$
13ce0 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2f 27 20 fileTarget.=.$packageName...'/'.
13d00 2e 20 24 66 69 6c 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 74 72 69 6e 67 ..$fileTarget;.}.$result[(string
13d20 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 ).$child['name']].=.array('from'
13d40 20 3d 3e 20 24 66 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 69 6c 65 54 61 .=>.$fileSource,.'to'.=>.$fileTa
13d60 72 67 65 74 2c 20 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 27 74 61 73 6b rget,.'role'.=>.$fileRole,.'task
13d80 73 27 20 3d 3e 20 24 66 69 6c 65 54 61 73 6b 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e s'.=>.$fileTasks);.}.}.}..return
13da0 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f .$result;.}..private.function.co
13dc0 6d 62 69 6e 65 28 24 6c 65 66 74 2c 20 24 72 69 67 68 74 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 mbine($left,.$right).{.return.rt
13de0 72 69 6d 28 24 6c 65 66 74 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 72 rim($left,.'/')...'/'...ltrim($r
13e00 69 67 68 74 2c 20 27 2f 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ight,.'/');.}.}.<?php...........
13e20 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a .namespace.Composer\Downloader;.
13e40 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 .use.Composer\Package\PackageInt
13e60 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c erface;.use.Composer\Downloader\
13e80 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 DownloaderInterface;.use.Compose
13ea0 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 r\Util\Filesystem;.......class.D
13ec0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 ownloadManager.{.private.$prefer
13ee0 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 Source.=.false;.private.$filesys
13f00 74 65 6d 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 65 72 73 20 3d 20 61 72 72 61 tem;.private.$downloaders.=.arra
13f20 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f y();........public.function.__co
13f40 6e 73 74 72 75 63 74 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 46 nstruct($preferSource.=.false,.F
13f60 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ilesystem.$filesystem.=.null).{.
13f80 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 70 72 65 66 65 72 53 6f 75 $this->preferSource.=.$preferSou
13fa0 72 63 65 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 rce;.$this->filesystem.=.$filesy
13fc0 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 7d 0a 0a 0a 0a 0a stem.?:.new.Filesystem();.}.....
13fe0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 ..public.function.setPreferSourc
14000 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 e($preferSource).{.$this->prefer
14020 53 6f 75 72 63 65 20 3d 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 Source.=.$preferSource;..return.
14040 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $this;.}........public.function.
14060 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 70 65 2c 20 44 6f 77 6e 6c 6f 61 64 65 72 49 setDownloader($type,.DownloaderI
14080 6e 74 65 72 66 61 63 65 20 24 64 6f 77 6e 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 79 70 65 20 3d 20 nterface.$downloader).{.$type.=.
140a0 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f strtolower($type);.$this->downlo
140c0 61 64 65 72 73 5b 24 74 79 70 65 5d 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 aders[$type].=.$downloader;..ret
140e0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 urn.$this;.}...........public.fu
14100 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 70 65 29 0a 7b 0a 24 74 nction.getDownloader($type).{.$t
14120 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 69 66 20 28 21 69 73 ype.=.strtolower($type);.if.(!is
14140 73 65 74 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 29 29 20 set($this->downloaders[$type])).
14160 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
14180 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 64 6f 77 6e 6c 6f 61 64 65 72 20 74 79 70 65 3a 20 ption('Unknown.downloader.type:.
141a0 27 2e 24 74 79 70 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c '.$type);.}..return.$this->downl
141c0 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 oaders[$type];.}.............pub
141e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 lic.function.getDownloaderForIns
14200 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 talledPackage(PackageInterface.$
14220 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d package).{.$installationSource.=
14240 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 .$package->getInstallationSource
14260 28 29 3b 0a 0a 69 66 20 28 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f ();..if.('dist'.===.$installatio
14280 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e nSource).{.$downloader.=.$this->
142a0 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 getDownloader($package->getDistT
142c0 79 70 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 ype());.}.elseif.('source'.===.$
142e0 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 installationSource).{.$downloade
14300 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 70 61 63 6b 61 67 r.=.$this->getDownloader($packag
14320 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 e->getSourceType());.}.else.{.th
14340 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
14360 6e 28 0a 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 73 65 65 6d 73 20 6e n(.'Package.'.$package.'.seems.n
14380 6f 74 20 62 65 65 6e 20 69 6e 73 74 61 6c 6c 65 64 20 70 72 6f 70 65 72 6c 79 27 0a 29 3b 0a 7d ot.been.installed.properly'.);.}
143a0 0a 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 21 3d 3d 20 24 64 ..if.($installationSource.!==.$d
143c0 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 ownloader->getInstallationSource
143e0 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 ()).{.throw.new.\LogicException(
14400 73 70 72 69 6e 74 66 28 0a 27 44 6f 77 6e 6c 6f 61 64 65 72 20 22 25 73 22 20 69 73 20 61 20 25 sprintf(.'Downloader."%s".is.a.%
14420 73 20 74 79 70 65 20 64 6f 77 6e 6c 6f 61 64 65 72 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 s.type.downloader.and.can.not.be
14440 20 75 73 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 25 73 27 2c 0a 67 65 74 5f 63 6c 61 73 73 .used.to.download.%s',.get_class
14460 28 24 64 6f 77 6e 6c 6f 61 64 65 72 29 2c 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 49 ($downloader),.$downloader->getI
14480 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 2c 20 24 69 6e 73 74 61 6c 6c 61 74 69 nstallationSource(),.$installati
144a0 6f 6e 53 6f 75 72 63 65 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 77 6e 6c 6f 61 64 onSource.));.}..return.$download
144c0 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 er;.}...........public.function.
144e0 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 download(PackageInterface.$packa
14500 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 ge,.$targetDir,.$preferSource.=.
14520 6e 75 6c 6c 29 0a 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 6e 75 6c 6c 20 21 3d 3d null).{.$preferSource.=.null.!==
14540 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3f 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3a .$preferSource.?.$preferSource.:
14560 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 24 73 6f 75 72 63 65 54 79 70 .$this->preferSource;.$sourceTyp
14580 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 e.=.$package->getSourceType();.$
145a0 64 69 73 74 54 79 70 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 distType.=.$package->getDistType
145c0 28 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 21 ();..if.(!$package->isDev().&&.!
145e0 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 26 26 20 24 73 6f 75 72 63 65 54 79 70 65 29 20 26 ($preferSource.&&.$sourceType).&
14600 26 20 24 64 69 73 74 54 79 70 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 73 74 &.$distType).{.$package->setInst
14620 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 27 64 69 73 74 27 29 3b 0a 7d 20 65 6c 73 65 69 66 allationSource('dist');.}.elseif
14640 20 28 24 73 6f 75 72 63 65 54 79 70 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e .($sourceType).{.$package->setIn
14660 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 27 73 6f 75 72 63 65 27 29 3b 0a 7d 20 65 6c stallationSource('source');.}.el
14680 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 74 68 72 6f 77 seif.($package->isDev()).{.throw
146a0 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 .new.\InvalidArgumentException('
146c0 44 65 76 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 6d 75 73 74 20 68 61 Dev.package.'.$package.'.must.ha
146e0 76 65 20 61 20 73 6f 75 72 63 65 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 20 65 6c 73 65 20 ve.a.source.specified');.}.else.
14700 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
14720 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 6d 75 73 74 ption('Package.'.$package.'.must
14740 20 68 61 76 65 20 61 20 73 6f 75 72 63 65 20 6f 72 20 64 69 73 74 20 73 70 65 63 69 66 69 65 64 .have.a.source.or.dist.specified
14760 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 ');.}..$this->filesystem->ensure
14780 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 24 64 DirectoryExists($targetDir);..$d
147a0 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 ownloader.=.$this->getDownloader
147c0 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 ForInstalledPackage($package);.$
147e0 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 downloader->download($package,.$
14800 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 targetDir);.}...........public.f
14820 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 unction.update(PackageInterface.
14840 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 $initial,.PackageInterface.$targ
14860 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 et,.$targetDir).{.$downloader.=.
14880 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 $this->getDownloaderForInstalled
148a0 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e Package($initial);.$installation
148c0 53 6f 75 72 63 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 Source.=.$initial->getInstallati
148e0 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 20 28 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 onSource();..if.('dist'.===.$ins
14900 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 tallationSource).{.$initialType.
14920 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 24 74 61 72 67 =.$initial->getDistType();.$targ
14940 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b etType.=.$target->getDistType();
14960 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 .}.else.{.$initialType.=.$initia
14980 6c 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 l->getSourceType();.$targetType.
149a0 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a =.$target->getSourceType();.}...
149c0 20 69 66 20 28 24 74 61 72 67 65 74 2d 3e 69 73 44 65 76 28 29 20 26 26 20 27 64 69 73 74 27 20 .if.($target->isDev().&&.'dist'.
149e0 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e ===.$installationSource).{.$down
14a00 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 loader->remove($initial,.$target
14a20 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 Dir);.$this->download($target,.$
14a40 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 targetDir);..return;.}..if.($ini
14a60 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 74 61 72 tialType.===.$targetType).{.$tar
14a80 67 65 74 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 69 6e 73 74 get->setInstallationSource($inst
14aa0 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 75 70 allationSource);.$downloader->up
14ac0 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 date($initial,.$target,.$targetD
14ae0 69 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 ir);.}.else.{.$downloader->remov
14b00 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e e($initial,.$targetDir);.$this->
14b20 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 27 73 download($target,.$targetDir,.'s
14b40 6f 75 72 63 65 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b ource'.===.$installationSource);
14b60 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f .}.}........public.function.remo
14b80 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 ve(PackageInterface.$package,.$t
14ba0 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d argetDir).{.$downloader.=.$this-
14bc0 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 >getDownloaderForInstalledPackag
14be0 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 e($package);.$downloader->remove
14c00 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 ($package,.$targetDir);.}.}.<?ph
14c20 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
14c40 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 Downloader;..use.Composer\Packag
14c60 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 e\PackageInterface;........inter
14c80 66 61 63 65 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a face.DownloaderInterface.{......
14ca0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 public.function.getInstallationS
14cc0 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ource();........public.function.
14ce0 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 download(PackageInterface.$packa
14d00 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ge,.$path);.........public.funct
14d20 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 ion.update(PackageInterface.$ini
14d40 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 tial,.PackageInterface.$target,.
14d60 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 $path);........public.function.r
14d80 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c emove(PackageInterface.$package,
14da0 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 .$path);.}.<?php............name
14dc0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 space.Composer\Downloader;.....c
14de0 6c 61 73 73 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 lass.TransportException.extends.
14e00 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a \Exception.{.}.<?php............
14e20 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a namespace.Composer\Downloader;..
14e40 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 .....class.PharDownloader.extend
14e60 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 s.ArchiveDownloader.{....protect
14e80 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 ed.function.extract($file,.$path
14ea0 29 0a 7b 0a 0a 20 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 66 69 6c 65 ).{...$archive.=.new.\Phar($file
14ec0 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 2c 20 6e 75 );.$archive->extractTo($path,.nu
14ee0 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ll,.true);......}.}.<?php.......
14f00 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 .....namespace.Composer\Download
14f20 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 er;.......class.TarDownloader.ex
14f40 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f tends.ArchiveDownloader.{....pro
14f60 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 tected.function.extract($file,.$
14f80 70 61 74 68 29 0a 7b 0a 0a 20 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 path).{...$archive.=.new.\PharDa
14fa0 74 61 28 24 66 69 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 ta($file);.$archive->extractTo($
14fc0 70 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a path,.null,.true);.}.}.<?php....
14fe0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c ........namespace.Composer\Downl
15000 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 oader;..use.Composer\Package\Pac
15020 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 6f 77 6e 6c kageInterface;.....class.HgDownl
15040 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a oader.extends.VcsDownloader.{...
15060 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b .public.function.doDownload(Pack
15080 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a ageInterface.$package,.$path).{.
150a0 24 75 72 6c 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 63 6b 61 67 65 2d 3e $url.=.escapeshellarg($package->
150c0 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 29 3b 0a 24 72 65 66 20 3d 20 65 73 63 61 70 65 73 68 getSourceUrl());.$ref.=.escapesh
150e0 65 6c 6c 61 72 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 ellarg($package->getSourceRefere
15100 6e 63 65 28 29 29 3b 0a 24 70 61 74 68 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 nce());.$path.=.escapeshellarg($
15120 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 6c 6f path);.$this->io->write("....Clo
15140 6e 69 6e 67 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 ning.".$package->getSourceRefere
15160 6e 63 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 63 nce());.$command.=.sprintf('hg.c
15180 6c 6f 6e 65 20 25 73 20 25 73 20 26 26 20 63 64 20 25 32 24 73 20 26 26 20 68 67 20 75 70 20 25 lone.%s.%s.&&.cd.%2$s.&&.hg.up.%
151a0 73 27 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d s',.$url,.$path,.$ref);.if.(0.!=
151c0 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 =.$this->process->execute($comma
151e0 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 nd,.$ignoredOutput)).{.throw.new
15200 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 .\RuntimeException('Failed.to.ex
15220 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 ecute.'...$command..."\n\n"...$t
15240 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b his->process->getErrorOutput());
15260 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 .}.}.....public.function.doUpdat
15280 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 e(PackageInterface.$initial,.Pac
152a0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a kageInterface.$target,.$path).{.
152c0 24 75 72 6c 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 2d 3e 67 $url.=.escapeshellarg($target->g
152e0 65 74 53 6f 75 72 63 65 55 72 6c 28 29 29 3b 0a 24 72 65 66 20 3d 20 65 73 63 61 70 65 73 68 65 etSourceUrl());.$ref.=.escapeshe
15300 6c 6c 61 72 67 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 llarg($target->getSourceReferenc
15320 65 28 29 29 3b 0a 24 70 61 74 68 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 e());.$path.=.escapeshellarg($pa
15340 74 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 55 70 64 61 74 th);.$this->io->write("....Updat
15360 69 6e 67 20 74 6f 20 22 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 ing.to.".$target->getSourceRefer
15380 65 6e 63 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 63 64 20 ence());.$command.=.sprintf('cd.
153a0 25 73 20 26 26 20 68 67 20 70 75 6c 6c 20 25 73 20 26 26 20 68 67 20 75 70 20 25 73 27 2c 20 24 %s.&&.hg.pull.%s.&&.hg.up.%s',.$
153c0 70 61 74 68 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 path,.$url,.$ref);.if.(0.!==.$th
153e0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 is->process->execute($command,.$
15400 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e ignoredOutput)).{.throw.new.\Run
15420 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 timeException('Failed.to.execute
15440 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e .'...$command..."\n\n"...$this->
15460 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a process->getErrorOutput());.}.}.
15480 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c ....protected.function.enforceCl
154a0 65 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f eanDirectory($path).{.$this->pro
154c0 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 cess->execute(sprintf('cd.%s.&&.
154e0 68 67 20 73 74 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 29 2c 20 hg.st',.escapeshellarg($path)),.
15500 24 6f 75 74 70 75 74 29 3b 0a 69 66 20 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 $output);.if.(trim($output)).{.t
15520 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 hrow.new.\RuntimeException('Sour
15540 63 65 20 64 69 72 65 63 74 6f 72 79 20 27 20 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 ce.directory.'...$path...'.has.u
15560 6e 63 6f 6d 6d 69 74 74 65 64 20 63 68 61 6e 67 65 73 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 ncommitted.changes');.}.}.}.<?ph
15580 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
155a0 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 Downloader;..use.Composer\Packag
155c0 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 e\PackageInterface;.........abst
155e0 72 61 63 74 20 63 6c 61 73 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 ract.class.ArchiveDownloader.ext
15600 65 6e 64 73 20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 ends.FileDownloader.{....public.
15620 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 function.download(PackageInterfa
15640 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 64 6f ce.$package,.$path).{.parent::do
15660 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 24 66 69 6c 65 4e wnload($package,.$path);..$fileN
15680 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 ame.=.$this->getFileName($packag
156a0 65 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 e,.$path);.if.($this->io->isVerb
156c0 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 55 ose()).{.$this->io->write('....U
156e0 6e 70 61 63 6b 69 6e 67 20 61 72 63 68 69 76 65 27 29 3b 0a 7d 0a 74 72 79 20 7b 0a 24 74 68 69 npacking.archive');.}.try.{.$thi
15700 73 2d 3e 65 78 74 72 61 63 74 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 61 74 68 29 3b 0a 0a 69 s->extract($fileName,.$path);..i
15720 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 f.($this->io->isVerbose()).{.$th
15740 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 43 6c 65 61 6e 69 6e 67 20 75 70 27 29 is->io->write('....Cleaning.up')
15760 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 0a 0a 20 24 63 6f 6e 74 65 ;.}.unlink($fileName);....$conte
15780 6e 74 44 69 72 20 3d 20 67 6c 6f 62 28 24 70 61 74 68 20 2e 20 27 2f 2a 27 29 3b 0a 69 66 20 28 ntDir.=.glob($path...'/*');.if.(
157a0 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 29 20 7b 0a 24 63 6f 6e 1.===.count($contentDir)).{.$con
157c0 74 65 6e 74 44 69 72 20 3d 20 24 63 6f 6e 74 65 6e 74 44 69 72 5b 30 5d 3b 0a 0a 0a 20 0a 20 24 tentDir.=.$contentDir[0];......$
157e0 74 65 6d 70 6f 72 61 72 79 4e 61 6d 65 20 3d 20 6d 64 35 28 74 69 6d 65 28 29 2e 72 61 6e 64 28 temporaryName.=.md5(time().rand(
15800 29 29 3b 0a 72 65 6e 61 6d 65 28 24 63 6f 6e 74 65 6e 74 44 69 72 2c 20 24 74 65 6d 70 6f 72 61 ));.rename($contentDir,.$tempora
15820 72 79 4e 61 6d 65 29 3b 0a 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d 20 24 74 65 6d 70 6f 72 61 72 ryName);.$contentDir.=.$temporar
15840 79 4e 61 6d 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6d 65 72 67 65 28 67 6c 6f yName;..foreach.(array_merge(glo
15860 62 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 2e 20 27 2f 2e 2a 27 29 2c 20 67 6c 6f 62 28 24 63 6f b($contentDir...'/.*'),.glob($co
15880 6e 74 65 6e 74 44 69 72 20 2e 20 27 2f 2a 27 29 29 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 ntentDir...'/*')).as.$file).{.if
158a0 20 28 74 72 69 6d 28 62 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 29 2c 20 27 2e 27 29 29 20 7b 0a .(trim(basename($file),.'.')).{.
158c0 72 65 6e 61 6d 65 28 24 66 69 6c 65 2c 20 24 70 61 74 68 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 rename($file,.$path...'/'...base
158e0 6e 61 6d 65 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 7d 0a 72 6d 64 69 72 28 24 63 6f 6e 74 65 6e 74 name($file));.}.}.rmdir($content
15900 44 69 72 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 Dir);.}.}.catch.(\Exception.$e).
15920 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 {...$this->filesystem->removeDir
15940 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 ectory($path);.throw.$e;.}..$thi
15960 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 s->io->write('');.}.....protecte
15980 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e d.function.getFileName(PackageIn
159a0 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 terface.$package,.$path).{.retur
159c0 6e 20 72 74 72 69 6d 28 24 70 61 74 68 2e 27 2f 27 2e 6d 64 35 28 24 70 61 74 68 2e 73 70 6c 5f n.rtrim($path.'/'.md5($path.spl_
159e0 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 61 63 6b 61 67 65 29 29 2e 27 2e 27 2e 70 61 74 68 69 object_hash($package)).'.'.pathi
15a00 6e 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 41 54 48 nfo($package->getDistUrl(),.PATH
15a20 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 27 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f INFO_EXTENSION),.'.');.}.....pro
15a40 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 24 75 72 6c 29 tected.function.processUrl($url)
15a60 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 .{.if.(!extension_loaded('openss
15a80 6c 27 29 20 26 26 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 l').&&.(0.===.strpos($url,.'http
15aa0 73 3a 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 s:').||.0.===.strpos($url,.'http
15ac0 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d ://github.com'))).{...if.(preg_m
15ae0 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 67 69 74 68 75 62 2e 63 6f 6d 2f 5b 5e 2f atch('{^https?://(github.com/[^/
15b00 5d 2b 2f 5b 5e 2f 5d 2b 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c 6c 2f 5b 5e 2f 5d 2b 29 24 7d 69 ]+/[^/]+/(zip|tar)ball/[^/]+)$}i
15b20 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 ',.$url,.$match)).{.$url.=.'http
15b40 3a 2f 2f 6e 6f 64 65 6c 6f 61 64 2e 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 ://nodeload.'.$match[1];.}.else.
15b60 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 {.throw.new.\RuntimeException('Y
15b80 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e ou.must.enable.the.openssl.exten
15ba0 73 69 6f 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 66 69 6c 65 73 20 76 69 61 20 68 74 74 70 73 sion.to.download.files.via.https
15bc0 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ');.}.}..return.$url;.}.........
15be0 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 .abstract.protected.function.ext
15c00 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a ract($file,.$path);.}.<?php.....
15c20 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f .......namespace.Composer\Downlo
15c40 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 ader;..use.Composer\Util\Process
15c60 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 Executor;.use.Composer\IO\IOInte
15c80 72 66 61 63 65 3b 0a 75 73 65 20 5a 69 70 41 72 63 68 69 76 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 rface;.use.ZipArchive;.....class
15ca0 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f .ZipDownloader.extends.ArchiveDo
15cc0 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a wnloader.{.protected.$process;..
15ce0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e public.function.__construct(IOIn
15d00 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 terface.$io,.ProcessExecutor.$pr
15d20 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d ocess.=.null).{.$this->process.=
15d40 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 .$process.?:.new.ProcessExecutor
15d60 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 29 3b 0a 7d 0a 0a 70 ;.parent::__construct($io);.}..p
15d80 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c rotected.function.extract($file,
15da0 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 5a 69 70 .$path).{.if.(!class_exists('Zip
15dc0 41 72 63 68 69 76 65 27 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 27 59 6f 75 20 6e 65 65 64 20 Archive')).{.$error.=.'You.need.
15de0 74 68 65 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 20 65 6e 61 62 6c 65 64 20 74 6f 20 75 73 65 the.zip.extension.enabled.to.use
15e00 20 74 68 65 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 27 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 .the.ZipDownloader';....if.(!def
15e20 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 ined('PHP_WINDOWS_VERSION_BUILD'
15e40 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 75 6e 7a 69 70 20 27 2e 65 73 63 61 70 65 73 )).{.$command.=.'unzip.'.escapes
15e60 68 65 6c 6c 61 72 67 28 24 66 69 6c 65 29 2e 27 20 2d 64 20 27 2e 65 73 63 61 70 65 73 68 65 6c hellarg($file).'.-d.'.escapeshel
15e80 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 larg($path);.if.(0.===.$this->pr
15ea0 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 ocess->execute($command,.$ignore
15ec0 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 dOutput)).{.return;.}..$error.=.
15ee0 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 "Could.not.decompress.the.archiv
15f00 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 20 e,.enable.the.PHP.zip.extension.
15f20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 6e 7a 69 70 2e 5c 6e 22 2e 0a 27 46 61 69 6c 65 64 20 74 6f or.install.unzip.\n"..'Failed.to
15f40 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e .execute.'...$command..."\n\n"..
15f60 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 .$this->process->getErrorOutput(
15f80 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f );.}..throw.new.\RuntimeExceptio
15fa0 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 20 3d 20 6e 65 77 20 n($error);.}..$zipArchive.=.new.
15fc0 5a 69 70 41 72 63 68 69 76 65 28 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 28 24 72 65 ZipArchive();..if.(true.!==.($re
15fe0 74 76 61 6c 20 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 29 29 tval.=.$zipArchive->open($file))
16000 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 ).{.throw.new.\UnexpectedValueEx
16020 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 ception($this->getErrorMessage($
16040 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 2d retval,.$file));.}..$zipArchive-
16060 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 29 3b 0a 24 7a 69 70 41 72 63 68 69 76 65 2d 3e >extractTo($path);.$zipArchive->
16080 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e close();.}.........protected.fun
160a0 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 72 65 74 76 61 6c 2c 20 24 ction.getErrorMessage($retval,.$
160c0 66 69 6c 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 72 65 74 76 61 6c 29 20 7b 0a 63 61 73 65 20 file).{.switch.($retval).{.case.
160e0 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 45 58 49 53 54 53 3a 0a 72 65 74 75 72 6e 20 73 70 ZipArchive::ER_EXISTS:.return.sp
16100 72 69 6e 74 66 28 22 46 69 6c 65 20 27 25 73 27 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e rintf("File.'%s'.already.exists.
16120 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 49 ",.$file);.case.ZipArchive::ER_I
16140 4e 43 4f 4e 53 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 61 72 63 68 69 NCONS:.return.sprintf("Zip.archi
16160 76 65 20 27 25 73 27 20 69 73 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 2e 22 2c 20 24 66 69 6c 65 ve.'%s'.is.inconsistent.",.$file
16180 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 49 4e 56 41 4c 3a 0a 72 65 );.case.ZipArchive::ER_INVAL:.re
161a0 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 49 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e 74 20 28 turn.sprintf("Invalid.argument.(
161c0 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 %s)",.$file);.case.ZipArchive::E
161e0 52 5f 4d 45 4d 4f 52 59 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 4d 61 6c 6c 6f 63 R_MEMORY:.return.sprintf("Malloc
16200 20 66 61 69 6c 75 72 65 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 .failure.(%s)",.$file);.case.Zip
16220 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 45 4e 54 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 Archive::ER_NOENT:.return.sprint
16240 66 28 22 4e 6f 20 73 75 63 68 20 7a 69 70 20 66 69 6c 65 3a 20 27 25 73 27 22 2c 20 24 66 69 6c f("No.such.zip.file:.'%s'",.$fil
16260 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 5a 49 50 3a 0a 72 e);.case.ZipArchive::ER_NOZIP:.r
16280 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 73 20 6e 6f 74 20 61 20 7a 69 70 eturn.sprintf("'%s'.is.not.a.zip
162a0 20 61 72 63 68 69 76 65 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 .archive.",.$file);.case.ZipArch
162c0 69 76 65 3a 3a 45 52 5f 4f 50 45 4e 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 43 61 ive::ER_OPEN:.return.sprintf("Ca
162e0 6e 27 74 20 6f 70 65 6e 20 7a 69 70 20 66 69 6c 65 3a 20 25 73 22 2c 20 24 66 69 6c 65 29 3b 0a n't.open.zip.file:.%s",.$file);.
16300 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 52 45 41 44 3a 0a 72 65 74 75 72 6e case.ZipArchive::ER_READ:.return
16320 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 72 65 61 64 20 65 72 72 6f 72 20 28 25 73 29 22 2c 20 .sprintf("Zip.read.error.(%s)",.
16340 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 53 45 45 4b $file);.case.ZipArchive::ER_SEEK
16360 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 73 65 65 6b 20 65 72 72 6f 72 :.return.sprintf("Zip.seek.error
16380 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 .(%s)",.$file);.default:.return.
163a0 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 7a 69 70 sprintf("'%s'.is.not.a.valid.zip
163c0 20 61 72 63 68 69 76 65 2c 20 67 6f 74 20 65 72 72 6f 72 20 63 6f 64 65 3a 20 25 73 22 2c 20 24 .archive,.got.error.code:.%s",.$
163e0 66 69 6c 65 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a file,.$retval);.}.}.}.<?php.....
16400 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f .......namespace.Composer\Downlo
16420 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b ader;..use.Composer\Package\Pack
16440 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 6f 77 6e 6c ageInterface;.....class.GitDownl
16460 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a oader.extends.VcsDownloader.{...
16480 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b .public.function.doDownload(Pack
164a0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a ageInterface.$package,.$path).{.
164c0 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 $ref.=.$package->getSourceRefere
164e0 6e 63 65 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 63 6c 6f 6e 65 20 25 73 20 nce();.$command.=.'git.clone.%s.
16500 25 73 20 26 26 20 63 64 20 25 32 24 73 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 20 61 64 64 20 %s.&&.cd.%2$s.&&.git.remote.add.
16520 63 6f 6d 70 6f 73 65 72 20 25 31 24 73 20 26 26 20 67 69 74 20 66 65 74 63 68 20 63 6f 6d 70 6f composer.%1$s.&&.git.fetch.compo
16540 73 65 72 27 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 6c 6f 6e ser';.$this->io->write("....Clon
16560 69 6e 67 20 22 2e 24 72 65 66 29 3b 0a 0a 0a 20 70 75 74 65 6e 76 28 27 47 49 54 5f 41 53 4b 50 ing.".$ref);....putenv('GIT_ASKP
16580 41 53 53 3d 65 63 68 6f 27 29 3b 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 ASS=echo');.$commandCallable.=.f
165a0 75 6e 63 74 69 6f 6e 28 24 75 72 6c 29 20 75 73 65 20 28 24 72 65 66 2c 20 24 70 61 74 68 2c 20 unction($url).use.($ref,.$path,.
165c0 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d $command).{.return.sprintf($comm
165e0 61 6e 64 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 2c 20 65 73 63 61 70 and,.escapeshellarg($url),.escap
16600 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 eshellarg($path),.escapeshellarg
16620 28 24 72 65 66 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 ($ref));.};..$this->runCommand($
16640 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f commandCallable,.$package->getSo
16660 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 50 75 73 urceUrl(),.$path);.$this->setPus
16680 68 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 hUrl($package,.$path);..$this->u
166a0 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 2c 20 24 70 61 63 6b pdateToCommit($path,.$ref,.$pack
166c0 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 age->getPrettyVersion(),.$packag
166e0 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c e->getReleaseDate());.}.....publ
16700 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 ic.function.doUpdate(PackageInte
16720 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 rface.$initial,.PackageInterface
16740 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 .$target,.$path).{.$ref.=.$targe
16760 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 74 68 69 73 2d 3e t->getSourceReference();.$this->
16780 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 72 io->write("....Checking.out.".$r
167a0 65 66 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 63 64 20 25 73 20 26 26 20 67 69 74 20 72 65 ef);.$command.=.'cd.%s.&&.git.re
167c0 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 63 6f 6d 70 6f 73 65 72 20 25 73 20 26 26 20 67 69 74 20 mote.set-url.composer.%s.&&.git.
167e0 66 65 74 63 68 20 63 6f 6d 70 6f 73 65 72 20 26 26 20 67 69 74 20 66 65 74 63 68 20 2d 2d 74 61 fetch.composer.&&.git.fetch.--ta
16800 67 73 20 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d gs.composer';....$this->process-
16820 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 67 69 74 20 72 >execute(sprintf('cd.%s.&&.git.r
16840 65 6d 6f 74 65 20 2d 76 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 emote.-v',.escapeshellarg($path)
16860 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 ),.$output);.if.(preg_match('{^c
16880 6f 6d 70 6f 73 65 72 5c 73 2b 68 74 74 70 73 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 67 69 74 68 omposer\s+https://(.+):(.+)@gith
168a0 75 62 2e 63 6f 6d 2f 7d 69 6d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b ub.com/}im',.$output,.$match)).{
168c0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 .$this->io->setAuthorization('gi
168e0 74 68 75 62 2e 63 6f 6d 27 2c 20 24 6d 61 74 63 68 5b 31 5d 2c 20 24 6d 61 74 63 68 5b 32 5d 29 thub.com',.$match[1],.$match[2])
16900 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e ;.}..$commandCallable.=.function
16920 28 24 75 72 6c 29 20 75 73 65 20 28 24 72 65 66 2c 20 24 70 61 74 68 2c 20 24 63 6f 6d 6d 61 6e ($url).use.($ref,.$path,.$comman
16940 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2c 20 65 73 d).{.return.sprintf($command,.es
16960 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c capeshellarg($path),.escapeshell
16980 61 72 67 28 24 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 72 65 66 29 29 arg($url),.escapeshellarg($ref))
169a0 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 ;.};..$this->runCommand($command
169c0 43 61 6c 6c 61 62 6c 65 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 Callable,.$target->getSourceUrl(
169e0 29 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c ));.$this->updateToCommit($path,
16a00 20 24 72 65 66 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e .$ref,.$target->getPrettyVersion
16a20 28 29 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 3b 0a (),.$target->getReleaseDate());.
16a40 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 54 6f 43 6f }..protected.function.updateToCo
16a60 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 65 72 65 6e 63 65 2c 20 24 62 72 61 6e 63 68 2c mmit($path,.$reference,.$branch,
16a80 20 24 64 61 74 65 29 0a 7b 0a 24 74 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 63 68 65 63 6b .$date).{.$template.=.'git.check
16aa0 6f 75 74 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 31 24 73 27 out.%s.&&.git.reset.--hard.%1$s'
16ac0 3b 0a 0a 0a 20 24 67 69 74 52 65 66 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 69 66 20 28 21 ;....$gitRef.=.$reference;.if.(!
16ae0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 preg_match('{^[a-f0-9]{40}$}',.$
16b00 72 65 66 65 72 65 6e 63 65 29 0a 26 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 reference).&&.0.===.$this->proce
16b20 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 2c 20 24 6f 75 ss->execute('git.branch.-r',.$ou
16b40 74 70 75 74 2c 20 24 70 61 74 68 29 0a 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 tput,.$path).&&.preg_match('{^\s
16b60 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 72 65 66 65 72 65 6e 63 +composer/'.preg_quote($referenc
16b80 65 29 2e 27 24 7d 6d 27 2c 20 24 6f 75 74 70 75 74 29 0a 29 20 7b 0a 24 67 69 74 52 65 66 20 3d e).'$}m',.$output).).{.$gitRef.=
16ba0 20 27 63 6f 6d 70 6f 73 65 72 2f 27 2e 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 24 63 6f 6d .'composer/'.$reference;.}..$com
16bc0 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 65 73 63 61 70 65 mand.=.sprintf($template,.escape
16be0 73 68 65 6c 6c 61 72 67 28 24 67 69 74 52 65 66 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 shellarg($gitRef));.if.(0.===.$t
16c00 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 his->process->execute($command,.
16c20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 $output,.$path)).{.return;.}....
16c40 69 66 20 28 24 64 61 74 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 if.($date.&&.false.!==.strpos($t
16c60 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 his->process->getErrorOutput(),.
16c80 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 $reference)).{.$branch.=.preg_re
16ca0 70 6c 61 63 65 28 27 7b 28 3f 3a 5e 64 65 76 2d 7c 28 3f 3a 5c 2e 78 29 3f 2d 64 65 76 24 29 7d place('{(?:^dev-|(?:\.x)?-dev$)}
16cc0 69 27 2c 20 27 27 2c 20 24 62 72 61 6e 63 68 29 3b 0a 24 64 61 74 65 20 3d 20 24 64 61 74 65 2d i',.'',.$branch);.$date.=.$date-
16ce0 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 >format('U');....$command.=.'git
16d00 20 62 72 61 6e 63 68 20 2d 72 27 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 .branch.-r';.if.(0.!==.$this->pr
16d20 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 ocess->execute($command,.$output
16d40 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 ,.$path)).{.throw.new.\RuntimeEx
16d60 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 ception('Failed.to.execute.'...$
16d80 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 command..."\n\n"...$this->proces
16da0 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 67 75 65 73 73 54 s->getErrorOutput());.}..$guessT
16dc0 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 6c 6f 67 20 2d 2d 75 6e 74 69 6c 3d 25 73 20 2d 2d emplate.=.'git.log.--until=%s.--
16de0 64 61 74 65 3d 72 61 77 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 25 48 20 25 73 27 3b 0a 66 date=raw.-n1.--pretty=%%H.%s';.f
16e00 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e oreach.($this->process->splitLin
16e20 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 70 72 65 67 es($output).as.$line).{.if.(preg
16e40 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 _match('{^composer/'.preg_quote(
16e60 24 62 72 61 6e 63 68 29 2e 27 28 3f 3a 5c 2e 78 29 3f 24 7d 69 27 2c 20 74 72 69 6d 28 24 6c 69 $branch).'(?:\.x)?$}i',.trim($li
16e80 6e 65 29 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 ne))).{...if.(0.===.$this->proce
16ea0 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 24 67 75 65 73 73 54 65 6d 70 6c 61 ss->execute(sprintf($guessTempla
16ec0 74 65 2c 20 24 64 61 74 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 74 72 69 6d 28 24 te,.$date,.escapeshellarg(trim($
16ee0 6c 69 6e 65 29 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 6e 65 77 line))),.$output,.$path)).{.$new
16f00 52 65 66 65 72 65 6e 63 65 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 62 72 Reference.=.trim($output);.}..br
16f20 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6e 65 77 52 65 66 65 72 65 6e 63 eak;.}.}..if.(empty($newReferenc
16f40 65 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 e)).{...if.(0.!==.$this->process
16f60 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 24 67 75 65 73 73 54 65 6d 70 6c 61 74 65 ->execute(sprintf($guessTemplate
16f80 2c 20 24 64 61 74 65 2c 20 27 2d 2d 61 6c 6c 27 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 ,.$date,.'--all'),.$output,.$pat
16fa0 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f h)).{.throw.new.\RuntimeExceptio
16fc0 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e n('Failed.to.execute.'...$comman
16fe0 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 d..."\n\n"...$this->process->get
17000 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 24 6e 65 77 52 65 66 65 72 65 6e 63 65 20 ErrorOutput());.}.$newReference.
17020 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d =.trim($output);.}....$command.=
17040 20 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 .sprintf($template,.escapeshella
17060 72 67 28 24 72 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 rg($reference));.if.(0.===.$this
17080 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 ->process->execute($command,.$ou
170a0 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 tput,.$path)).{.$this->io->write
170c0 28 27 20 20 20 20 27 2e 24 72 65 66 65 72 65 6e 63 65 2e 27 20 69 73 20 67 6f 6e 65 20 28 68 69 ('....'.$reference.'.is.gone.(hi
170e0 73 74 6f 72 79 20 77 61 73 20 72 65 77 72 69 74 74 65 6e 3f 29 2c 20 72 65 63 6f 76 65 72 65 64 story.was.rewritten?),.recovered
17100 20 62 79 20 63 68 65 63 6b 69 6e 67 20 6f 75 74 20 27 2e 24 6e 65 77 52 65 66 65 72 65 6e 63 65 .by.checking.out.'.$newReference
17120 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 );..return;.}.}..throw.new.\Runt
17140 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 imeException('Failed.to.execute.
17160 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 '...$command..."\n\n"...$this->p
17180 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 0a 0a rocess->getErrorOutput());.}....
171a0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e .protected.function.enforceClean
171c0 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 Directory($path).{.$command.=.sp
171e0 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 67 69 74 20 73 74 61 74 75 73 20 2d 2d 70 6f 72 rintf('cd.%s.&&.git.status.--por
17200 63 65 6c 61 69 6e 20 2d 2d 75 6e 74 72 61 63 6b 65 64 2d 66 69 6c 65 73 3d 6e 6f 27 2c 20 65 73 celain.--untracked-files=no',.es
17220 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 capeshellarg($path));.if.(0.!==.
17240 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 $this->process->execute($command
17260 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 ,.$output)).{.throw.new.\Runtime
17280 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e Exception('Failed.to.execute.'..
172a0 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 .$command..."\n\n"...$this->proc
172c0 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 74 ess->getErrorOutput());.}..if.(t
172e0 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 rim($output)).{.throw.new.\Runti
17300 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 20 27 20 meException('Source.directory.'.
17320 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d 6d 69 74 74 65 64 20 63 68 61 6e ..$path...'.has.uncommitted.chan
17340 67 65 73 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ges');.}.}..........protected.fu
17360 6e 63 74 69 6f 6e 20 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 nction.runCommand($commandCallab
17380 6c 65 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 68 61 6e 64 6c le,.$url,.$path.=.null).{.$handl
173a0 65 72 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 er.=.array($this,.'outputHandler
173c0 27 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 ');....if.(preg_match('{^(?:http
173e0 73 3f 7c 67 69 74 29 28 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 2e 2a 29 7d 27 2c 20 24 75 72 s?|git)(://github.com/.*)}',.$ur
17400 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 61 72 72 61 79 l,.$match)).{.$protocols.=.array
17420 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 2c 20 27 68 74 74 70 27 29 3b 0a 24 6d 65 73 73 61 ('git',.'https',.'http');.$messa
17440 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 74 6f 63 6f ges.=.array();.foreach.($protoco
17460 6c 73 20 61 73 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 24 70 72 6f 74 6f ls.as.$protocol).{.$url.=.$proto
17480 63 6f 6c 20 2e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 col...$match[1];.if.(0.===.$this
174a0 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e ->process->execute(call_user_fun
174c0 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 2c 20 24 68 61 6e 64 c($commandCallable,.$url),.$hand
174e0 6c 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 ler)).{.return;.}.$messages[].=.
17500 27 2d 20 27 20 2e 20 24 75 72 6c 20 2e 20 22 5c 6e 22 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 '-.'...$url..."\n"...preg_replac
17520 65 28 27 23 5e 23 6d 27 2c 20 27 20 20 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e e('#^#m',.'..',.$this->process->
17540 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 getErrorOutput());.if.(null.!==.
17560 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f $path).{.$this->filesystem->remo
17580 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 veDirectory($path);.}.}....$this
175a0 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e ->throwException('Failed.to.clon
175c0 65 20 27 20 2e 20 24 75 72 6c 20 2e 27 20 76 69 61 20 67 69 74 2c 20 68 74 74 70 73 20 61 6e 64 e.'...$url..'.via.git,.https.and
175e0 20 68 74 74 70 20 70 72 6f 74 6f 63 6f 6c 73 2c 20 61 62 6f 72 74 69 6e 67 2e 27 20 2e 20 22 5c .http.protocols,.aborting.'..."\
17600 6e 5c 6e 22 20 2e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 2c n\n"...implode("\n",.$messages),
17620 20 24 75 72 6c 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f .$url);.}..$command.=.call_user_
17640 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 func($commandCallable,.$url);.if
17660 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .(0.!==.$this->process->execute(
17680 24 63 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f $command,.$handler)).{.if.(preg_
176a0 6d 61 74 63 68 28 27 7b 5e 67 69 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 28 2e 2b 3f 29 5c 2e 67 match('{^git@github.com:(.+?)\.g
176c0 69 74 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 20 26 26 20 24 74 68 69 73 2d 3e it$}i',.$url,.$match).&&.$this->
176e0 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 0a 20 24 72 65 74 72 69 65 io->isInteractive()).{...$retrie
17700 73 20 3d 20 33 3b 0a 24 72 65 74 72 79 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 64 6f 20 7b 0a 69 s.=.3;.$retrying.=.false;.do.{.i
17720 66 20 28 24 72 65 74 72 79 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 f.($retrying).{.$this->io->write
17740 28 27 49 6e 76 61 6c 69 64 20 63 72 65 64 65 6e 74 69 61 6c 73 27 29 3b 0a 7d 0a 69 66 20 28 21 ('Invalid.credentials');.}.if.(!
17760 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 $this->io->hasAuthorization('git
17780 68 75 62 2e 63 6f 6d 27 29 20 7c 7c 20 24 72 65 74 72 79 69 6e 67 29 20 7b 0a 24 75 73 65 72 6e hub.com').||.$retrying).{.$usern
177a0 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 73 65 72 6e 61 6d 65 3a 20 ame.=.$this->io->ask('Username:.
177c0 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e ');.$password.=.$this->io->askAn
177e0 64 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 dHideAnswer('Password:.');.$this
17800 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 68 75 62 2e 63 ->io->setAuthorization('github.c
17820 6f 6d 27 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 0a 24 om',.$username,.$password);.}..$
17840 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 auth.=.$this->io->getAuthorizati
17860 6f 6e 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a on('github.com');.$url.=.'https:
17880 2f 2f 27 2e 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 2e 20 27 3a 27 20 2e 20 24 61 //'.$auth['username']...':'...$a
178a0 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 2e 20 27 40 67 69 74 68 75 62 2e 63 6f 6d 2f 27 uth['password']...'@github.com/'
178c0 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2e 67 69 74 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 .$match[1].'.git';..$command.=.c
178e0 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 all_user_func($commandCallable,.
17900 24 75 72 6c 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d $url);.if.(0.===.$this->process-
17920 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 29 29 20 7b 0a >execute($command,.$handler)).{.
17940 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 74 68 29 20 7b 0a return;.}.if.(null.!==.$path).{.
17960 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f $this->filesystem->removeDirecto
17980 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 24 72 65 74 72 79 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d ry($path);.}.$retrying.=.true;.}
179a0 20 77 68 69 6c 65 20 28 2d 2d 24 72 65 74 72 69 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c .while.(--$retries);.}..if.(null
179c0 20 21 3d 3d 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d .!==.$path).{.$this->filesystem-
179e0 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 24 74 68 69 73 >removeDirectory($path);.}.$this
17a00 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 ->throwException('Failed.to.exec
17a20 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 ute.'...$command..."\n\n"...$thi
17a40 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 75 s->process->getErrorOutput(),.$u
17a60 72 6c 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 rl);.}.}..public.function.output
17a80 48 61 6e 64 6c 65 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 0a 7b 0a 69 66 20 28 24 74 Handler($type,.$buffer).{.if.($t
17aa0 79 70 65 20 21 3d 3d 20 27 6f 75 74 27 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 ype.!==.'out').{.return;.}.if.($
17ac0 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e this->io->isVerbose()).{.$this->
17ae0 69 6f 2d 3e 77 72 69 74 65 28 24 62 75 66 66 65 72 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a io->write($buffer,.false);.}.}..
17b00 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 68 72 6f 77 45 78 63 65 70 74 69 6f protected.function.throwExceptio
17b20 6e 28 24 6d 65 73 73 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 n($message,.$url).{.if.(0.!==.$t
17b40 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 2d 2d 76 65 72 his->process->execute('git.--ver
17b60 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 sion',.$ignoredOutput)).{.throw.
17b80 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f new.\RuntimeException('Failed.to
17ba0 20 63 6c 6f 6e 65 20 27 2e 24 75 72 6c 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 .clone.'.$url.',.git.was.not.fou
17bc0 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 nd,.check.that.it.is.installed.a
17be0 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e nd.in.your.PATH.env.'..."\n\n"..
17c00 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 .$this->process->getErrorOutput(
17c20 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 ));.}..throw.new.\RuntimeExcepti
17c40 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 on($message);.}..protected.funct
17c60 69 6f 6e 20 73 65 74 50 75 73 68 55 72 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ion.setPushUrl(PackageInterface.
17c80 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 $package,.$path).{...if.(preg_ma
17ca0 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 2e 63 tch('{^(?:https?|git)://github.c
17cc0 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 7d 27 om/([^/]+)/([^/]+?)(?:\.git)?$}'
17ce0 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 6d 61 74 ,.$package->getSourceUrl(),.$mat
17d00 63 68 29 29 20 7b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 67 69 74 40 67 69 74 68 75 62 2e 63 6f ch)).{.$pushUrl.=.'git@github.co
17d20 6d 3a 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2e 67 69 m:'.$match[1].'/'.$match[2].'.gi
17d40 74 27 3b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 6d 6f 74 65 20 73 t';.$cmd.=.sprintf('git.remote.s
17d60 65 74 2d 75 72 6c 20 2d 2d 70 75 73 68 20 6f 72 69 67 69 6e 20 25 73 27 2c 20 65 73 63 61 70 65 et-url.--push.origin.%s',.escape
17d80 73 68 65 6c 6c 61 72 67 28 24 70 75 73 68 55 72 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 shellarg($pushUrl));.$this->proc
17da0 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 ess->execute($cmd,.$ignoredOutpu
17dc0 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a t,.$path);.}.}.}.<?php..........
17de0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b ..namespace.Composer\Repository;
17e00 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b ..use.Composer\Package\AliasPack
17e20 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 age;.use.Composer\Package\Packag
17e40 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 eInterface;.use.Composer\Package
17e60 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c \Version\VersionParser;.......cl
17e80 61 73 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 ass.ArrayRepository.implements.R
17ea0 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 epositoryInterface.{.protected.$
17ec0 70 61 63 6b 61 67 65 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e packages;..public.function.__con
17ee0 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 struct(array.$packages.=.array()
17f00 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 ).{.foreach.($packages.as.$packa
17f20 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 ge).{.$this->addPackage($package
17f40 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 );.}.}.....public.function.findP
17f60 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 0a 20 24 76 65 72 ackage($name,.$version).{...$ver
17f80 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 sionParser.=.new.VersionParser()
17fa0 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 ;.$version.=.$versionParser->nor
17fc0 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c malize($version);.$name.=.strtol
17fe0 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 ower($name);..foreach.($this->ge
18000 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 tPackages().as.$package).{.if.($
18020 6e 61 6d 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 name.===.$package->getName().&&.
18040 24 76 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f $version.===.$package->getVersio
18060 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a n()).{.return.$package;.}.}.}...
18080 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 ..public.function.findPackages($
180a0 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 6e 61 6d 65 name,.$version.=.null).{...$name
180c0 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c .=.strtolower($name);....if.(nul
180e0 6c 20 21 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 l.!==.$version).{.$versionParser
18100 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 72 73 69 6f 6e .=.new.VersionParser();.$version
18120 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 .=.$versionParser->normalize($ve
18140 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a rsion);.}..$packages.=.array();.
18160 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 .foreach.($this->getPackages().a
18180 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e s.$package).{.if.($package->getN
181a0 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 ame().===.$name.&&.(null.===.$ve
181c0 72 73 69 6f 6e 20 7c 7c 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e rsion.||.$version.===.$package->
181e0 67 65 74 56 65 72 73 69 6f 6e 28 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 getVersion())).{.$packages[].=.$
18200 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a package;.}.}..return.$packages;.
18220 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 }.....public.function.hasPackage
18240 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 70 (PackageInterface.$package).{.$p
18260 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 ackageId.=.$package->getUniqueNa
18280 6d 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 me();..foreach.($this->getPackag
182a0 65 73 28 29 20 61 73 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 es().as.$repoPackage).{.if.($pac
182c0 6b 61 67 65 49 64 20 3d 3d 3d 20 24 72 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 kageId.===.$repoPackage->getUniq
182e0 75 65 4e 61 6d 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 ueName()).{.return.true;.}.}..re
18300 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 turn.false;.}.......public.funct
18320 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ion.addPackage(PackageInterface.
18340 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e $package).{.if.(null.===.$this->
18360 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b packages).{.$this->initialize();
18380 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 .}.$package->setRepository($this
183a0 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b );.$this->packages[].=.$package;
183c0 0a 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 28 29 29 20 7b 0a ....if.($package->getAlias()).{.
183e0 24 61 6c 69 61 73 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 $alias.=.$this->createAliasPacka
18400 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 50 61 63 ge($package);.if.(!$this->hasPac
18420 6b 61 67 65 28 24 61 6c 69 61 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 kage($alias)).{.$this->addPackag
18440 65 28 24 61 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 e($alias);.}.}.}..protected.func
18460 74 69 6f 6e 20 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 tion.createAliasPackage(PackageI
18480 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c nterface.$package,.$alias.=.null
184a0 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 ,.$prettyAlias.=.null).{.return.
184c0 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 new.AliasPackage($package,.$alia
184e0 73 20 3f 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 28 29 2c 20 24 70 72 65 74 s.?:.$package->getAlias(),.$pret
18500 74 79 41 6c 69 61 73 20 3f 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 41 6c tyAlias.?:.$package->getPrettyAl
18520 69 61 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ias());.}.......public.function.
18540 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 removePackage(PackageInterface.$
18560 70 61 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 package).{.$packageId.=.$package
18580 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 ->getUniqueName();..foreach.($th
185a0 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 is->getPackages().as.$key.=>.$re
185c0 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 poPackage).{.if.($packageId.===.
185e0 24 72 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b $repoPackage->getUniqueName()).{
18600 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 2c 20 24 .array_splice($this->packages,.$
18620 6b 65 79 2c 20 31 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c key,.1);..return;.}.}.}.....publ
18640 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 ic.function.getPackages().{.if.(
18660 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 null.===.$this->packages).{.$thi
18680 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 s->initialize();.}..return.$this
186a0 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ->packages;.}.......public.funct
186c0 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 ion.count().{.return.count($this
186e0 2d 3e 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ->packages);.}.....protected.fun
18700 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b ction.initialize().{.$this->pack
18720 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ages.=.array();.}.}.<?php.......
18740 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f .....namespace.Composer\Reposito
18760 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b ry;..use.Composer\Json\JsonFile;
18780 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 .use.Composer\Package\AliasPacka
187a0 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c ge;.use.Composer\Package\Loader\
187c0 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 ArrayLoader;.use.Composer\Packag
187e0 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 e\Dumper\ArrayDumper;........cla
18800 73 73 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 ss.FilesystemRepository.extends.
18820 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 57 72 69 74 61 ArrayRepository.implements.Writa
18840 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 bleRepositoryInterface.{.private
18860 20 24 66 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f .$file;.......public.function.__
18880 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 construct(JsonFile.$repositoryFi
188a0 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 46 le).{.$this->file.=.$repositoryF
188c0 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e ile;.}.....protected.function.in
188e0 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 itialize().{.parent::initialize(
18900 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 );..if.(!$this->file->exists()).
18920 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e {.return;.}..$packages.=.$this->
18940 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 61 file->read();..if.(!is_array($pa
18960 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 ckages)).{.throw.new.\Unexpected
18980 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 ValueException('Could.not.parse.
189a0 70 61 63 6b 61 67 65 20 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 66 package.list.from.the.'.$this->f
189c0 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d ile->getPath().'.repository');.}
189e0 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 66 ..$loader.=.new.ArrayLoader();.f
18a00 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 44 61 74 oreach.($packages.as.$packageDat
18a20 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 a).{.$package.=.$loader->load($p
18a40 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 ackageData);.$this->addPackage($
18a60 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 package);.}.}..public.function.r
18a80 65 6c 6f 61 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 6e 75 6c 6c eload().{.$this->packages.=.null
18aa0 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ;.$this->initialize();.}.....pub
18ac0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 lic.function.write().{.$packages
18ae0 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 44 .=.array();.$dumper.=.new.ArrayD
18b00 75 6d 70 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b umper();.foreach.($this->getPack
18b20 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 24 70 61 63 6b ages().as.$package).{.if.(!$pack
18b40 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 age.instanceof.AliasPackage).{.$
18b60 64 61 74 61 20 3d 20 24 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a data.=.$dumper->dump($package);.
18b80 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d $packages[].=.$data;.}.}..$this-
18ba0 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 >file->write($packages);.}.}.<?p
18bc0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
18be0 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \Repository;..use.Composer\Packa
18c00 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 ge\PackageInterface;.......inter
18c20 66 61 63 65 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 face.WritableRepositoryInterface
18c40 20 65 78 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a .extends.RepositoryInterface.{..
18c60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 3b 0a 0a 0a 0a 0a 0a ..public.function.write();......
18c80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b .public.function.addPackage(Pack
18ca0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ageInterface.$package);.......pu
18cc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b blic.function.removePackage(Pack
18ce0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 70 75 62 6c ageInterface.$package);.....publ
18d00 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a ic.function.reload();.}.<?php...
18d20 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f .........namespace.Composer\Repo
18d40 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 sitory;..use.Composer\IO\IOInter
18d60 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 face;.use.Composer\Package\Versi
18d80 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 on\VersionParser;.use.Composer\R
18da0 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 3b 0a 75 73 epository\Pear\ChannelReader;.us
18dc0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 e.Composer\Package\MemoryPackage
18de0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 ;.use.Composer\Repository\Pear\C
18e00 68 61 6e 6e 65 6c 49 6e 66 6f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 hannelInfo;.use.Composer\Package
18e20 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b \Link;.use.Composer\Package\Link
18e40 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 Constraint\VersionConstraint;.us
18e60 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d e.Composer\Util\RemoteFilesystem
18e80 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ;.use.Composer\Config;..........
18ea0 0a 63 6c 61 73 73 20 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 .class.PearRepository.extends.Ar
18ec0 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 75 72 6c 3b 0a 70 72 rayRepository.{.private.$url;.pr
18ee0 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 70 72 69 76 61 74 65 ivate.$io;.private.$rfs;.private
18f00 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 .$versionParser;.....private.$ve
18f20 6e 64 6f 72 41 6c 69 61 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ndorAlias;..public.function.__co
18f40 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 nstruct(array.$repoConfig,.IOInt
18f60 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 52 65 6d 6f erface.$io,.Config.$config,.Remo
18f80 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 teFilesystem.$rfs.=.null).{.if.(
18fa0 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 !preg_match('{^https?://}',.$rep
18fc0 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 oConfig['url'])).{.$repoConfig['
18fe0 75 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a 2f 2f 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 url'].=.'http://'.$repoConfig['u
19000 72 6c 27 5d 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 66 69 rl'];.}..if.(function_exists('fi
19020 6c 74 65 72 5f 76 61 72 27 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 lter_var').&&.version_compare(PH
19040 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 33 27 2c 20 27 3e 3d 27 29 20 26 26 20 21 66 69 P_VERSION,.'5.3.3',.'>=').&&.!fi
19060 6c 74 65 72 5f 76 61 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 46 49 4c lter_var($repoConfig['url'],.FIL
19080 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c TER_VALIDATE_URL)).{.throw.new.\
190a0 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 UnexpectedValueException('Invali
190c0 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 20 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 3a d.url.given.for.PEAR.repository:
190e0 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 .'.$repoConfig['url']);.}..$this
19100 2d 3e 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d ->url.=.rtrim($repoConfig['url']
19120 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e ,.'/');.$this->io.=.$io;.$this->
19140 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 rfs.=.$rfs.?:.new.RemoteFilesyst
19160 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 em($this->io);.$this->vendorAlia
19180 73 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 76 65 6e 64 6f 72 2d 61 6c s.=.isset($repoConfig['vendor-al
191a0 69 61 73 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 76 65 6e 64 6f 72 2d 61 6c 69 ias']).?.$repoConfig['vendor-ali
191c0 61 73 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 as'].:.null;.$this->versionParse
191e0 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 70 72 6f 74 r.=.new.VersionParser();.}..prot
19200 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 ected.function.initialize().{.pa
19220 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e rent::initialize();..$this->io->
19240 77 72 69 74 65 28 27 49 6e 69 74 69 61 6c 69 7a 69 6e 67 20 50 45 41 52 20 72 65 70 6f 73 69 74 write('Initializing.PEAR.reposit
19260 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 24 72 65 61 64 65 72 20 3d 20 6e 65 ory.'.$this->url);..$reader.=.ne
19280 77 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 28 24 74 68 69 73 2d 3e 72 66 73 29 3b 0a 74 72 79 w.ChannelReader($this->rfs);.try
192a0 20 7b 0a 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 20 3d 20 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 .{.$channelInfo.=.$reader->read(
192c0 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e $this->url);.}.catch.(\Exception
192e0 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e .$e).{.$this->io->write('<warnin
19300 67 3e 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e g>PEAR.repository.from.'.$this->
19320 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 2e 20 27 2e 24 65 2d url.'.could.not.be.loaded..'.$e-
19340 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 0a 72 65 >getMessage().'</warning>');..re
19360 74 75 72 6e 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 turn;.}.$packages.=.$this->build
19380 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 24 ComposerPackages($channelInfo,.$
193a0 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 this->versionParser);.foreach.($
193c0 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 packages.as.$package).{.$this->a
193e0 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ddPackage($package);.}.}........
19400 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 private.function.buildComposerPa
19420 63 6b 61 67 65 73 28 43 68 61 6e 6e 65 6c 49 6e 66 6f 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c ckages(ChannelInfo.$channelInfo,
19440 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 0a 7b .VersionParser.$versionParser).{
19460 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 .$result.=.array();.foreach.($ch
19480 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 annelInfo->getPackages().as.$pac
194a0 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b kageDefinition).{.foreach.($pack
194c0 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 52 65 6c 65 61 73 65 73 28 29 20 61 73 20 ageDefinition->getReleases().as.
194e0 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 72 65 6c 65 61 73 65 49 6e 66 6f 29 20 7b 0a 74 72 79 20 $version.=>.$releaseInfo).{.try.
19500 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 {.$normalizedVersion.=.$versionP
19520 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 arser->normalize($version);.}.ca
19540 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 tch.(\UnexpectedValueException.$
19560 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 e).{.if.($this->io->isVerbose())
19580 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c .{.$this->io->write('Could.not.l
195a0 6f 61 64 20 27 2e 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 oad.'.$packageDefinition->getPac
195c0 6b 61 67 65 4e 61 6d 65 28 29 2e 27 20 27 2e 24 76 65 72 73 69 6f 6e 2e 27 3a 20 27 2e 24 65 2d kageName().'.'.$version.':.'.$e-
195e0 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 >getMessage());.}.continue;.}..$
19600 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 composerPackageName.=.$this->bui
19620 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 44 65 ldComposerPackageName($packageDe
19640 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 70 61 63 finition->getChannelName(),.$pac
19660 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 kageDefinition->getPackageName()
19680 29 3b 0a 0a 0a 20 0a 20 24 64 69 73 74 55 72 6c 20 3d 20 22 68 74 74 70 3a 2f 2f 7b 24 70 61 63 );......$distUrl.=."http://{$pac
196a0 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 kageDefinition->getChannelName()
196c0 7d 2f 67 65 74 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 }/get/{$packageDefinition->getPa
196e0 63 6b 61 67 65 4e 61 6d 65 28 29 7d 2d 7b 24 76 65 72 73 69 6f 6e 7d 2e 74 67 7a 22 3b 0a 0a 24 ckageName()}-{$version}.tgz";..$
19700 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 75 67 67 65 73 74 73 20 3d 20 requires.=.array();.$suggests.=.
19720 61 72 72 61 79 28 29 3b 0a 24 63 6f 6e 66 6c 69 63 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 array();.$conflicts.=.array();.$
19740 72 65 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 63 68 replaces.=.array();......if.($ch
19760 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 24 70 61 63 6b 61 67 65 annelInfo->getName().==.$package
19780 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 20 7b 0a Definition->getChannelName()).{.
197a0 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 74 68 69 73 2d 3e 62 $composerPackageAlias.=.$this->b
197c0 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c uildComposerPackageName($channel
197e0 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 61 73 28 29 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 Info->getAlias(),.$packageDefini
19800 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 61 6c 69 61 73 43 tion->getPackageName());.$aliasC
19820 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e onstraint.=.new.VersionConstrain
19840 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 t('==',.$normalizedVersion);.$re
19860 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 places[].=.new.Link($composerPac
19880 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c kageName,.$composerPackageAlias,
198a0 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 .$aliasConstraint,.'replaces',.(
198c0 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 string).$aliasConstraint);.}....
198e0 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 29 0a 26 if.(!empty($this->vendorAlias).&
19900 26 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 20 21 3d 20 27 70 65 61 72 2d 27 &.($this->vendorAlias.!=.'pear-'
19920 2e 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 61 73 28 29 20 7c 7c 20 24 63 68 .$channelInfo->getAlias().||.$ch
19940 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 20 24 70 61 63 6b 61 67 65 annelInfo->getName().!=.$package
19960 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 0a 29 20 Definition->getChannelName()).).
19980 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 22 7b 24 74 68 69 {.$composerPackageAlias.=."{$thi
199a0 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 7d 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 s->vendorAlias}/{$packageDefinit
199c0 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 7d 22 3b 0a 24 61 6c 69 61 73 43 ion->getPackageName()}";.$aliasC
199e0 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e onstraint.=.new.VersionConstrain
19a00 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 t('==',.$normalizedVersion);.$re
19a20 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 places[].=.new.Link($composerPac
19a40 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c kageName,.$composerPackageAlias,
19a60 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 .$aliasConstraint,.'replaces',.(
19a80 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f string).$aliasConstraint);.}..fo
19aa0 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e reach.($releaseInfo->getDependen
19ac0 63 79 49 6e 66 6f 28 29 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 64 65 70 65 cyInfo()->getRequires().as.$depe
19ae0 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 ndencyConstraint).{.$dependencyP
19b00 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 ackageName.=.$this->buildCompose
19b20 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 rPackageName($dependencyConstrai
19b40 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 nt->getChannelName(),.$dependenc
19b60 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a yConstraint->getPackageName());.
19b80 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 $constraint.=.$versionParser->pa
19ba0 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 rseConstraints($dependencyConstr
19bc0 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 24 6c 69 6e 6b 20 3d 20 aint->getConstraint());.$link.=.
19be0 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 new.Link($composerPackageName,.$
19c00 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 dependencyPackageName,.$constrai
19c20 6e 74 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 nt,.$dependencyConstraint->getTy
19c40 70 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 pe(),.$dependencyConstraint->get
19c60 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 73 77 69 74 63 68 20 28 24 64 65 70 65 6e 64 65 6e Constraint());.switch.($dependen
19c80 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 63 61 73 65 20 cyConstraint->getType()).{.case.
19ca0 27 72 65 71 75 69 72 65 64 27 3a 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 'required':.$requires[].=.$link;
19cc0 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 63 6f 6e 66 6c 69 63 74 73 27 3a 0a 24 63 6f 6e 66 6c .break;.case.'conflicts':.$confl
19ce0 69 63 74 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 72 65 70 icts[].=.$link;.break;.case.'rep
19d00 6c 61 63 65 73 27 3a 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 laces':.$replaces[].=.$link;.bre
19d20 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 49 6e 66 6f 2d 3e ak;.}.}..foreach.($releaseInfo->
19d40 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 61 6c getDependencyInfo()->getOptional
19d60 73 28 29 20 61 73 20 24 67 72 6f 75 70 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 s().as.$group.=>.$dependencyCons
19d80 74 72 61 69 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 traints).{.foreach.($dependencyC
19da0 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 onstraints.as.$dependencyConstra
19dc0 69 6e 74 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 int).{.$dependencyPackageName.=.
19de0 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 $this->buildComposerPackageName(
19e00 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 $dependencyConstraint->getChanne
19e20 6c 4e 61 6d 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e lName(),.$dependencyConstraint->
19e40 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 73 75 67 67 65 73 74 73 5b 24 67 72 getPackageName());.$suggests[$gr
19e60 6f 75 70 2e 27 2d 27 2e 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 5d 20 oup.'-'.$dependencyPackageName].
19e80 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 =.$dependencyConstraint->getCons
19ea0 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 4d 65 traint();.}.}..$package.=.new.Me
19ec0 6d 6f 72 79 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 moryPackage($composerPackageName
19ee0 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 29 3b ,.$normalizedVersion,.$version);
19f00 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 27 70 65 61 72 2d 6c 69 62 72 61 72 79 .$package->setType('pear-library
19f20 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 70 61 ');.$package->setDescription($pa
19f40 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 ckageDefinition->getDescription(
19f60 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 54 79 70 65 28 27 66 69 6c 65 27 ));.$package->setDistType('file'
19f80 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 55 72 6c 28 24 64 69 73 74 55 72 6c );.$package->setDistUrl($distUrl
19fa0 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 28 27 );.$package->setAutoload(array('
19fc0 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 61 79 28 27 27 29 29 29 3b 0a 24 70 61 63 6b 61 classmap'.=>.array('')));.$packa
19fe0 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 28 27 2f 27 29 29 3b ge->setIncludePaths(array('/'));
1a000 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 24 72 65 71 75 69 72 65 73 .$package->setRequires($requires
1a020 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 63 6f 6e 66 6c );.$package->setConflicts($confl
1a040 69 63 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 73 75 icts);.$package->setSuggests($su
1a060 67 67 65 73 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 ggests);.$package->setReplaces($
1a080 72 65 70 6c 61 63 65 73 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b replaces);.$result[].=.$package;
1a0a0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 .}.}..return.$result;.}..private
1a0c0 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 .function.buildComposerPackageNa
1a0e0 6d 65 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b me($channelName,.$packageName).{
1a100 0a 69 66 20 28 27 70 68 70 27 20 3d 3d 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 .if.('php'.===.$channelName).{.r
1a120 65 74 75 72 6e 20 22 70 68 70 22 3b 0a 7d 0a 69 66 20 28 27 65 78 74 27 20 3d 3d 3d 20 24 63 68 eturn."php";.}.if.('ext'.===.$ch
1a140 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 22 65 78 74 2d 7b 24 70 61 63 6b 61 annelName).{.return."ext-{$packa
1a160 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 70 65 61 72 2d 7b 24 63 68 61 6e geName}";.}..return."pear-{$chan
1a180 6e 65 6c 4e 61 6d 65 7d 2f 7b 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 7d 0a 3c 3f nelName}/{$packageName}";.}.}.<?
1a1a0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
1a1c0 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 r\Repository;..use.Composer\IO\I
1a1e0 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b OInterface;.use.Composer\Config;
1a200 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 .........class.RepositoryManager
1a220 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 .{.private.$localRepository;.pri
1a240 76 61 74 65 20 24 6c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 vate.$localDevRepository;.privat
1a260 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 e.$repositories.=.array();.priva
1a280 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b te.$repositoryClasses.=.array();
1a2a0 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a .private.$io;.private.$config;..
1a2c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e public.function.__construct(IOIn
1a2e0 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 terface.$io,.Config.$config).{.$
1a300 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 this->io.=.$io;.$this->config.=.
1a320 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $config;.}..........public.funct
1a340 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 ion.findPackage($name,.$version)
1a360 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 .{.foreach.($this->repositories.
1a380 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 3d as.$repository).{.if.($package.=
1a3a0 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c .$repository->findPackage($name,
1a3c0 20 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d .$version)).{.return.$package;.}
1a3e0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 .}.}..........public.function.fi
1a400 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 70 ndPackages($name,.$version).{.$p
1a420 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 ackages.=.array();..foreach.($th
1a440 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 is->repositories.as.$repository)
1a460 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b .{.$packages.=.array_merge($pack
1a480 61 67 65 73 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 ages,.$repository->findPackages(
1a4a0 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 $name,.$version));.}..return.$pa
1a4c0 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ckages;.}.......public.function.
1a4e0 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 addRepository(RepositoryInterfac
1a500 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f e.$repository).{.$this->reposito
1a520 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ries[].=.$repository;.}.........
1a540 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 .public.function.createRepositor
1a560 79 28 24 74 79 70 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 y($type,.$config).{.if.(!isset($
1a580 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 29 29 this->repositoryClasses[$type]))
1a5a0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
1a5c0 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 74 79 70 65 20 69 73 20 6e 6f 74 20 72 eption('Repository.type.is.not.r
1a5e0 65 67 69 73 74 65 72 65 64 3a 20 27 2e 24 74 79 70 65 29 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d egistered:.'.$type);.}..$class.=
1a600 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d .$this->repositoryClasses[$type]
1a620 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 69 67 2c 20 24 74 ;..return.new.$class($config,.$t
1a640 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a his->io,.$this->config);.}......
1a660 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 ..public.function.setRepositoryC
1a680 6c 61 73 73 28 24 74 79 70 65 2c 20 24 63 6c 61 73 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 lass($type,.$class).{.$this->rep
1a6a0 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 63 6c 61 73 73 3b 0a ositoryClasses[$type].=.$class;.
1a6c0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 }.......public.function.getRepos
1a6e0 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 itories().{.return.$this->reposi
1a700 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tories;.}.......public.function.
1a720 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 setLocalRepository(RepositoryInt
1a740 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 erface.$repository).{.$this->loc
1a760 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a alRepository.=.$repository;.}...
1a780 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f ....public.function.getLocalRepo
1a7a0 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 sitory().{.return.$this->localRe
1a7c0 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f pository;.}.......public.functio
1a7e0 6e 20 73 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f n.setLocalDevRepository(Reposito
1a800 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 ryInterface.$repository).{.$this
1a820 2d 3e 6c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 70 6f 73 69 74 6f ->localDevRepository.=.$reposito
1a840 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c ry;.}.......public.function.getL
1a860 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ocalDevRepository().{.return.$th
1a880 69 73 2d 3e 6c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a is->localDevRepository;.}.......
1a8a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f public.function.getLocalReposito
1a8c0 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6c 6f 63 ries().{.return.array($this->loc
1a8e0 61 6c 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 44 65 76 52 65 70 alRepository,.$this->localDevRep
1a900 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e ository);.}.}.<?php............n
1a920 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 amespace.Composer\Repository\Vcs
1a940 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 ;..use.Composer\Downloader\Trans
1a960 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e portException;.use.Composer\Json
1a980 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 \JsonFile;.use.Composer\Cache;.u
1a9a0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 se.Composer\IO\IOInterface;.use.
1a9c0 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a Composer\Util\RemoteFilesystem;.
1a9e0 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 ....class.GitHubDriver.extends.V
1aa00 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f csDriver.{.protected.$cache;.pro
1aa20 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 tected.$owner;.protected.$reposi
1aa40 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 tory;.protected.$tags;.protected
1aa60 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 .$branches;.protected.$rootIdent
1aa80 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 49 73 73 75 65 73 3b 0a 70 72 6f ifier;.protected.$hasIssues;.pro
1aaa0 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f tected.$infoCache.=.array();.pro
1aac0 74 65 63 74 65 64 20 24 69 73 50 72 69 76 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a tected.$isPrivate.=.false;......
1aae0 0a 70 72 6f 74 65 63 74 65 64 20 24 67 69 74 44 72 69 76 65 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 .protected.$gitDriver;.....publi
1ab00 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d c.function.initialize().{.preg_m
1ab20 61 74 63 68 28 27 23 5e 28 3f 3a 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 atch('#^(?:(?:https?|git)://gith
1ab40 75 62 5c 2e 63 6f 6d 2f 7c 67 69 74 40 67 69 74 68 75 62 5c 2e 63 6f 6d 3a 29 28 5b 5e 2f 5d 2b ub\.com/|git@github\.com:)([^/]+
1ab60 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c )/(.+?)(?:\.git)?$#',.$this->url
1ab80 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 ,.$match);.$this->owner.=.$match
1aba0 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b [1];.$this->repository.=.$match[
1abc0 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 67 69 74 68 75 62 2e 63 2];.$this->originUrl.=.'github.c
1abe0 6f 6d 27 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 74 om';.$this->cache.=.new.Cache($t
1ac00 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d his->io,.$this->config->get('hom
1ac20 65 27 29 2e 27 2f 63 61 63 68 65 2e 67 69 74 68 75 62 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 e').'/cache.github/'.$this->owne
1ac40 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 24 74 68 69 73 r.'/'.$this->repository);..$this
1ac60 2d 3e 66 65 74 63 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 ->fetchRootIdentifier();.}.....p
1ac80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 ublic.function.getRootIdentifier
1aca0 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 ().{.if.($this->gitDriver).{.ret
1acc0 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 urn.$this->gitDriver->getRootIde
1ace0 6e 74 69 66 69 65 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 ntifier();.}..return.$this->root
1ad00 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Identifier;.}.....public.functio
1ad20 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 n.getUrl().{.if.($this->gitDrive
1ad40 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 r).{.return.$this->gitDriver->ge
1ad60 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a tUrl();.}..return.$this->url;.}.
1ad80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 ....public.function.getSource($i
1ada0 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 dentifier).{.if.($this->gitDrive
1adc0 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 r).{.return.$this->gitDriver->ge
1ade0 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d tSource($identifier);.}.$label.=
1ae00 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 .array_search($identifier,.$this
1ae20 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 69 66 20 ->getTags()).?:.$identifier;.if.
1ae40 28 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 29 20 7b 0a 0a 20 0a 20 24 75 72 6c 20 3d 20 ($this->isPrivate).{.....$url.=.
1ae60 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 3b 0a 7d 20 65 6c 73 65 20 $this->generateSshUrl();.}.else.
1ae80 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 {.$url.=.$this->getUrl();.}..ret
1aea0 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 urn.array('type'.=>.'git',.'url'
1aec0 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 .=>.$url,.'reference'.=>.$label)
1aee0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 ;.}.....public.function.getDist(
1af00 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 $identifier).{.if.($this->gitDri
1af20 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e ver).{.return.$this->gitDriver->
1af40 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d getDist($identifier);.}.$label.=
1af60 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 .array_search($identifier,.$this
1af80 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 75 72 ->getTags()).?:.$identifier;.$ur
1afa0 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 74 68 69 73 2d l.=.'https://github.com/'.$this-
1afc0 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 7a >owner.'/'.$this->repository.'/z
1afe0 69 70 62 61 6c 6c 2f 27 2e 24 6c 61 62 65 6c 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 ipball/'.$label;..return.array('
1b000 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 type'.=>.'zip',.'url'.=>.$url,.'
1b020 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 2c 20 27 73 68 61 73 75 6d 27 20 3d reference'.=>.$label,.'shasum'.=
1b040 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 >.'');.}.....public.function.get
1b060 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 ComposerInformation($identifier)
1b080 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 .{.if.($this->gitDriver).{.retur
1b0a0 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 n.$this->gitDriver->getComposerI
1b0c0 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 nformation($identifier);.}..if.(
1b0e0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 preg_match('{[a-f0-9]{40}}i',.$i
1b100 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 dentifier).&&.$res.=.$this->cach
1b120 65 2d 3e 72 65 61 64 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 e->read($identifier)).{.$this->i
1b140 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 nfoCache[$identifier].=.JsonFile
1b160 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 ::parseJson($res);.}..if.(!isset
1b180 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 ($this->infoCache[$identifier]))
1b1a0 20 7b 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 27 68 74 74 70 73 3a 2f 2f 72 61 .{.try.{.$resource.=.'https://ra
1b1c0 77 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e w.github.com/'.$this->owner.'/'.
1b1e0 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 $this->repository.'/'.$identifie
1b200 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 r.'/composer.json';.$composer.=.
1b220 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d $this->getContents($resource);.}
1b240 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b .catch.(TransportException.$e).{
1b260 0a 69 66 20 28 34 30 34 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 74 68 .if.(404.!==.$e->getCode()).{.th
1b280 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a row.$e;.}..$composer.=.false;.}.
1b2a0 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 .if.($composer).{.$composer.=.Js
1b2c0 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 onFile::parseJson($composer,.$re
1b2e0 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 source);..if.(!isset($composer['
1b300 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 27 68 74 74 70 73 3a 2f 2f time'])).{.$resource.=.'https://
1b320 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 api.github.com/repos/'.$this->ow
1b340 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6d 6d ner.'/'.$this->repository.'/comm
1b360 69 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 6f 6d 6d 69 74 20 3d 20 4a 73 6f its/'.$identifier;.$commit.=.Jso
1b380 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 nFile::parseJson($this->getConte
1b3a0 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d nts($resource),.$resource);.$com
1b3c0 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 6f 6d 6d 69 74 5b 27 63 6f 6d 6d 69 74 27 poser['time'].=.$commit['commit'
1b3e0 5d 5b 27 63 6f 6d 6d 69 74 74 65 72 27 5d 5b 27 64 61 74 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 69 ]['committer']['date'];.}.if.(!i
1b400 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 sset($composer['support']['sourc
1b420 65 27 5d 29 29 20 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 e'])).{.$label.=.array_search($i
1b440 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 dentifier,.$this->getTags()).?:.
1b460 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d array_search($identifier,.$this-
1b480 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a >getBranches()).?:.$identifier;.
1b4a0 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 20 3d $composer['support']['source'].=
1b4c0 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 25 73 2f .sprintf('https://github.com/%s/
1b4e0 25 73 2f 74 72 65 65 2f 25 73 27 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 %s/tree/%s',.$this->owner,.$this
1b500 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 69 66 20 28 21 69 73 ->repository,.$label);.}.if.(!is
1b520 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 set($composer['support']['issues
1b540 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 73 29 20 7b 0a 24 63 6f 6d 70 ']).&&.$this->hasIssues).{.$comp
1b560 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 20 3d 20 73 70 72 69 oser['support']['issues'].=.spri
1b580 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 25 73 2f 25 73 2f 69 73 ntf('https://github.com/%s/%s/is
1b5a0 73 75 65 73 27 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f sues',.$this->owner,.$this->repo
1b5c0 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b sitory);.}.}..if.(preg_match('{[
1b5e0 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a a-f0-9]{40}}i',.$identifier)).{.
1b600 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2c $this->cache->write($identifier,
1b620 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 .json_encode($composer));.}..$th
1b640 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f is->infoCache[$identifier].=.$co
1b660 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 mposer;.}..return.$this->infoCac
1b680 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 he[$identifier];.}.....public.fu
1b6a0 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 nction.getTags().{.if.($this->gi
1b6c0 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 tDriver).{.return.$this->gitDriv
1b6e0 65 72 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 er->getTags();.}.if.(null.===.$t
1b700 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 27 68 74 74 70 73 3a his->tags).{.$resource.=.'https:
1b720 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e //api.github.com/repos/'.$this->
1b740 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 owner.'/'.$this->repository.'/ta
1b760 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 gs';.$tagsData.=.JsonFile::parse
1b780 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 Json($this->getContents($resourc
1b7a0 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 e),.$resource);.$this->tags.=.ar
1b7c0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 ray();.foreach.($tagsData.as.$ta
1b7e0 67 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5b 27 6e 61 6d 65 27 5d 5d 20 3d g).{.$this->tags[$tag['name']].=
1b800 20 24 74 61 67 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 .$tag['commit']['sha'];.}.}..ret
1b820 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 urn.$this->tags;.}.....public.fu
1b840 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 nction.getBranches().{.if.($this
1b860 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 ->gitDriver).{.return.$this->git
1b880 44 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c Driver->getBranches();.}.if.(nul
1b8a0 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 l.===.$this->branches).{.$resour
1b8c0 63 65 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 ce.=.'https://api.github.com/rep
1b8e0 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 os/'.$this->owner.'/'.$this->rep
1b900 6f 73 69 74 6f 72 79 2e 27 2f 67 69 74 2f 72 65 66 73 2f 68 65 61 64 73 27 3b 0a 24 62 72 61 6e ository.'/git/refs/heads';.$bran
1b920 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 chData.=.JsonFile::parseJson($th
1b940 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 is->getContents($resource),.$res
1b960 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 ource);.$this->branches.=.array(
1b980 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e );.foreach.($branchData.as.$bran
1b9a0 63 68 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 62 72 61 6e 63 68 5b 27 72 65 ch).{.$name.=.substr($branch['re
1b9c0 66 27 5d 2c 20 31 31 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6e 61 6d 65 5d f'],.11);.$this->branches[$name]
1b9e0 20 3d 20 24 62 72 61 6e 63 68 5b 27 6f 62 6a 65 63 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 7d .=.$branch['object']['sha'];.}.}
1ba00 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a ..return.$this->branches;.}.....
1ba20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 public.static.function.supports(
1ba40 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 IOInterface.$io,.$url,.$deep.=.f
1ba60 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 28 3f 3a 68 alse).{.if.(!preg_match('#^((?:h
1ba80 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 7c 67 69 74 40 67 69 ttps?|git)://github\.com/|git@gi
1baa0 74 68 75 62 5c 2e 63 6f 6d 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 thub\.com:)([^/]+)/(.+?)(?:\.git
1bac0 29 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a )?$#',.$url)).{.return.false;.}.
1bae0 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 .if.(!extension_loaded('openssl'
1bb00 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f )).{.if.($io->isVerbose()).{.$io
1bb20 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 69 6e 67 20 47 69 74 48 75 62 20 64 72 69 76 65 72 20 ->write('Skipping.GitHub.driver.
1bb40 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c for.'.$url.'.because.the.OpenSSL
1bb60 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a .PHP.extension.is.missing.');.}.
1bb80 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d .return.false;.}..return.true;.}
1bba0 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 .......protected.function.genera
1bbc0 74 65 53 73 68 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 67 69 74 40 67 69 74 68 75 62 2e teSshUrl().{.return.'git@github.
1bbe0 63 6f 6d 3a 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 com:'.$this->owner.'/'.$this->re
1bc00 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 pository.'.git';.}.......protect
1bc20 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 ed.function.fetchRootIdentifier(
1bc40 29 0a 7b 0a 24 72 65 70 6f 44 61 74 61 55 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e ).{.$repoDataUrl.=.'https://api.
1bc60 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e github.com/repos/'.$this->owner.
1bc80 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 24 61 74 74 65 6d 70 74 43 '/'.$this->repository;.$attemptC
1bca0 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 ounter.=.0;.while.(null.===.$thi
1bcc0 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 69 66 20 28 35 20 3d 3d 20 24 61 s->rootIdentifier).{.if.(5.==.$a
1bce0 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 2b 2b 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ttemptCounter++).{.throw.new.\Ru
1bd00 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 45 69 74 68 65 72 20 79 6f 75 20 68 61 76 65 20 ntimeException("Either.you.have.
1bd20 65 6e 74 65 72 65 64 20 69 6e 76 61 6c 69 64 20 63 72 65 64 65 6e 74 69 61 6c 73 20 6f 72 20 74 entered.invalid.credentials.or.t
1bd40 68 69 73 20 47 69 74 48 75 62 20 72 65 70 6f 73 69 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 his.GitHub.repository.does.not.e
1bd60 78 69 73 74 73 20 28 34 30 34 29 22 29 3b 0a 7d 0a 74 72 79 20 7b 0a 24 72 65 70 6f 44 61 74 61 xists.(404)");.}.try.{.$repoData
1bd80 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 .=.JsonFile::parseJson($this->ge
1bda0 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 70 6f 44 61 74 61 55 72 6c 29 2c 20 24 72 65 70 6f 44 61 tContents($repoDataUrl),.$repoDa
1bdc0 74 61 55 72 6c 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 taUrl);.if.(isset($repoData['def
1bde0 61 75 6c 74 5f 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 ault_branch'])).{.$this->rootIde
1be00 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f 62 72 61 ntifier.=.$repoData['default_bra
1be20 6e 63 68 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 nch'];.}.elseif.(isset($repoData
1be40 5b 27 6d 61 73 74 65 72 5f 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f ['master_branch'])).{.$this->roo
1be60 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 74 65 72 5f tIdentifier.=.$repoData['master_
1be80 62 72 61 6e 63 68 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 branch'];.}.else.{.$this->rootId
1bea0 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 24 74 68 69 73 2d 3e 68 61 entifier.=.'master';.}.$this->ha
1bec0 73 49 73 73 75 65 73 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 68 61 73 5f sIssues.=.!empty($repoData['has_
1bee0 69 73 73 75 65 73 27 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 issues']);.}.catch.(TransportExc
1bf00 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 eption.$e).{.switch.($e->getCode
1bf20 28 29 29 20 7b 0a 63 61 73 65 20 34 30 31 3a 0a 63 61 73 65 20 34 30 34 3a 0a 24 74 68 69 73 2d ()).{.case.401:.case.404:.$this-
1bf40 3e 69 73 50 72 69 76 61 74 65 20 3d 20 74 72 75 65 3b 0a 0a 74 72 79 20 7b 0a 0a 20 0a 20 0a 20 >isPrivate.=.true;..try.{.......
1bf60 0a 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e 65 77 20 47 69 74 44 72 69 76 ..$this->gitDriver.=.new.GitDriv
1bf80 65 72 28 0a 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 2c 0a 24 74 68 er(.$this->generateSshUrl(),.$th
1bfa0 69 73 2d 3e 69 6f 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 24 74 68 69 73 2d 3e 70 72 is->io,.$this->config,.$this->pr
1bfc0 6f 63 65 73 73 2c 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 29 ocess,.$this->remoteFilesystem.)
1bfe0 3b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 ;.$this->gitDriver->initialize()
1c000 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 ;..return;.}.catch.(\RuntimeExce
1c020 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e ption.$e).{.$this->gitDriver.=.n
1c040 75 6c 6c 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 ull;.if.(!$this->io->isInteracti
1c060 76 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 ve()).{.$this->io->write('<error
1c080 3e 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 >Failed.to.clone.the.'.$this->ge
1c0a0 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 nerateSshUrl().'.repository,.try
1c0c0 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 .running.in.interactive.mode.so.
1c0e0 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 75 73 65 72 6e 61 6d 65 that.you.can.enter.your.username
1c100 20 61 6e 64 20 70 61 73 73 77 6f 72 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 .and.password</error>');.throw.$
1c120 65 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 41 75 74 68 65 6e 74 e;.}.}.$this->io->write('Authent
1c140 69 63 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d ication.required.(<info>'.$this-
1c160 3e 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 3a 27 29 3b 0a 24 75 73 65 72 6e 61 6d 65 20 3d 20 24 >url.'</info>):');.$username.=.$
1c180 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 this->io->ask('Username:.');.$pa
1c1a0 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e ssword.=.$this->io->askAndHideAn
1c1c0 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 swer('Password:.');.$this->io->s
1c1e0 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c etAuthorization($this->originUrl
1c200 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 62 72 65 61 6b 3b 0a ,.$username,.$password);.break;.
1c220 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d .default:.throw.$e;.break;.}.}.}
1c240 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
1c260 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f Composer\Repository\Vcs;..use.Co
1c280 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 mposer\Json\JsonFile;.use.Compos
1c2a0 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 er\IO\IOInterface;.....class.Git
1c2c0 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 BitbucketDriver.extends.VcsDrive
1c2e0 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a r.implements.VcsDriverInterface.
1c300 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 {.protected.$owner;.protected.$r
1c320 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 epository;.protected.$tags;.prot
1c340 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 ected.$branches;.protected.$root
1c360 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 Identifier;.protected.$infoCache
1c380 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .=.array();.....public.function.
1c3a0 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 initialize().{.preg_match('#^htt
1c3c0 70 73 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f ps://bitbucket\.org/([^/]+)/(.+?
1c3e0 29 5c 2e 67 69 74 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a )\.git$#',.$this->url,.$match);.
1c400 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d $this->owner.=.$match[1];.$this-
1c420 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e >repository.=.$match[2];.$this->
1c440 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b 0a 7d 0a 0a originUrl.=.'bitbucket.org';.}..
1c460 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 ...public.function.getRootIdenti
1c480 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f fier().{.if.(null.===.$this->roo
1c4a0 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 tIdentifier).{.$resource.=.$this
1c4c0 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 ->getScheme()...'://api.bitbucke
1c4e0 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e t.org/1.0/repositories/'.$this->
1c500 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 24 72 65 owner.'/'.$this->repository;.$re
1c520 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 poData.=.JsonFile::parseJson($th
1c540 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 is->getContents($resource),.$res
1c560 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 ource);.$this->rootIdentifier.=.
1c580 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 29 !empty($repoData['main_branch'])
1c5a0 20 3f 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 20 3a 20 27 6d .?.$repoData['main_branch'].:.'m
1c5c0 61 73 74 65 72 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 aster';.}..return.$this->rootIde
1c5e0 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ntifier;.}.....public.function.g
1c600 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a etUrl().{.return.$this->url;.}..
1c620 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 ...public.function.getSource($id
1c640 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 entifier).{.$label.=.array_searc
1c660 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 h($identifier,.$this->getTags())
1c680 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 .?:.$identifier;..return.array('
1c6a0 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e type'.=>.'git',.'url'.=>.$this->
1c6c0 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 getUrl(),.'reference'.=>.$label)
1c6e0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 ;.}.....public.function.getDist(
1c700 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 $identifier).{.$label.=.array_se
1c720 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 arch($identifier,.$this->getTags
1c740 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 ()).?:.$identifier;.$url.=.$this
1c760 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 ->getScheme()...'://bitbucket.or
1c780 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f g/'.$this->owner.'/'.$this->repo
1c7a0 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 6c 61 62 65 6c 2e 27 2e 7a 69 70 27 3b 0a 0a 72 sitory.'/get/'.$label.'.zip';..r
1c7c0 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 eturn.array('type'.=>.'zip',.'ur
1c7e0 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 l'.=>.$url,.'reference'.=>.$labe
1c800 6c 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 l,.'shasum'.=>.'');.}.....public
1c820 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e .function.getComposerInformation
1c840 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 ($identifier).{.if.(!isset($this
1c860 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 ->infoCache[$identifier])).{.$re
1c880 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a source.=.$this->getScheme()...':
1c8a0 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 //bitbucket.org/'.$this->owner.'
1c8c0 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 72 61 77 2f 27 2e 24 69 64 /'.$this->repository.'/raw/'.$id
1c8e0 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 63 6f 6d 70 entifier.'/composer.json';.$comp
1c900 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 oser.=.$this->getContents($resou
1c920 72 63 65 29 3b 0a 69 66 20 28 21 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a rce);.if.(!$composer).{.return;.
1c940 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 }..$composer.=.JsonFile::parseJs
1c960 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 on($composer,.$resource);..if.(!
1c980 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 isset($composer['time'])).{.$res
1c9a0 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f ource.=.$this->getScheme()...':/
1c9c0 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 /api.bitbucket.org/1.0/repositor
1c9e0 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 ies/'.$this->owner.'/'.$this->re
1ca00 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 61 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 pository.'/changesets/'.$identif
1ca20 69 65 72 3b 0a 24 63 68 61 6e 67 65 73 65 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 ier;.$changeset.=.JsonFile::pars
1ca40 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 eJson($this->getContents($resour
1ca60 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 ce),.$resource);.$composer['time
1ca80 27 5d 20 3d 20 24 63 68 61 6e 67 65 73 65 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a '].=.$changeset['timestamp'];.}.
1caa0 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 $this->infoCache[$identifier].=.
1cac0 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f $composer;.}..return.$this->info
1cae0 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Cache[$identifier];.}.....public
1cb00 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d .function.getTags().{.if.(null.=
1cb20 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 ==.$this->tags).{.$resource.=.$t
1cb40 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 his->getScheme()...'://api.bitbu
1cb60 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 cket.org/1.0/repositories/'.$thi
1cb80 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 s->owner.'/'.$this->repository.'
1cba0 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 /tags';.$tagsData.=.JsonFile::pa
1cbc0 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f rseJson($this->getContents($reso
1cbe0 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d urce),.$resource);.$this->tags.=
1cc00 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 .array();.foreach.($tagsData.as.
1cc20 24 74 61 67 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 $tag.=>.$data).{.$this->tags[$ta
1cc40 67 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 g].=.$data['raw_node'];.}.}..ret
1cc60 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 urn.$this->tags;.}.....public.fu
1cc80 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 nction.getBranches().{.if.(null.
1cca0 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 ===.$this->branches).{.$resource
1ccc0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e .=.$this->getScheme()...'://api.
1cce0 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 bitbucket.org/1.0/repositories/'
1cd00 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 .$this->owner.'/'.$this->reposit
1cd20 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a ory.'/branches';.$branchData.=.J
1cd40 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e sonFile::parseJson($this->getCon
1cd60 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 tents($resource),.$resource);.$t
1cd80 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 his->branches.=.array();.foreach
1cda0 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 64 61 74 .($branchData.as.$branch.=>.$dat
1cdc0 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 a).{.$this->branches[$branch].=.
1cde0 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 $data['raw_node'];.}.}..return.$
1ce00 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 this->branches;.}.....public.sta
1ce20 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 tic.function.supports(IOInterfac
1ce40 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 e.$io,.$url,.$deep.=.false).{.if
1ce60 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 74 62 75 63 6b .(!preg_match('#^https://bitbuck
1ce80 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 et\.org/([^/]+)/(.+?)\.git$#',.$
1cea0 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 url)).{.return.false;.}..if.(!ex
1cec0 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 tension_loaded('openssl')).{.if.
1cee0 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 ($io->isVerbose()).{.$io->write(
1cf00 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 67 69 74 20 64 72 69 76 65 72 20 66 'Skipping.Bitbucket.git.driver.f
1cf20 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 or.'.$url.'.because.the.OpenSSL.
1cf40 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a PHP.extension.is.missing.');.}..
1cf60 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a return.false;.}..return.true;.}.
1cf80 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
1cfa0 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f poser\Repository\Vcs;..use.Compo
1cfc0 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ser\Json\JsonFile;.use.Composer\
1cfe0 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 Util\ProcessExecutor;.use.Compos
1d000 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 er\Util\Filesystem;.use.Composer
1d020 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 72 \IO\IOInterface;.....class.GitDr
1d040 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 iver.extends.VcsDriver.{.protect
1d060 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 ed.$tags;.protected.$branches;.p
1d080 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 rotected.$rootIdentifier;.protec
1d0a0 74 65 64 20 24 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 ted.$repoDir;.protected.$infoCac
1d0c0 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f he.=.array();.....public.functio
1d0e0 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c n.initialize().{.if.(static::isL
1d100 6f 63 61 6c 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 ocalUrl($this->url)).{.$this->re
1d120 70 6f 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 poDir.=.str_replace('file://',.'
1d140 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e ',.$this->url);.}.else.{.$this->
1d160 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f repoDir.=.$this->config->get('ho
1d180 6d 65 27 29 20 2e 20 27 2f 63 61 63 68 65 2e 67 69 74 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c me')...'/cache.git/'...preg_repl
1d1a0 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d ace('{[^a-z0-9.]}i',.'-',.$this-
1d1c0 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 0a 20 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 >url)...'/';....if.(is_dir($this
1d1e0 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 ->repoDir).&&.0.===.$this->proce
1d200 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 6d 6f 74 65 27 2c 20 24 6f 75 74 70 75 ss->execute('git.remote',.$outpu
1d220 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 t,.$this->repoDir)).{.if.(0.!==.
1d240 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 6d $this->process->execute('git.rem
1d260 6f 74 65 20 75 70 64 61 74 65 20 2d 2d 70 72 75 6e 65 20 6f 72 69 67 69 6e 27 2c 20 24 6f 75 74 ote.update.--prune.origin',.$out
1d280 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 put,.$this->repoDir)).{.$this->i
1d2a0 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 75 70 64 61 74 o->write('<error>Failed.to.updat
1d2c0 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d e.'.$this->url.',.package.inform
1d2e0 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 69 73 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 61 79 20 62 ation.from.this.repository.may.b
1d300 65 20 6f 75 74 64 61 74 65 64 20 28 27 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 e.outdated.('.$this->process->ge
1d320 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2e 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d tErrorOutput().')</error>');.}.}
1d340 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 .else.{...$fs.=.new.Filesystem()
1d360 3b 0a 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 ;.$fs->removeDirectory($this->re
1d380 70 6f 44 69 72 29 3b 0a 0a 0a 20 70 75 74 65 6e 76 28 27 47 49 54 5f 41 53 4b 50 41 53 53 3d 65 poDir);....putenv('GIT_ASKPASS=e
1d3a0 63 68 6f 27 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 cho');.$command.=.sprintf('git.c
1d3c0 6c 6f 6e 65 20 2d 2d 6d 69 72 72 6f 72 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c lone.--mirror.%s.%s',.escapeshel
1d3e0 6c 61 72 67 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 larg($this->url),.escapeshellarg
1d400 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 ($this->repoDir));.if.(0.!==.$th
1d420 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 is->process->execute($command,.$
1d440 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 output)).{.$output.=.$this->proc
1d460 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 20 28 30 20 21 3d ess->getErrorOutput();..if.(0.!=
1d480 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 2d =.$this->process->execute('git.-
1d4a0 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 -version',.$ignoredOutput)).{.th
1d4c0 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 row.new.\RuntimeException('Faile
1d4e0 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 67 69 74 20 77 d.to.clone.'.$this->url.',.git.w
1d500 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 as.not.found,.check.that.it.is.i
1d520 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 nstalled.and.in.your.PATH.env.'.
1d540 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 .."\n\n"...$this->process->getEr
1d560 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 rorOutput());.}..throw.new.\Runt
1d580 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e imeException('Failed.to.clone.'.
1d5a0 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 70 61 63 $this->url.',.could.not.read.pac
1d5c0 6b 61 67 65 73 20 66 72 6f 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 70 75 74 kages.from.it'..."\n\n"..$output
1d5e0 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 );.}.}.}..$this->getTags();.$thi
1d600 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s->getBranches();.}.....public.f
1d620 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 unction.getRootIdentifier().{.if
1d640 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 .(null.===.$this->rootIdentifier
1d660 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 ).{.$this->rootIdentifier.=.'mas
1d680 74 65 72 27 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 ter';....$this->process->execute
1d6a0 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 27 2c 20 24 6f 75 74 70 75 ('git.branch.--no-color',.$outpu
1d6c0 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 t,.$this->repoDir);.$branches.=.
1d6e0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 $this->process->splitLines($outp
1d700 75 74 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 27 2a 20 6d 61 73 74 65 72 27 2c 20 24 ut);.if.(!in_array('*.master',.$
1d720 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 branches)).{.foreach.($branches.
1d740 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 as.$branch).{.if.($branch.&&.pre
1d760 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 2a 20 2b 28 5c 53 2b 29 7d 27 2c 20 24 62 72 61 6e 63 68 2c g_match('{^\*.+(\S+)}',.$branch,
1d780 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 .$match)).{.$this->rootIdentifie
1d7a0 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 r.=.$match[1];.break;.}.}.}.}..r
1d7c0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a eturn.$this->rootIdentifier;.}..
1d7e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 ...public.function.getUrl().{.re
1d800 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 turn.$this->url;.}.....public.fu
1d820 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a nction.getSource($identifier).{.
1d840 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 $label.=.array_search($identifie
1d860 72 2c 20 28 61 72 72 61 79 29 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 3f 3a 20 24 69 64 65 6e r,.(array).$this->tags).?:.$iden
1d880 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 tifier;..return.array('type'.=>.
1d8a0 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 'git',.'url'.=>.$this->getUrl(),
1d8c0 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 .'reference'.=>.$label);.}.....p
1d8e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 ublic.function.getDist($identifi
1d900 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 er).{.return.null;.}.....public.
1d920 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 function.getComposerInformation(
1d940 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d $identifier).{.if.(!isset($this-
1d960 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 >infoCache[$identifier])).{.$res
1d980 6f 75 72 63 65 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 3a 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f ource.=.sprintf('%s:composer.jso
1d9a0 6e 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 n',.escapeshellarg($identifier))
1d9c0 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 ;.$this->process->execute(sprint
1d9e0 66 28 27 67 69 74 20 73 68 6f 77 20 25 73 27 2c 20 24 72 65 73 6f 75 72 63 65 29 2c 20 24 63 6f f('git.show.%s',.$resource),.$co
1da00 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 mposer,.$this->repoDir);..if.(!t
1da20 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f rim($composer)).{.return;.}..$co
1da40 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f mposer.=.JsonFile::parseJson($co
1da60 6d 70 6f 73 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 mposer,.$resource);..if.(!isset(
1da80 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f $composer['time'])).{.$this->pro
1daa0 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 67 69 74 20 6c 6f 67 20 2d cess->execute(sprintf('git.log.-
1dac0 31 20 2d 2d 66 6f 72 6d 61 74 3d 25 25 61 74 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 1.--format=%%at.%s',.escapeshell
1dae0 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 arg($identifier)),.$output,.$thi
1db00 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 s->repoDir);.$date.=.new.\DateTi
1db20 6d 65 28 27 40 27 2e 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 me('@'.trim($output));.$composer
1db40 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 ['time'].=.$date->format('Y-m-d.
1db60 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 H:i:s');.}.$this->infoCache[$ide
1db80 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ntifier].=.$composer;.}..return.
1dba0 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d $this->infoCache[$identifier];.}
1dbc0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b .....public.function.getTags().{
1dbe0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 .if.(null.===.$this->tags).{.$th
1dc00 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 74 61 67 27 2c 20 is->process->execute('git.tag',.
1dc20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 6f 75 74 70 75 $output,.$this->repoDir);.$outpu
1dc40 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 t.=.$this->process->splitLines($
1dc60 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 6f 75 74 70 75 74 20 3f output);.$this->tags.=.$output.?
1dc80 20 61 72 72 61 79 5f 63 6f 6d 62 69 6e 65 28 24 6f 75 74 70 75 74 2c 20 24 6f 75 74 70 75 74 29 .array_combine($output,.$output)
1dca0 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 .:.array();.}..return.$this->tag
1dcc0 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e s;.}.....public.function.getBran
1dce0 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 ches().{.if.(null.===.$this->bra
1dd00 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 nches).{.$branches.=.array();..$
1dd20 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e this->process->execute('git.bran
1dd40 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 ch.--no-color.--no-abbrev.-v',.$
1dd60 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 output,.$this->repoDir);.foreach
1dd80 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 .($this->process->splitLines($ou
1dda0 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 tput).as.$branch).{.if.($branch.
1ddc0 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d &&.!preg_match('{^.*[^/]+/HEAD.}
1dde0 27 2c 20 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b ',.$branch)).{.if.(preg_match('{
1de00 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b 3f 2f 29 3f 28 5c 53 2b 29 20 2a 28 ^(?:\*.)?.*(?:[^/.]+?/)?(\S+).*(
1de20 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 [a-f0-9]+)..*$}',.$branch,.$matc
1de40 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 h)).{.$branches[$match[1]].=.$ma
1de60 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d tch[2];.}.}.}..$this->branches.=
1de80 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 .$branches;.}..return.$this->bra
1dea0 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 nches;.}.....public.static.funct
1dec0 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 75 ion.supports(IOInterface.$io,.$u
1dee0 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 rl,.$deep.=.false).{.if.(preg_ma
1df00 74 63 68 28 27 23 28 5e 67 69 74 3a 2f 2f 7c 5c 2e 67 69 74 24 7c 67 69 74 40 7c 2f 2f 67 69 74 tch('#(^git://|\.git$|git@|//git
1df20 5c 2e 7c 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 \.|//github.com/)#i',.$url)).{.r
1df40 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c eturn.true;.}....if.(static::isL
1df60 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 ocalUrl($url)).{.$process.=.new.
1df80 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 ProcessExecutor();.$url.=.str_re
1dfa0 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 75 72 6c 29 3b 0a 0a 20 69 66 place('file://',.'',.$url);...if
1dfc0 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 74 61 67 27 2c 20 24 .($process->execute('git.tag',.$
1dfe0 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 output,.$url).===.0).{.return.tr
1e000 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 ue;.}.}..if.(!$deep).{.return.fa
1e020 6c 73 65 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 lse;.}....return.false;.}.}.<?ph
1e040 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
1e060 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 Repository\Vcs;..use.Composer\Ca
1e080 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b che;.use.Composer\Json\JsonFile;
1e0a0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 .use.Composer\Util\ProcessExecut
1e0c0 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d or;.use.Composer\Util\Filesystem
1e0e0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 ;.use.Composer\Util\Svn.as.SvnUt
1e100 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b il;.use.Composer\IO\IOInterface;
1e120 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f .use.Composer\Downloader\Transpo
1e140 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 72 69 76 65 rtException;......class.SvnDrive
1e160 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 r.extends.VcsDriver.{.protected.
1e180 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 55 72 6c 3b 0a 70 72 6f 74 $cache;.protected.$baseUrl;.prot
1e1a0 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 ected.$tags;.protected.$branches
1e1c0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 ;.protected.$infoCache.=.array()
1e1e0 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 75 74 69 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ;.....private.$util;.....public.
1e200 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 function.initialize().{.$this->u
1e220 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d 28 73 65 6c 66 rl.=.$this->baseUrl.=.rtrim(self
1e240 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 ::normalizeUrl($this->url),.'/')
1e260 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 ;..if.(false.!==.($pos.=.strrpos
1e280 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 27 2f 74 72 75 6e 6b 27 29 29 29 20 7b 0a 24 74 68 69 73 ($this->url,.'/trunk'))).{.$this
1e2a0 2d 3e 62 61 73 65 55 72 6c 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 ->baseUrl.=.substr($this->url,.0
1e2c0 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 ,.$pos);.}..$this->cache.=.new.C
1e2e0 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 ache($this->io,.$this->config->g
1e300 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 61 63 68 65 2e 73 76 6e 2f 27 2e 70 72 65 67 5f 72 65 et('home').'/cache.svn/'.preg_re
1e320 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 place('{[^a-z0-9.]}i',.'-',.$thi
1e340 73 2d 3e 62 61 73 65 55 72 6c 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 s->baseUrl));..$this->getBranche
1e360 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 s();.$this->getTags();.}.....pub
1e380 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 lic.function.getRootIdentifier()
1e3a0 0a 7b 0a 72 65 74 75 72 6e 20 27 74 72 75 6e 6b 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .{.return.'trunk';.}.....public.
1e3c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 function.getUrl().{.return.$this
1e3e0 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ->url;.}.....public.function.get
1e400 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 Source($identifier).{.return.arr
1e420 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 73 76 6e 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 ay('type'.=>.'svn',.'url'.=>.$th
1e440 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 is->baseUrl,.'reference'.=>.$ide
1e460 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ntifier);.}.....public.function.
1e480 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 getDist($identifier).{.return.nu
1e4a0 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d ll;.}.....public.function.getCom
1e4c0 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a poserInformation($identifier).{.
1e4e0 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 27 2f 27 20 2e 20 74 72 69 6d 28 24 69 64 65 6e 74 69 $identifier.=.'/'...trim($identi
1e500 66 69 65 72 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 0a 69 66 20 28 24 72 65 73 20 3d 20 24 74 fier,.'/')...'/';..if.($res.=.$t
1e520 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a his->cache->read($identifier.'.j
1e540 73 6f 6e 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 son')).{.$this->infoCache[$ident
1e560 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 ifier].=.JsonFile::parseJson($re
1e580 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 s);.}..if.(!isset($this->infoCac
1e5a0 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 he[$identifier])).{.preg_match('
1e5c0 7b 5e 28 2e 2b 3f 29 28 40 5c 64 2b 29 3f 2f 24 7d 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 2c {^(.+?)(@\d+)?/$}',.$identifier,
1e5e0 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 32 5d 29 29 .$match);.if.(!empty($match[2]))
1e600 20 7b 0a 24 70 61 74 68 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 72 65 76 20 3d 20 24 6d 61 .{.$path.=.$match[1];.$rev.=.$ma
1e620 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 27 27 3b 0a 24 72 65 tch[2];.}.else.{.$path.=.'';.$re
1e640 76 20 3d 20 27 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 70 61 v.=.'';.}..try.{.$resource.=.$pa
1e660 74 68 2e 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 th.'composer.json';.$output.=.$t
1e680 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 63 61 74 27 2c 20 24 74 68 69 73 2d 3e 62 his->execute('svn.cat',.$this->b
1e6a0 61 73 65 55 72 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 69 66 20 28 aseUrl...$resource...$rev);.if.(
1e6c0 21 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 63 61 !trim($output)).{.return;.}.}.ca
1e6e0 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 tch.(\RuntimeException.$e).{.thr
1e700 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 ow.new.TransportException($e->ge
1e720 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e tMessage());.}..$composer.=.Json
1e740 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e File::parseJson($output,.$this->
1e760 62 61 73 65 55 72 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 0a 69 66 baseUrl...$resource...$rev);..if
1e780 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 .(!isset($composer['time'])).{.$
1e7a0 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 69 6e 66 output.=.$this->execute('svn.inf
1e7c0 6f 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 70 61 74 68 20 2e 20 24 72 65 o',.$this->baseUrl...$path...$re
1e7e0 76 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c v);.foreach.($this->process->spl
1e800 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 itLines($output).as.$line).{.if.
1e820 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 4c 61 73 74 20 43 68 61 ($line.&&.preg_match('{^Last.Cha
1e840 6e 67 65 64 20 44 61 74 65 3a 20 28 5b 5e 28 5d 2b 29 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 nged.Date:.([^(]+)}',.$line,.$ma
1e860 74 63 68 29 29 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d tch)).{.$date.=.new.\DateTime($m
1e880 61 74 63 68 5b 31 5d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 atch[1]);.$composer['time'].=.$d
1e8a0 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 62 72 65 61 ate->format('Y-m-d.H:i:s');.brea
1e8c0 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 k;.}.}.}..$this->cache->write($i
1e8e0 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 dentifier.'.json',.json_encode($
1e900 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 composer));.$this->infoCache[$id
1e920 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e entifier].=.$composer;.}..return
1e940 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a .$this->infoCache[$identifier];.
1e960 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a }.....public.function.getTags().
1e980 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 {.if.(null.===.$this->tags).{.$t
1e9a0 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 his->tags.=.array();..$output.=.
1e9c0 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 $this->execute('svn.ls.--verbose
1e9e0 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 74 61 67 73 27 29 3b 0a 69 66 ',.$this->baseUrl...'/tags');.if
1ea00 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f .($output).{.foreach.($this->pro
1ea20 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 cess->splitLines($output).as.$li
1ea40 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 ne).{.$line.=.trim($line);.if.($
1ea60 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a line.&&.preg_match('{^\s*(\S+).*
1ea80 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a ?(\S+)\s*$}',.$line,.$match)).{.
1eaa0 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d if.(isset($match[1]).&&.isset($m
1eac0 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 atch[2]).&&.$match[2].!==.'./').
1eae0 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 {.$this->tags[rtrim($match[2],.'
1eb00 2f 27 29 5d 20 3d 20 27 2f 74 61 67 73 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 40 27 2e 24 6d /')].=.'/tags/'.$match[2].'@'.$m
1eb20 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 atch[1];.}.}.}.}.}..return.$this
1eb40 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ->tags;.}.....public.function.ge
1eb60 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 tBranches().{.if.(null.===.$this
1eb80 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 ->branches).{.$this->branches.=.
1eba0 61 72 72 61 79 28 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 array();..$output.=.$this->execu
1ebc0 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 te('svn.ls.--verbose',.$this->ba
1ebe0 73 65 55 72 6c 20 2e 20 27 2f 27 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 seUrl...'/');.if.($output).{.for
1ec00 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 each.($this->process->splitLines
1ec20 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 ($output).as.$line).{.$line.=.tr
1ec40 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 im($line);.if.($line.&&.preg_mat
1ec60 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c ch('{^\s*(\S+).*?(\S+)\s*$}',.$l
1ec80 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 ine,.$match)).{.if.(isset($match
1eca0 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 [1]).&&.isset($match[2]).&&.$mat
1ecc0 63 68 5b 32 5d 20 3d 3d 3d 20 27 74 72 75 6e 6b 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 ch[2].===.'trunk/').{.$this->bra
1ece0 6e 63 68 65 73 5b 27 74 72 75 6e 6b 27 5d 20 3d 20 27 2f 74 72 75 6e 6b 2f 40 27 2e 24 6d 61 74 nches['trunk'].=.'/trunk/@'.$mat
1ed00 63 68 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 6f 75 74 ch[1];.break;.}.}.}.}.unset($out
1ed20 70 75 74 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 put);..$output.=.$this->execute(
1ed40 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 'svn.ls.--verbose',.$this->baseU
1ed60 72 6c 20 2e 20 27 2f 62 72 61 6e 63 68 65 73 27 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 rl...'/branches');.if.($output).
1ed80 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 {.foreach.($this->process->split
1eda0 4c 69 6e 65 73 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b Lines(trim($output)).as.$line).{
1edc0 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 .$line.=.trim($line);.if.($line.
1ede0 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b &&.preg_match('{^\s*(\S+).*?(\S+
1ee00 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 )\s*$}',.$line,.$match)).{.if.(i
1ee20 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b sset($match[1]).&&.isset($match[
1ee40 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a 24 74 68 2]).&&.$match[2].!==.'./').{.$th
1ee60 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f is->branches[rtrim($match[2],.'/
1ee80 27 29 5d 20 3d 20 27 2f 62 72 61 6e 63 68 65 73 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 40 27 ')].=.'/branches/'.$match[2].'@'
1eea0 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 .$match[1];.}.}.}.}.}..return.$t
1eec0 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 his->branches;.}.....public.stat
1eee0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 ic.function.supports(IOInterface
1ef00 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 75 72 .$io,.$url,.$deep.=.false).{.$ur
1ef20 6c 20 3d 20 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 3b 0a 69 66 l.=.self::normalizeUrl($url);.if
1ef40 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 73 76 6e 3a 2f 2f 7c 5e 73 76 6e 5c 2b 73 73 .(preg_match('#(^svn://|^svn\+ss
1ef60 68 3a 2f 2f 7c 73 76 6e 5c 2e 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 h://|svn\.)#i',.$url)).{.return.
1ef80 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 64 65 65 70 20 26 26 20 21 73 74 61 74 69 63 true;.}....if.(!$deep.&&.!static
1efa0 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c ::isLocalUrl($url)).{.return.fal
1efc0 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 se;.}..$processExecutor.=.new.Pr
1efe0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 ocessExecutor();..$exit.=.$proce
1f000 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 0a 22 73 76 6e 20 69 6e 66 6f 20 2d ssExecutor->execute(."svn.info.-
1f020 2d 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 7b 24 75 72 6c 7d 22 2c 0a 24 69 67 6e 6f 72 -non-interactive.{$url}",.$ignor
1f040 65 64 4f 75 74 70 75 74 0a 29 3b 0a 0a 69 66 20 28 24 65 78 69 74 20 3d 3d 3d 20 30 29 20 7b 0a edOutput.);..if.($exit.===.0).{.
1f060 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 ..return.true;.}..if.(false.!==.
1f080 73 74 72 69 70 6f 73 28 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 67 65 74 45 72 72 stripos($processExecutor->getErr
1f0a0 6f 72 4f 75 74 70 75 74 28 29 2c 20 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 66 61 69 6c 65 orOutput(),.'authorization.faile
1f0c0 64 3a 27 29 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 d:')).{.....return.true;.}..retu
1f0e0 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 rn.false;.}.........protected.st
1f100 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 atic.function.normalizeUrl($url)
1f120 0a 7b 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 69 66 20 28 24 .{.$fs.=.new.Filesystem();.if.($
1f140 66 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 fs->isAbsolutePath($url)).{.retu
1f160 72 6e 20 27 66 69 6c 65 3a 2f 2f 27 20 2e 20 73 74 72 74 72 28 24 75 72 6c 2c 20 27 5c 5c 27 2c rn.'file://'...strtr($url,.'\\',
1f180 20 27 2f 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .'/');.}..return.$url;.}........
1f1a0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 ...protected.function.execute($c
1f1c0 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 ommand,.$url).{.if.(null.===.$th
1f1e0 69 73 2d 3e 75 74 69 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 74 69 6c 20 3d 20 6e 65 77 20 53 76 is->util).{.$this->util.=.new.Sv
1f200 6e 55 74 69 6c 28 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c nUtil($this->baseUrl,.$this->io,
1f220 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 .$this->process);.}..try.{.retur
1f240 6e 20 24 74 68 69 73 2d 3e 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c n.$this->util->execute($command,
1f260 20 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 .$url);.}.catch.(\RuntimeExcepti
1f280 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 on.$e).{.throw.new.\RuntimeExcep
1f2a0 74 69 6f 6e 28 0a 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 tion(.'Repository.'.$this->url.'
1f2c0 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 70 72 6f 63 65 73 73 65 64 2c 20 27 2e 24 65 2d 3e 67 .could.not.be.processed,.'.$e->g
1f2e0 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a etMessage().);.}.}.}.<?php......
1f300 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 ......namespace.Composer\Reposit
1f320 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 ory\Vcs;..use.Composer\IO\IOInte
1f340 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 56 63 73 44 72 69 76 65 72 49 6e rface;.....interface.VcsDriverIn
1f360 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 terface.{....public.function.ini
1f380 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tialize();........public.functio
1f3a0 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 n.getComposerInformation($identi
1f3c0 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 fier);.......public.function.get
1f3e0 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 RootIdentifier();.......public.f
1f400 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 unction.getBranches();.......pub
1f420 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 lic.function.getTags();......pub
1f440 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 lic.function.getDist($identifier
1f460 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 );......public.function.getSourc
1f480 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e e($identifier);.......public.fun
1f4a0 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ction.getUrl();.........public.f
1f4c0 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e 74 69 66 unction.hasComposerFile($identif
1f4e0 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e ier);..........public.static.fun
1f500 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 ction.supports(IOInterface.$io,.
1f520 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a $url,.$deep.=.false);.}.<?php...
1f540 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f .........namespace.Composer\Repo
1f560 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a sitory\Vcs;..use.Composer\Json\J
1f580 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 sonFile;.use.Composer\Util\Proce
1f5a0 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e ssExecutor;.use.Composer\IO\IOIn
1f5c0 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 72 69 76 65 72 20 65 78 74 65 terface;.....class.HgDriver.exte
1f5e0 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b nds.VcsDriver.{.protected.$tags;
1f600 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 .protected.$branches;.protected.
1f620 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f $rootIdentifier;.protected.$info
1f640 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 Cache.=.array();.....public.func
1f660 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 6d 70 44 69 tion.initialize().{.$this->tmpDi
1f680 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e r.=.$this->config->get('home')..
1f6a0 20 27 2f 63 61 63 68 65 2e 68 67 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b .'/cache.hg/'...preg_replace('{[
1f6c0 5e 61 2d 7a 30 2d 39 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 ^a-z0-9]}i',.'-',.$this->url)...
1f6e0 27 2f 27 3b 0a 0a 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 29 '/';..if.(is_dir($this->tmpDir))
1f700 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e .{.$this->process->execute(sprin
1f720 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 70 75 6c 6c 20 2d 75 27 2c 20 65 73 63 61 70 65 tf('cd.%s.&&.hg.pull.-u',.escape
1f740 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 29 2c 20 24 6f 75 74 70 75 shellarg($this->tmpDir)),.$outpu
1f760 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 74 68 69 t);.}.else.{.$dir.=.dirname($thi
1f780 73 2d 3e 74 6d 70 44 69 72 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b s->tmpDir);.if.(!is_dir($dir)).{
1f7a0 0a 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 .mkdir($dir,.0777,.true);.}.$thi
1f7c0 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 s->process->execute(sprintf('cd.
1f7e0 25 73 20 26 26 20 68 67 20 63 6c 6f 6e 65 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 %s.&&.hg.clone.%s.%s',.escapeshe
1f800 6c 6c 61 72 67 28 24 64 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 llarg($dir),.escapeshellarg($thi
1f820 73 2d 3e 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 s->url),.escapeshellarg($this->t
1f840 6d 70 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 mpDir)),.$output);.}..$this->get
1f860 54 61 67 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a Tags();.$this->getBranches();.}.
1f880 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 ....public.function.getRootIdent
1f8a0 69 66 69 65 72 28 29 0a 7b 0a 24 74 6d 70 44 69 72 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 ifier().{.$tmpDir.=.escapeshella
1f8c0 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 rg($this->tmpDir);.if.(null.===.
1f8e0 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e $this->rootIdentifier).{.$this->
1f900 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 process->execute(sprintf('cd.%s.
1f920 26 26 20 68 67 20 74 69 70 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 65 7d 22 27 2c 20 &&.hg.tip.--template."{node}"',.
1f940 24 74 6d 70 44 69 72 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 $tmpDir),.$output);.$output.=.$t
1f960 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 his->process->splitLines($output
1f980 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 6f 75 74 70 );.$this->rootIdentifier.=.$outp
1f9a0 75 74 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e ut[0];.}..return.$this->rootIden
1f9c0 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 tifier;.}.....public.function.ge
1f9e0 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a tUrl().{.return.$this->url;.}...
1fa00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 ..public.function.getSource($ide
1fa20 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 ntifier).{.$label.=.array_search
1fa40 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 28 61 72 72 61 79 29 20 24 74 68 69 73 2d 3e 74 61 67 ($identifier,.(array).$this->tag
1fa60 73 29 20 3f 20 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 s).?.:.$identifier;..return.arra
1fa80 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 y('type'.=>.'hg',.'url'.=>.$this
1faa0 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 ->getUrl(),.'reference'.=>.$labe
1fac0 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 l);.}.....public.function.getDis
1fae0 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a t($identifier).{.return.null;.}.
1fb00 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 ....public.function.getComposerI
1fb20 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 nformation($identifier).{.if.(!i
1fb40 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 sset($this->infoCache[$identifie
1fb60 72 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 r])).{.$this->process->execute(s
1fb80 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 63 61 74 20 2d 72 20 25 73 20 63 6f printf('cd.%s.&&.hg.cat.-r.%s.co
1fba0 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 mposer.json',.escapeshellarg($th
1fbc0 69 73 2d 3e 74 6d 70 44 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 is->tmpDir),.escapeshellarg($ide
1fbe0 6e 74 69 66 69 65 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 ntifier)),.$composer);..if.(!tri
1fc00 6d 28 24 63 6f 6d 70 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 m($composer)).{.return;.}..$comp
1fc20 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 oser.=.JsonFile::parseJson($comp
1fc40 6f 73 65 72 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 oser,.$identifier);..if.(!isset(
1fc60 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f $composer['time'])).{.$this->pro
1fc80 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 cess->execute(sprintf('cd.%s.&&.
1fca0 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c 72 66 63 38 32 32 64 hg.log.--template."{date|rfc822d
1fcc0 61 74 65 7d 22 20 2d 72 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 ate}".-r.%s',.escapeshellarg($th
1fce0 69 73 2d 3e 74 6d 70 44 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 is->tmpDir),.escapeshellarg($ide
1fd00 6e 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 ntifier)),.$output);.$date.=.new
1fd20 20 5c 44 61 74 65 54 69 6d 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 24 63 6f 6d 70 .\DateTime(trim($output));.$comp
1fd40 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d oser['time'].=.$date->format('Y-
1fd60 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b m-d.H:i:s');.}.$this->infoCache[
1fd80 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 $identifier].=.$composer;.}..ret
1fda0 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 urn.$this->infoCache[$identifier
1fdc0 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 ];.}.....public.function.getTags
1fde0 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b ().{.if.(null.===.$this->tags).{
1fe00 0a 24 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 .$tags.=.array();..$this->proces
1fe20 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 s->execute(sprintf('cd.%s.&&.hg.
1fe40 74 61 67 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 tags',.escapeshellarg($this->tmp
1fe60 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d Dir)),.$output);.foreach.($this-
1fe80 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 >process->splitLines($output).as
1fea0 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 .$tag).{.if.($tag.&&.preg_match(
1fec0 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 74 61 67 2c '(^([^\s]+)\s+\d+:(.*)$)',.$tag,
1fee0 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 61 67 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 .$match)).{.$tags[$match[1]].=.$
1ff00 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 74 61 67 73 5b 27 74 69 70 27 5d match[2];.}.}.unset($tags['tip']
1ff20 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 74 61 67 73 3b 0a 7d 0a 0a 72 65 74 75 );..$this->tags.=.$tags;.}..retu
1ff40 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e rn.$this->tags;.}.....public.fun
1ff60 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d ction.getBranches().{.if.(null.=
1ff80 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 ==.$this->branches).{.$branches.
1ffa0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 =.array();..$this->process->exec
1ffc0 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 62 72 61 6e 63 68 65 ute(sprintf('cd.%s.&&.hg.branche
1ffe0 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 s',.escapeshellarg($this->tmpDir
20000 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 )),.$output);.foreach.($this->pr
20020 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 ocess->splitLines($output).as.$b
20040 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 ranch).{.if.($branch.&&.preg_mat
20060 63 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 62 ch('(^([^\s]+)\s+\d+:(.*)$)',.$b
20080 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 24 6d 61 74 ranch,.$match)).{.$branches[$mat
200a0 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e ch[1]].=.$match[2];.}.}..$this->
200c0 62 72 61 6e 63 68 65 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 branches.=.$branches;.}..return.
200e0 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 $this->branches;.}.....public.st
20100 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 atic.function.supports(IOInterfa
20120 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 ce.$io,.$url,.$deep.=.false).{.i
20140 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 28 3f 3a 68 74 74 70 73 3f 7c 73 73 68 29 f.(preg_match('#(^(?:https?|ssh)
20160 3a 2f 2f 28 3f 3a 5b 5e 40 5d 40 29 3f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 7c 68 74 74 70 73 ://(?:[^@]@)?bitbucket.org|https
20180 3a 2f 2f 28 3f 3a 2e 2a 3f 29 5c 2e 6b 69 6c 6e 68 67 2e 63 6f 6d 29 23 69 27 2c 20 24 75 72 6c ://(?:.*?)\.kilnhg.com)#i',.$url
201a0 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 )).{.return.true;.}..if.(!$deep)
201c0 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 .{.return.false;.}..$processExec
201e0 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 65 utor.=.new.ProcessExecutor();.$e
20200 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 xit.=.$processExecutor->execute(
20220 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 69 64 65 6e 74 69 66 79 20 25 73 sprintf('cd.%s.&&.hg.identify.%s
20240 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 ',.escapeshellarg(sys_get_temp_d
20260 69 72 28 29 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 29 2c 20 24 69 ir()),.escapeshellarg($url)),.$i
20280 67 6e 6f 72 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 20 3d 3d 3d 20 30 3b 0a 7d 0a gnored);..return.$exit.===.0;.}.
202a0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
202c0 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f poser\Repository\Vcs;..use.Compo
202e0 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f ser\Downloader\TransportExceptio
20300 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 n;.use.Composer\Config;.use.Comp
20320 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 oser\IO\IOInterface;.use.Compose
20340 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 r\Util\ProcessExecutor;.use.Comp
20360 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a oser\Util\RemoteFilesystem;.....
20380 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 72 69 76 65 72 20 69 6d 70 6c 65 ..abstract.class.VcsDriver.imple
203a0 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 ments.VcsDriverInterface.{.prote
203c0 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 72 69 67 69 6e 55 72 6c 3b cted.$url;.protected.$originUrl;
203e0 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 .protected.$io;.protected.$confi
20400 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 g;.protected.$process;.protected
20420 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 69 .$remoteFilesystem;...........fi
20440 6e 61 6c 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 nal.public.function.__construct(
20460 24 75 72 6c 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 $url,.IOInterface.$io,.Config.$c
20480 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 onfig,.ProcessExecutor.$process.
204a0 3d 20 6e 75 6c 6c 2c 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c =.null,.$remoteFilesystem.=.null
204c0 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 75 72 6c 3b 0a 24 74 68 69 73 2d 3e 6f 72 ).{.$this->url.=.$url;.$this->or
204e0 69 67 69 6e 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b iginUrl.=.$url;.$this->io.=.$io;
20500 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d .$this->config.=.$config;.$this-
20520 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 >process.=.$process.?:.new.Proce
20540 73 73 45 78 65 63 75 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 ssExecutor;.$this->remoteFilesys
20560 74 65 6d 20 3d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 tem.=.$remoteFilesystem.?:.new.R
20580 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c emoteFilesystem($io);.}.....publ
205a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 ic.function.hasComposerFile($ide
205c0 6e 74 69 66 69 65 72 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 ntifier).{.try.{.return.(bool).$
205e0 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 this->getComposerInformation($id
20600 65 6e 74 69 66 69 65 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 entifier);.}.catch.(TransportExc
20620 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a eption.$e).{.}..return.false;.}.
20640 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 ........protected.function.getSc
20660 68 65 6d 65 28 29 0a 7b 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f heme().{.if.(extension_loaded('o
20680 70 65 6e 73 73 6c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 27 3b 0a 7d 0a 0a 72 penssl')).{.return.'https';.}..r
206a0 65 74 75 72 6e 20 27 68 74 74 70 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 eturn.'http';.}.........protecte
206c0 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 d.function.getContents($url).{.r
206e0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 eturn.$this->remoteFilesystem->g
20700 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 72 etContents($this->originUrl,.$ur
20720 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 l,.false);.}..protected.static.f
20740 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 unction.isLocalUrl($url).{.retur
20760 6e 20 28 62 6f 6f 6c 29 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 66 69 6c 65 3a 2f 2f 7c n.(bool).preg_match('{^(file://|
20780 2f 7c 5b 61 2d 7a 5d 3a 5b 5c 5c 5c 5c 2f 5d 29 7d 69 27 2c 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a /|[a-z]:[\\\\/])}i',.$url);.}.}.
207a0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
207c0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ser\Repository\Vcs;..use.Compose
207e0 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f r\Json\JsonFile;.use.Composer\IO
20800 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 42 69 74 62 75 63 \IOInterface;.....class.HgBitbuc
20820 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 ketDriver.extends.VcsDriver.{.pr
20840 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 otected.$owner;.protected.$repos
20860 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 itory;.protected.$tags;.protecte
20880 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e d.$branches;.protected.$rootIden
208a0 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 tifier;.protected.$infoCache.=.a
208c0 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 rray();.....public.function.init
208e0 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f ialize().{.preg_match('#^https:/
20900 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f /bitbucket\.org/([^/]+)/([^/]+)/
20920 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 ?$#',.$this->url,.$match);.$this
20940 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f ->owner.=.$match[1];.$this->repo
20960 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 sitory.=.$match[2];.$this->origi
20980 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 nUrl.=.'bitbucket.org';.}.....pu
209a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 blic.function.getRootIdentifier(
209c0 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e ).{.if.(null.===.$this->rootIden
209e0 74 69 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 tifier).{.$resource.=.$this->get
20a00 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 Scheme()...'://api.bitbucket.org
20a20 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 /1.0/repositories/'.$this->owner
20a40 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a .'/'.$this->repository.'/tags';.
20a60 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 $repoData.=.JsonFile::parseJson(
20a80 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 $this->getContents($resource),.$
20aa0 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 resource);.$this->rootIdentifier
20ac0 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 74 69 70 27 5d 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b .=.$repoData['tip']['raw_node'];
20ae0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 .}..return.$this->rootIdentifier
20b00 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 ;.}.....public.function.getUrl()
20b20 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c .{.return.$this->url;.}.....publ
20b40 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 ic.function.getSource($identifie
20b60 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e r).{.$label.=.array_search($iden
20b80 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 tifier,.$this->getTags()).?:.$id
20ba0 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d entifier;..return.array('type'.=
20bc0 3e 20 27 68 67 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 >.'hg',.'url'.=>.$this->getUrl()
20be0 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a ,.'reference'.=>.$label);.}.....
20c00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 public.function.getDist($identif
20c20 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 ier).{.$label.=.array_search($id
20c40 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 24 entifier,.$this->getTags()).?:.$
20c60 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 identifier;.$url.=.$this->getSch
20c80 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 eme()...'://bitbucket.org/'.$thi
20ca0 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 s->owner.'/'.$this->repository.'
20cc0 2f 67 65 74 2f 27 2e 24 6c 61 62 65 6c 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 /get/'.$label.'.zip';..return.ar
20ce0 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 ray('type'.=>.'zip',.'url'.=>.$u
20d00 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 2c 20 27 73 68 61 73 rl,.'reference'.=>.$label,.'shas
20d20 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f um'.=>.'');.}.....public.functio
20d40 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 n.getComposerInformation($identi
20d60 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 fier).{.if.(!isset($this->infoCa
20d80 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d che[$identifier])).{.$resource.=
20da0 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 .$this->getScheme()...'://bitbuc
20dc0 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 ket.org/'.$this->owner.'/'.$this
20de0 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 72 61 77 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 ->repository.'/raw/'.$identifier
20e00 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 .'/composer.json';.$composer.=.$
20e20 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 this->getContents($resource);.if
20e40 20 28 21 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 .(!$composer).{.return;.}..$comp
20e60 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 oser.=.JsonFile::parseJson($comp
20e80 6f 73 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 oser,.$resource);..if.(!isset($c
20ea0 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 omposer['time'])).{.$resource.=.
20ec0 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 $this->getScheme()...'://api.bit
20ee0 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 bucket.org/1.0/repositories/'.$t
20f00 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 his->owner.'/'.$this->repository
20f20 2e 27 2f 63 68 61 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 68 .'/changesets/'.$identifier;.$ch
20f40 61 6e 67 65 73 65 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 angeset.=.JsonFile::parseJson($t
20f60 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 his->getContents($resource),.$re
20f80 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 68 source);.$composer['time'].=.$ch
20fa0 61 6e 67 65 73 65 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 angeset['timestamp'];.}.$this->i
20fc0 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 nfoCache[$identifier].=.$compose
20fe0 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 r;.}..return.$this->infoCache[$i
21000 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f dentifier];.}.....public.functio
21020 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 n.getTags().{.if.(null.===.$this
21040 2d 3e 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 ->tags).{.$resource.=.$this->get
21060 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 Scheme()...'://api.bitbucket.org
21080 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 /1.0/repositories/'.$this->owner
210a0 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a .'/'.$this->repository.'/tags';.
210c0 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 $tagsData.=.JsonFile::parseJson(
210e0 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 $this->getContents($resource),.$
21100 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 resource);.$this->tags.=.array()
21120 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 20 3d 3e 20 ;.foreach.($tagsData.as.$tag.=>.
21140 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5d 20 3d 20 24 64 61 $data).{.$this->tags[$tag].=.$da
21160 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ta['raw_node'];.}.}..return.$thi
21180 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 s->tags;.}.....public.function.g
211a0 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 etBranches().{.if.(null.===.$thi
211c0 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 s->branches).{.$resource.=.$this
211e0 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 ->getScheme()...'://api.bitbucke
21200 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e t.org/1.0/repositories/'.$this->
21220 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 owner.'/'.$this->repository.'/br
21240 61 6e 63 68 65 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a anches';.$branchData.=.JsonFile:
21260 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 :parseJson($this->getContents($r
21280 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 esource),.$resource);.$this->bra
212a0 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 nches.=.array();.foreach.($branc
212c0 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 hData.as.$branch.=>.$data).{.$th
212e0 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 64 61 74 61 5b 27 72 is->branches[$branch].=.$data['r
21300 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 aw_node'];.}.}..return.$this->br
21320 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 anches;.}.....public.static.func
21340 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 tion.supports(IOInterface.$io,.$
21360 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f url,.$deep.=.false).{.if.(!preg_
21380 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f match('#^https://bitbucket\.org/
213a0 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 ([^/]+)/([^/]+)/?$#',.$url)).{.r
213c0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c eturn.false;.}..if.(!extension_l
213e0 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 oaded('openssl')).{.if.($io->isV
21400 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 69 6e 67 erbose()).{.$io->write('Skipping
21420 20 42 69 74 62 75 63 6b 65 74 20 68 67 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e .Bitbucket.hg.driver.for.'.$url.
21440 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 '.because.the.OpenSSL.PHP.extens
21460 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c ion.is.missing.');.}..return.fal
21480 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a se;.}..return.true;.}.}.<?php...
214a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f .........namespace.Composer\Repo
214c0 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 41 sitory;.........class.InstalledA
214e0 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f rrayRepository.extends.ArrayRepo
21500 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 sitory.implements.InstalledRepos
21520 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 itoryInterface.{....public.funct
21540 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ion.write().{.}.....public.funct
21560 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ion.reload().{.}.}.<?php........
21580 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 ....namespace.Composer\Repositor
215a0 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e y;..use.Composer\Downloader\Tran
215c0 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 sportException;.use.Composer\Rep
215e0 6f 73 69 74 6f 72 79 5c 56 63 73 5c 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a ository\Vcs\VcsDriverInterface;.
21600 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 use.Composer\Package\Version\Ver
21620 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 sionParser;.use.Composer\Package
21640 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \Loader\ArrayLoader;.use.Compose
21660 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 r\Package\Loader\LoaderInterface
21680 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 ;.use.Composer\IO\IOInterface;.u
216a0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 63 se.Composer\Config;.....class.Vc
216c0 73 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 sRepository.extends.ArrayReposit
216e0 6f 72 79 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 ory.{.protected.$url;.protected.
21700 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 $packageName;.protected.$verbose
21720 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 ;.protected.$io;.protected.$conf
21740 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 ig;.protected.$versionParser;.pr
21760 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 otected.$type;.protected.$loader
21780 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 ;..public.function.__construct(a
217a0 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 rray.$repoConfig,.IOInterface.$i
217c0 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 61 72 72 61 79 20 24 64 72 69 76 65 72 o,.Config.$config,.array.$driver
217e0 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 3d 20 24 64 72 s.=.null).{.$this->drivers.=.$dr
21800 69 76 65 72 73 20 3f 3a 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 27 20 3d 3e 20 27 43 6f 6d ivers.?:.array(.'github'.=>.'Com
21820 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 48 75 62 44 72 69 76 65 poser\Repository\Vcs\GitHubDrive
21840 72 27 2c 0a 27 67 69 74 2d 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 r',.'git-bitbucket'.=>.'Composer
21860 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 \Repository\Vcs\GitBitbucketDriv
21880 65 72 27 2c 0a 27 67 69 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f er',.'git'.=>.'Composer\Reposito
218a0 72 79 5c 56 63 73 5c 47 69 74 44 72 69 76 65 72 27 2c 0a 27 73 76 6e 27 20 3d 3e 20 27 43 6f 6d ry\Vcs\GitDriver',.'svn'.=>.'Com
218c0 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 53 76 6e 44 72 69 76 65 72 27 2c poser\Repository\Vcs\SvnDriver',
218e0 0a 27 68 67 2d 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 .'hg-bitbucket'.=>.'Composer\Rep
21900 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a ository\Vcs\HgBitbucketDriver',.
21920 27 68 67 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 'hg'.=>.'Composer\Repository\Vcs
21940 5c 48 67 44 72 69 76 65 72 27 2c 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 \HgDriver',.);..$this->url.=.$re
21960 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f poConfig['url'];.$this->io.=.$io
21980 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 ;.$this->type.=.isset($repoConfi
219a0 67 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d g['type']).?.$repoConfig['type']
219c0 20 3a 20 27 76 63 73 27 3b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 24 69 6f 2d 3e .:.'vcs';.$this->verbose.=.$io->
219e0 69 73 56 65 72 62 6f 73 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f isVerbose();.$this->config.=.$co
21a00 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 61 64 nfig;.}..public.function.setLoad
21a20 65 72 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 er(LoaderInterface.$loader).{.$t
21a40 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 his->loader.=.$loader;.}..public
21a60 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 72 69 76 65 72 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 .function.getDriver().{.if.(isse
21a80 74 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d 29 29 20 t($this->drivers[$this->type])).
21aa0 7b 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 69 73 2d {.$class.=.$this->drivers[$this-
21ac0 3e 74 79 70 65 5d 3b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 >type];.$driver.=.new.$class($th
21ae0 69 73 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 is->url,.$this->io,.$this->confi
21b00 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 g);.$driver->initialize();..retu
21b20 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 rn.$driver;.}..foreach.($this->d
21b40 72 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 rivers.as.$driver).{.if.($driver
21b60 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 75 72 6c ::supports($this->io,.$this->url
21b80 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 64 72 69 76 65 72 28 24 74 68 69 73 )).{.$driver.=.new.$driver($this
21ba0 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 ->url,.$this->io,.$this->config)
21bc0 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e ;.$driver->initialize();..return
21be0 20 24 64 72 69 76 65 72 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 .$driver;.}.}..foreach.($this->d
21c00 72 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 rivers.as.$driver).{.if.($driver
21c20 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 75 72 6c ::supports($this->io,.$this->url
21c40 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 64 72 69 76 65 72 ,.true)).{.$driver.=.new.$driver
21c60 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 ($this->url,.$this->io,.$this->c
21c80 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a onfig);.$driver->initialize();..
21ca0 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 return.$driver;.}.}.}..protected
21cc0 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a .function.initialize().{.parent:
21ce0 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 62 6f 73 65 20 3d 20 24 74 68 69 73 :initialize();..$verbose.=.$this
21d00 2d 3e 76 65 72 62 6f 73 65 3b 0a 0a 24 64 72 69 76 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 ->verbose;..$driver.=.$this->get
21d20 44 72 69 76 65 72 28 29 3b 0a 69 66 20 28 21 24 64 72 69 76 65 72 29 20 7b 0a 74 68 72 6f 77 20 Driver();.if.(!$driver).{.throw.
21d40 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4e new.\InvalidArgumentException('N
21d60 6f 20 64 72 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 68 61 6e 64 6c 65 20 56 43 53 20 72 65 70 o.driver.found.to.handle.VCS.rep
21d80 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d ository.'.$this->url);.}..$this-
21da0 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 >versionParser.=.new.VersionPars
21dc0 65 72 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d er;.if.(!$this->loader).{.$this-
21de0 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 24 74 68 69 73 2d >loader.=.new.ArrayLoader($this-
21e00 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 24 64 >versionParser);.}..try.{.if.($d
21e20 72 69 76 65 72 2d 3e 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 64 72 69 76 65 72 2d 3e river->hasComposerFile($driver->
21e40 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 getRootIdentifier())).{.$data.=.
21e60 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 $driver->getComposerInformation(
21e80 24 64 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 29 3b 0a 24 $driver->getRootIdentifier());.$
21ea0 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 21 65 6d 70 74 79 28 24 64 61 74 61 this->packageName.=.!empty($data
21ec0 5b 27 6e 61 6d 65 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6e 75 6c 6c ['name']).?.$data['name'].:.null
21ee0 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 ;.}.}.catch.(\Exception.$e).{.if
21f00 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 .($verbose).{.$this->io->write('
21f20 53 6b 69 70 70 65 64 20 70 61 72 73 69 6e 67 20 27 2e 24 64 72 69 76 65 72 2d 3e 67 65 74 52 6f Skipped.parsing.'.$driver->getRo
21f40 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 2e 27 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 otIdentifier().',.'.$e->getMessa
21f60 67 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 2d 3e 67 65 ge());.}.}..foreach.($driver->ge
21f80 74 54 61 67 73 28 29 20 61 73 20 24 74 61 67 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 tTags().as.$tag.=>.$identifier).
21fa0 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 {.$msg.=.'Reading.composer.json.
21fc0 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 of.<info>'...($this->packageName
21fe0 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d .?:.$this->url)...'</info>.(<com
22000 6d 65 6e 74 3e 27 20 2e 20 24 74 61 67 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 27 3b 0a 69 ment>'...$tag...'</comment>)';.i
22020 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 f.($verbose).{.$this->io->write(
22040 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 $msg);.}.else.{.$this->io->overw
22060 72 69 74 65 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 20 24 74 61 67 20 3d 20 73 rite($msg,.false);.}....$tag.=.s
22080 74 72 5f 72 65 70 6c 61 63 65 28 27 72 65 6c 65 61 73 65 2d 27 2c 20 27 27 2c 20 24 74 61 67 29 tr_replace('release-',.'',.$tag)
220a0 3b 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 54 61 67 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 ;..if.(!$parsedTag.=.$this->vali
220c0 64 61 74 65 54 61 67 28 24 74 61 67 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b dateTag($tag)).{.if.($verbose).{
220e0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 74 61 67 20 27 .$this->io->write('Skipped.tag.'
22100 2e 24 74 61 67 2e 27 2c 20 69 6e 76 61 6c 69 64 20 74 61 67 20 6e 61 6d 65 27 29 3b 0a 7d 0a 63 .$tag.',.invalid.tag.name');.}.c
22120 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 64 61 74 61 20 3d 20 24 ontinue;.}..try.{.if.(!$data.=.$
22140 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 driver->getComposerInformation($
22160 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 identifier)).{.if.($verbose).{.$
22180 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 this->io->write('Skipped.tag.'.$
221a0 74 61 67 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 27 29 3b 0a 7d 0a 63 6f 6e tag.',.no.composer.file');.}.con
221c0 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 76 65 72 tinue;.}....if.(isset($data['ver
221e0 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c sion'])).{.$data['version_normal
22200 69 7a 65 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e ized'].=.$this->versionParser->n
22220 6f 72 6d 61 6c 69 7a 65 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 65 6c ormalize($data['version']);.}.el
22240 73 65 20 7b 0a 0a 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 74 61 67 3b 0a se.{...$data['version'].=.$tag;.
22260 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 $data['version_normalized'].=.$p
22280 61 72 73 65 64 54 61 67 3b 0a 7d 0a 0a 0a 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 arsedTag;.}....$data['version'].
222a0 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 27 =.preg_replace('{[.-]?dev$}i',.'
222c0 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 ',.$data['version']);.$data['ver
222e0 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 sion_normalized'].=.preg_replace
22300 28 27 7b 28 5e 64 65 76 2d 7c 5b 2e 2d 5d 3f 64 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 64 61 ('{(^dev-|[.-]?dev$)}i',.'',.$da
22320 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 0a 20 69 66 ta['version_normalized']);....if
22340 20 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 21 3d .($data['version_normalized'].!=
22360 3d 20 24 70 61 72 73 65 64 54 61 67 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a =.$parsedTag).{.if.($verbose).{.
22380 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e $this->io->write('Skipped.tag.'.
223a0 24 74 61 67 2e 27 2c 20 74 61 67 20 28 27 2e 24 70 61 72 73 65 64 54 61 67 2e 27 29 20 64 6f 65 $tag.',.tag.('.$parsedTag.').doe
223c0 73 20 6e 6f 74 20 6d 61 74 63 68 20 76 65 72 73 69 6f 6e 20 28 27 2e 24 64 61 74 61 5b 27 76 65 s.not.match.version.('.$data['ve
223e0 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 20 69 6e 20 63 6f 6d 70 6f 73 65 rsion_normalized'].').in.compose
22400 72 2e 6a 73 6f 6e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 r.json');.}.continue;.}..if.($ve
22420 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6d 70 6f 72 rbose).{.$this->io->write('Impor
22440 74 69 6e 67 20 74 61 67 20 27 2e 24 74 61 67 2e 27 20 28 27 2e 24 64 61 74 61 5b 27 76 65 72 73 ting.tag.'.$tag.'.('.$data['vers
22460 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d ion_normalized'].')');.}..$this-
22480 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 >addPackage($this->loader->load(
224a0 24 74 68 69 73 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 61 74 61 $this->preProcess($driver,.$data
224c0 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 ,.$identifier)));.}.catch.(\Exce
224e0 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 ption.$e).{.if.($verbose).{.$thi
22500 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 s->io->write('Skipped.tag.'.$tag
22520 2e 27 2c 20 27 2e 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 .',.'.($e.instanceof.TransportEx
22540 63 65 70 74 69 6f 6e 20 3f 20 27 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 ception.?.'no.composer.file.was.
22560 66 6f 75 6e 64 27 20 3a 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 29 3b 0a 7d 0a 63 found'.:.$e->getMessage()));.}.c
22580 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 ontinue;.}.}..$this->io->overwri
225a0 74 65 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 te('',.false);..foreach.($driver
225c0 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 69 ->getBranches().as.$branch.=>.$i
225e0 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d dentifier).{.$msg.=.'Reading.com
22600 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e poser.json.of.<info>'...($this->
22620 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f packageName.?:.$this->url)...'</
22640 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 62 72 61 6e 63 68 20 2e 20 27 3c info>.(<comment>'...$branch...'<
22660 2f 63 6f 6d 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 /comment>)';.if.($verbose).{.$th
22680 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 is->io->write($msg);.}.else.{.$t
226a0 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b his->io->overwrite($msg,.false);
226c0 0a 7d 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e .}..if.(!$parsedBranch.=.$this->
226e0 76 61 6c 69 64 61 74 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 24 validateBranch($branch)).{.if.($
22700 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 verbose).{.$this->io->write('Ski
22720 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 69 6e 76 61 6c 69 64 pped.branch.'.$branch.',.invalid
22740 20 6e 61 6d 65 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 .name');.}.continue;.}..try.{.if
22760 20 28 21 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 .(!$data.=.$driver->getComposerI
22780 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 nformation($identifier)).{.if.($
227a0 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 verbose).{.$this->io->write('Ski
227c0 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 pped.branch.'.$branch.',.no.comp
227e0 6f 73 65 72 20 66 69 6c 65 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 64 oser.file');.}.continue;.}....$d
22800 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 62 72 61 6e 63 68 3b 0a 24 64 61 74 61 5b ata['version'].=.$branch;.$data[
22820 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 42 'version_normalized'].=.$parsedB
22840 72 61 6e 63 68 3b 0a 0a 0a 20 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 ranch;....if.('dev-'.===.substr(
22860 24 70 61 72 73 65 64 42 72 61 6e 63 68 2c 20 30 2c 20 34 29 20 7c 7c 20 27 39 39 39 39 39 39 39 $parsedBranch,.0,.4).||.'9999999
22880 2d 64 65 76 27 20 3d 3d 3d 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 29 20 7b 0a 24 64 61 74 61 -dev'.===.$parsedBranch).{.$data
228a0 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 27 64 65 76 2d 27 20 2e 20 24 64 61 74 61 5b 27 76 65 ['version'].=.'dev-'...$data['ve
228c0 72 73 69 6f 6e 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e rsion'];.}.else.{.$data['version
228e0 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c '].=.preg_replace('{(\.9{7})+}',
22900 20 27 2e 78 27 2c 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 76 .'.x',.$parsedBranch);.}..if.($v
22920 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6d 70 6f erbose).{.$this->io->write('Impo
22940 72 74 69 6e 67 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 20 28 27 2e 24 64 61 74 rting.branch.'.$branch.'.('.$dat
22960 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 a['version'].')');.}..$this->add
22980 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 Package($this->loader->load($thi
229a0 73 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 61 74 61 2c 20 24 69 s->preProcess($driver,.$data,.$i
229c0 64 65 6e 74 69 66 69 65 72 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 dentifier)));.}.catch.(Transport
229e0 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a Exception.$e).{.if.($verbose).{.
22a00 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 $this->io->write('Skipped.branch
22a20 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 .'.$branch.',.no.composer.file.w
22a40 61 73 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 63 61 74 63 68 20 as.found');.}.continue;.}.catch.
22a60 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 (\Exception.$e).{.$this->io->wri
22a80 74 65 28 27 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 te('Skipped.branch.'.$branch.',.
22aa0 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d '.$e->getMessage());.continue;.}
22ac0 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 27 2c 20 66 61 6c .}..$this->io->overwrite('',.fal
22ae0 73 65 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 50 72 6f 63 se);.}..private.function.preProc
22b00 65 73 73 28 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 64 72 69 76 65 72 2c 20 ess(VcsDriverInterface.$driver,.
22b20 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 0a 20 24 64 array.$data,.$identifier).{...$d
22b40 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 ata['name'].=.$this->packageName
22b60 20 3f 3a 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 .?:.$data['name'];..if.(!isset($
22b80 64 61 74 61 5b 27 64 69 73 74 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 20 3d data['dist'])).{.$data['dist'].=
22ba0 20 24 64 72 69 76 65 72 2d 3e 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a .$driver->getDist($identifier);.
22bc0 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b }.if.(!isset($data['source'])).{
22be0 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 53 .$data['source'].=.$driver->getS
22c00 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 ource($identifier);.}..return.$d
22c20 61 74 61 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 ata;.}..private.function.validat
22c40 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 eBranch($branch).{.try.{.return.
22c60 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 $this->versionParser->normalizeB
22c80 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 ranch($branch);.}.catch.(\Except
22ca0 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 ion.$e).{.}..return.false;.}..pr
22cc0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 61 67 28 24 76 65 72 73 ivate.function.validateTag($vers
22ce0 69 6f 6e 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 ion).{.try.{.return.$this->versi
22d00 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d onParser->normalize($version);.}
22d20 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 .catch.(\Exception.$e).{.}..retu
22d40 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e rn.false;.}.}.<?php............n
22d60 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 amespace.Composer\Repository;..u
22d80 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4d 65 6d 6f 72 79 50 61 63 6b 61 67 se.Composer\Package\MemoryPackag
22da0 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c e;.use.Composer\Package\Version\
22dc0 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 61 74 66 6f 72 VersionParser;.....class.Platfor
22de0 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 mRepository.extends.ArrayReposit
22e00 6f 72 79 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c ory.{.protected.function.initial
22e20 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 ize().{.parent::initialize();..$
22e40 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 versionParser.=.new.VersionParse
22e60 72 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 50 48 50 r();..try.{.$prettyVersion.=.PHP
22e80 5f 56 45 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 _VERSION;.$version.=.$versionPar
22ea0 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a ser->normalize($prettyVersion);.
22ec0 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 }.catch.(\UnexpectedValueExcepti
22ee0 6f 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 on.$e).{.$prettyVersion.=.preg_r
22f00 65 70 6c 61 63 65 28 27 23 5e 28 2e 2b 3f 29 28 2d 2e 2b 29 3f 24 23 27 2c 20 27 24 31 27 2c 20 eplace('#^(.+?)(-.+)?$#',.'$1',.
22f20 50 48 50 5f 56 45 52 53 49 4f 4e 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f PHP_VERSION);.$version.=.$versio
22f40 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f nParser->normalize($prettyVersio
22f60 6e 29 3b 0a 7d 0a 0a 24 70 68 70 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 n);.}..$php.=.new.MemoryPackage(
22f80 27 70 68 70 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 'php',.$version,.$prettyVersion)
22fa0 3b 0a 24 70 68 70 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 50 48 50 20 ;.$php->setDescription('The.PHP.
22fc0 69 6e 74 65 72 70 72 65 74 65 72 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 interpreter');.parent::addPackag
22fe0 65 28 24 70 68 70 29 3b 0a 0a 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 3d 20 67 65 e($php);..$loadedExtensions.=.ge
23000 74 5f 6c 6f 61 64 65 64 5f 65 78 74 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 t_loaded_extensions();....foreac
23020 68 20 28 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 61 73 20 24 6e 61 6d 65 29 20 7b h.($loadedExtensions.as.$name).{
23040 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 73 74 61 6e .if.(in_array($name,.array('stan
23060 64 61 72 64 27 2c 20 27 43 6f 72 65 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a dard',.'Core'))).{.continue;.}..
23080 24 72 65 66 6c 45 78 74 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 65 6e 73 $reflExt.=.new.\ReflectionExtens
230a0 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e ion($name);.try.{.$prettyVersion
230c0 20 3d 20 24 72 65 66 6c 45 78 74 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 76 65 72 73 .=.$reflExt->getVersion();.$vers
230e0 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 ion.=.$versionParser->normalize(
23100 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 $prettyVersion);.}.catch.(\Unexp
23120 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 ectedValueException.$e).{.$prett
23140 79 56 65 72 73 69 6f 6e 20 3d 20 27 30 27 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 yVersion.=.'0';.$version.=.$vers
23160 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 ionParser->normalize($prettyVers
23180 69 6f 6e 29 3b 0a 7d 0a 0a 24 65 78 74 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 ion);.}..$ext.=.new.MemoryPackag
231a0 65 28 27 65 78 74 2d 27 2e 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 e('ext-'.$name,.$version,.$prett
231c0 79 56 65 72 73 69 6f 6e 29 3b 0a 24 65 78 74 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 yVersion);.$ext->setDescription(
231e0 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 27 29 3b 0a 'The.'.$name.'.PHP.extension');.
23200 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 65 78 74 29 3b 0a 7d 0a 0a 0a 20 0a parent::addPackage($ext);.}.....
23220 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 61 73 ...foreach.($loadedExtensions.as
23240 20 24 6e 61 6d 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6e 61 6d 65 29 20 7b 0a 63 61 73 65 20 .$name).{.switch.($name).{.case.
23260 27 63 75 72 6c 27 3a 0a 24 63 75 72 6c 56 65 72 73 69 6f 6e 20 3d 20 63 75 72 6c 5f 76 65 72 73 'curl':.$curlVersion.=.curl_vers
23280 69 6f 6e 28 29 3b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 63 75 72 6c 56 65 72 ion();.$prettyVersion.=.$curlVer
232a0 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 sion['version'];.break;..case.'i
232c0 63 6f 6e 76 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 49 43 4f 4e 56 5f 56 45 conv':.$prettyVersion.=.ICONV_VE
232e0 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6c 69 62 78 6d 6c 27 3a 0a 24 70 RSION;.break;..case.'libxml':.$p
23300 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 42 58 4d 4c 5f 44 4f 54 54 45 44 5f 56 45 52 rettyVersion.=.LIBXML_DOTTED_VER
23320 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6f 70 65 6e 73 73 6c 27 3a 0a 24 70 SION;.break;..case.'openssl':.$p
23340 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c rettyVersion.=.preg_replace_call
23360 62 61 63 6b 28 27 7b 5e 28 3f 3a 4f 70 65 6e 53 53 4c 5c 73 2a 29 3f 28 5b 30 2d 39 2e 5d 2b 29 back('{^(?:OpenSSL\s*)?([0-9.]+)
23380 28 5b 61 2d 7a 5d 3f 29 2e 2a 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 ([a-z]?).*}',.function.($match).
233a0 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 28 65 6d 70 74 79 28 24 6d 61 74 {.return.$match[1]...(empty($mat
233c0 63 68 5b 32 5d 29 20 3f 20 27 27 20 3a 20 27 2e 27 2e 28 6f 72 64 28 24 6d 61 74 63 68 5b 32 5d ch[2]).?.''.:.'.'.(ord($match[2]
233e0 29 20 2d 20 39 36 29 29 3b 0a 7d 2c 20 4f 50 45 4e 53 53 4c 5f 56 45 52 53 49 4f 4e 5f 54 45 58 ).-.96));.},.OPENSSL_VERSION_TEX
23400 54 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 63 72 65 27 3a 0a 24 70 72 65 74 74 79 T);.break;..case.'pcre':.$pretty
23420 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 53 2b 29 2e Version.=.preg_replace('{^(\S+).
23440 2a 7d 27 2c 20 27 24 31 27 2c 20 50 43 52 45 5f 56 45 52 53 49 4f 4e 29 3b 0a 62 72 65 61 6b 3b *}',.'$1',.PCRE_VERSION);.break;
23460 0a 0a 63 61 73 65 20 27 75 75 69 64 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 ..case.'uuid':.$prettyVersion.=.
23480 70 68 70 76 65 72 73 69 6f 6e 28 27 75 75 69 64 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 phpversion('uuid');.break;..case
234a0 20 27 78 73 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 42 58 53 4c 54 .'xsl':.$prettyVersion.=.LIBXSLT
234c0 5f 44 4f 54 54 45 44 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 _DOTTED_VERSION;.break;..default
234e0 3a 0a 0a 20 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 76 65 72 73 69 6f :...continue.2;.}..try.{.$versio
23500 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 n.=.$versionParser->normalize($p
23520 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 rettyVersion);.}.catch.(\Unexpec
23540 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 tedValueException.$e).{.continue
23560 3b 0a 7d 0a 0a 24 6c 69 62 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 27 6c ;.}..$lib.=.new.MemoryPackage('l
23580 69 62 2d 27 2e 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 ib-'.$name,.$version,.$prettyVer
235a0 73 69 6f 6e 29 3b 0a 24 6c 69 62 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 sion);.$lib->setDescription('The
235c0 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 6c 69 62 72 61 72 79 27 29 3b 0a 70 61 72 65 6e 74 .'.$name.'.PHP.library');.parent
235e0 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 6c 69 62 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ::addPackage($lib);.}.}.}.<?php.
23600 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 ...........namespace.Composer\Re
23620 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 46 pository;.......class.InstalledF
23640 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 46 69 6c 65 ilesystemRepository.extends.File
23660 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 systemRepository.implements.Inst
23680 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 alledRepositoryInterface.{.}.<?p
236a0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
236c0 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \Repository;..use.Composer\Packa
236e0 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 ge\PackageInterface;.......class
23700 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 .CompositeRepository.implements.
23720 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 70 72 69 76 61 74 RepositoryInterface.{.....privat
23740 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e e.$repositories;......public.fun
23760 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 73 69 74 ction.__construct(array.$reposit
23780 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 ories).{.$this->repositories.=.$
237a0 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e repositories;.}.......public.fun
237c0 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e ction.getRepositories().{.return
237e0 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c .$this->repositories;.}.....publ
23800 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e ic.function.hasPackage(PackageIn
23820 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 terface.$package).{.foreach.($th
23840 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 is->repositories.as.$repository)
23860 20 7b 0a 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 .{..if.($repository->hasPackage(
23880 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 $package)).{.return.true;.}.}..r
238a0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eturn.false;.}.....public.functi
238c0 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a on.findPackage($name,.$version).
238e0 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 {.foreach.($this->repositories.a
23900 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 s.$repository).{..$package.=.$re
23920 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 pository->findPackage($name,.$ve
23940 72 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b rsion);.if.(null.!==.$package).{
23960 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 .return.$package;.}.}..return.nu
23980 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 ll;.}.....public.function.findPa
239a0 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b ckages($name,.$version.=.null).{
239c0 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 .$packages.=.array();.foreach.($
239e0 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 this->repositories.as.$repositor
23a00 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d y).{..$packages[].=.$repository-
23a20 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a >findPackages($name,.$version);.
23a40 7d 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 }..return.call_user_func_array('
23a60 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a array_merge',.$packages);.}.....
23a80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a public.function.getPackages().{.
23aa0 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 $packages.=.array();.foreach.($t
23ac0 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 his->repositories.as.$repository
23ae0 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e ).{..$packages[].=.$repository->
23b00 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 getPackages();.}..return.call_us
23b20 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 er_func_array('array_merge',.$pa
23b40 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 ckages);.}.....public.function.r
23b60 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 emovePackage(PackageInterface.$p
23b80 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 ackage).{.foreach.($this->reposi
23ba0 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 72 65 70 6f 73 tories.as.$repository).{..$repos
23bc0 69 74 6f 72 79 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a itory->removePackage($package);.
23be0 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a }.}.....public.function.count().
23c00 7b 0a 24 74 6f 74 61 6c 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 {.$total.=.0;.foreach.($this->re
23c20 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 74 positories.as.$repository).{..$t
23c40 6f 74 61 6c 20 2b 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 63 6f 75 6e 74 28 29 3b 0a 7d 0a otal.+=.$repository->count();.}.
23c60 0a 72 65 74 75 72 6e 20 24 74 6f 74 61 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$total;.}......public.fu
23c80 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 nction.addRepository(RepositoryI
23ca0 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 nterface.$repository).{.$this->r
23cc0 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 7d epositories[].=.$repository;.}.}
23ce0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
23d00 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 oser\Repository;.........interfa
23d20 63 65 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 ce.InstalledRepositoryInterface.
23d40 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 extends.WritableRepositoryInterf
23d60 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ace.{.}.<?php............namespa
23d80 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d ce.Composer\Repository;..use.Com
23da0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 poser\Package\Loader\ArrayLoader
23dc0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e ;.use.Composer\Package\PackageIn
23de0 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 terface;.use.Composer\Json\JsonF
23e00 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d ile;.use.Composer\Cache;.use.Com
23e20 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f poser\Config;.use.Composer\IO\IO
23e40 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d Interface;.use.Composer\Util\Rem
23e60 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 oteFilesystem;.....class.Compose
23e80 72 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 rRepository.extends.ArrayReposit
23ea0 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 ory.implements.NotifiableReposit
23ec0 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 oryInterface.{.protected.$config
23ee0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b ;.protected.$url;.protected.$io;
23f00 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 .protected.$packages;.protected.
23f20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 66 79 55 72 6c 3b 0a 0a 70 $cache;.protected.$notifyUrl;..p
23f40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 ublic.function.__construct(array
23f60 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 .$repoConfig,.IOInterface.$io,.C
23f80 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 onfig.$config).{.if.(!preg_match
23fa0 28 27 7b 5e 5c 77 2b 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d ('{^\w+://}',.$repoConfig['url']
23fc0 29 29 20 7b 0a 0a 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 68 74 74 )).{...$repoConfig['url'].=.'htt
23fe0 70 3a 2f 2f 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 24 72 65 70 p://'.$repoConfig['url'];.}.$rep
24000 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 72 74 72 69 6d 28 24 72 65 70 6f 43 6f 6e 66 oConfig['url'].=.rtrim($repoConf
24020 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 ig['url'],.'/');.if.(function_ex
24040 69 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f ists('filter_var').&&.version_co
24060 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 33 27 2c 20 27 3e 3d 27 mpare(PHP_VERSION,.'5.3.3',.'>='
24080 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 ).&&.!filter_var($repoConfig['ur
240a0 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c 29 29 20 7b 0a 74 68 72 l'],.FILTER_VALIDATE_URL)).{.thr
240c0 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e ow.new.\UnexpectedValueException
240e0 28 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 20 43 6f 6d 70 6f 73 65 72 ('Invalid.url.given.for.Composer
24100 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 .repository:.'.$repoConfig['url'
24120 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a ]);.}..$this->config.=.$config;.
24140 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b $this->url.=.$repoConfig['url'];
24160 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d .$this->io.=.$io;.$this->cache.=
24180 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f .new.Cache($io,.$config->get('ho
241a0 6d 65 27 29 2e 27 2f 63 61 63 68 65 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e me').'/cache/'.preg_replace('{[^
241c0 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 3b 0a a-z0-9.]}i',.'-',.$this->url));.
241e0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 }.....public.function.notifyInst
24200 61 6c 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b all(PackageInterface.$package).{
24220 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 7c 7c 20 21 24 74 68 69 73 .if.(!$this->notifyUrl.||.!$this
24240 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c ->config->get('notify-on-install
24260 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 ')).{.return;.}....$url.=.str_re
24280 70 6c 61 63 65 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 place('%package%',.$package->get
242a0 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 29 3b PrettyName(),.$this->notifyUrl);
242c0 0a 0a 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 ..$params.=.array(.'version'.=>.
242e0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 27 76 $package->getPrettyVersion(),.'v
24300 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e ersion_normalized'.=>.$package->
24320 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 24 6f 70 74 73 20 3d 20 61 72 72 61 79 28 27 getVersion(),.);.$opts.=.array('
24340 68 74 74 70 27 20 3d 3e 0a 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 http'.=>.array(.'method'.=>.'POS
24360 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 27 43 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 20 61 T',.'header'.=>.'Content-type:.a
24380 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 pplication/x-www-form-urlencoded
243a0 27 2c 0a 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 68 74 74 70 5f 62 75 69 6c 64 5f 71 75 65 72 79 ',.'content'.=>.http_build_query
243c0 28 24 70 61 72 61 6d 73 2c 20 27 27 2c 20 27 26 27 29 2c 0a 27 74 69 6d 65 6f 75 74 27 20 3d 3e ($params,.'',.'&'),.'timeout'.=>
243e0 20 33 2c 0a 29 0a 29 3b 0a 0a 24 63 6f 6e 74 65 78 74 20 3d 20 73 74 72 65 61 6d 5f 63 6f 6e 74 .3,.).);..$context.=.stream_cont
24400 65 78 74 5f 63 72 65 61 74 65 28 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e ext_create($opts);.@file_get_con
24420 74 65 6e 74 73 28 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 78 74 29 3b 0a 7d 0a tents($url,.false,.$context);.}.
24440 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 .protected.function.initialize()
24460 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 69 66 20 28 21 65 .{.parent::initialize();..if.(!e
24480 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 27 68 xtension_loaded('openssl').&&.'h
244a0 74 74 70 73 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 ttps'.===.substr($this->url,.0,.
244c0 35 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 5)).{.throw.new.\RuntimeExceptio
244e0 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 n('You.must.enable.the.openssl.e
24500 78 74 65 6e 73 69 6f 6e 20 69 6e 20 79 6f 75 72 20 70 68 70 2e 69 6e 69 20 74 6f 20 6c 6f 61 64 xtension.in.your.php.ini.to.load
24520 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b .information.from.'.$this->url);
24540 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 .}..try.{.$json.=.new.JsonFile($
24560 74 68 69 73 2d 3e 75 72 6c 2e 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 6e 65 77 20 this->url.'/packages.json',.new.
24580 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 64 RemoteFilesystem($this->io));.$d
245a0 61 74 61 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 ata.=.$json->read();..if.(!empty
245c0 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 29 29 20 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d ($data['notify'])).{.if.('/'.===
245e0 20 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 5b 30 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f .$data['notify'][0]).{.$this->no
24600 74 69 66 79 55 72 6c 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 68 74 74 70 73 3f tifyUrl.=.preg_replace('{(https?
24620 3a 2f 2f 5b 5e 2f 5d 2b 29 2e 2a 7d 69 27 2c 20 27 24 31 27 20 2e 20 24 64 61 74 61 5b 27 6e 6f ://[^/]+).*}i',.'$1'...$data['no
24640 74 69 66 79 27 5d 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 tify'],.$this->url);.}.else.{.$t
24660 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d his->notifyUrl.=.$data['notify']
24680 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 27 70 61 63 6b ;.}.}..$this->cache->write('pack
246a0 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 29 3b ages.json',.json_encode($data));
246c0 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 .}.catch.(\Exception.$e).{.if.($
246e0 63 6f 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 27 70 contents.=.$this->cache->read('p
24700 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 ackages.json')).{.$this->io->wri
24720 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c te('<warning>'.$this->url.'.coul
24740 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 d.not.be.loaded,.package.informa
24760 74 69 6f 6e 20 77 61 73 20 6c 6f 61 64 65 64 20 66 72 6f 6d 20 74 68 65 20 6c 6f 63 61 6c 20 63 tion.was.loaded.from.the.local.c
24780 61 63 68 65 20 61 6e 64 20 6d 61 79 20 62 65 20 6f 75 74 20 6f 66 20 64 61 74 65 3c 2f 77 61 72 ache.and.may.be.out.of.date</war
247a0 6e 69 6e 67 3e 27 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 63 6f ning>');.$data.=.json_decode($co
247c0 6e 74 65 6e 74 73 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 24 65 ntents,.true);.}.else.{.throw.$e
247e0 3b 0a 7d 0a 7d 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 ;.}.}..$loader.=.new.ArrayLoader
24800 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 61 64 65 ();.$this->loadRepository($loade
24820 72 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e r,.$data);.}..protected.function
24840 20 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 41 72 72 61 79 4c 6f 61 64 65 72 20 24 6c 6f 61 .loadRepository(ArrayLoader.$loa
24860 64 65 72 2c 20 24 64 61 74 61 29 0a 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 der,.$data).{...if.(!isset($data
24880 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 ['packages']).&&.!isset($data['i
248a0 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 ncludes'])).{.foreach.($data.as.
248c0 24 70 6b 67 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 6b 67 5b 27 76 65 72 73 69 6f 6e 73 27 $pkg).{.foreach.($pkg['versions'
248e0 5d 20 61 73 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b ].as.$metadata).{.$this->addPack
24900 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 65 74 61 64 61 74 61 29 29 3b 0a 7d age($loader->load($metadata));.}
24920 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 .}..return;.}..if.(isset($data['
24940 70 61 63 6b 61 67 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 70 packages'])).{.foreach.($data['p
24960 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f ackages'].as.$package.=>.$versio
24980 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 ns).{.foreach.($versions.as.$ver
249a0 73 69 6f 6e 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 sion.=>.$metadata).{.$this->addP
249c0 61 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 65 74 61 64 61 74 61 29 29 ackage($loader->load($metadata))
249e0 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 ;.}.}.}..if.(isset($data['includ
24a00 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 es'])).{.foreach.($data['include
24a20 73 27 5d 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a s'].as.$include.=>.$metadata).{.
24a40 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 31 28 24 69 6e 63 6c 75 64 65 29 if.($this->cache->sha1($include)
24a60 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 31 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 .===.$metadata['sha1']).{.$inclu
24a80 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 dedData.=.json_decode($this->cac
24aa0 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 he->read($include),.true);.}.els
24ac0 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e e.{.$json.=.new.JsonFile($this->
24ae0 75 72 6c 2e 27 2f 27 2e 24 69 6e 63 6c 75 64 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 url.'/'.$include,.new.RemoteFile
24b00 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 system($this->io));.$includedDat
24b20 61 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d a.=.$json->read();.$this->cache-
24b40 3e 77 72 69 74 65 28 24 69 6e 63 6c 75 64 65 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 69 6e >write($include,.json_encode($in
24b60 63 6c 75 64 65 64 44 61 74 61 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 cludedData));.}.$this->loadRepos
24b80 69 74 6f 72 79 28 24 6c 6f 61 64 65 72 2c 20 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d itory($loader,.$includedData);.}
24ba0 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 .}.}.}.<?php............namespac
24bc0 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a e.Composer\Repository\Pear;.....
24be0 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 ..class.DependencyInfo.{.private
24c00 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a .$requires;.private.$optionals;.
24c20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
24c40 28 24 72 65 71 75 69 72 65 73 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 0a 7b 0a 24 74 68 69 73 2d ($requires,.$optionals).{.$this-
24c60 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 24 74 68 69 73 2d 3e 6f 70 >requires.=.$requires;.$this->op
24c80 74 69 6f 6e 61 6c 73 20 3d 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c tionals.=.$optionals;.}.....publ
24ca0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 ic.function.getRequires().{.retu
24cc0 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$this->requires;.}.....public
24ce0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 .function.getOptionals().{.retur
24d00 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a n.$this->optionals;.}.}.<?php...
24d20 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f .........namespace.Composer\Repo
24d40 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 sitory\Pear;.......class.Package
24d60 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 DependencyParser.{.......public.
24d80 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 function.buildDependencyInfo($de
24da0 70 41 72 72 61 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 41 72 72 61 pArray).{.if.(!is_array($depArra
24dc0 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 y)).{.return.new.DependencyInfo(
24de0 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d array(),.array());.}.if.(!$this-
24e00 3e 69 73 48 61 73 68 28 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 >isHash($depArray)).{.return.new
24e20 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 .DependencyInfo($this->buildDepe
24e40 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 2c 20 61 72 72 61 79 28 29 ndency10Info($depArray),.array()
24e60 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 );.}..return.$this->buildDepende
24e80 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ncy20Info($depArray);.}.........
24ea0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e .....private.function.buildDepen
24ec0 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 73 74 61 74 69 63 20 dency10Info($depArray).{.static.
24ee0 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d 20 61 72 72 61 79 28 27 68 61 73 $dep10toOperatorMap.=.array('has
24f00 27 3d 3e 27 3d 3d 27 2c 20 27 65 71 27 20 3d 3e 20 27 3d 3d 27 2c 20 27 67 65 27 20 3d 3e 20 27 '=>'==',.'eq'.=>.'==',.'ge'.=>.'
24f20 3e 3d 27 2c 20 27 67 74 27 20 3d 3e 20 27 3e 27 2c 20 27 6c 65 27 20 3d 3e 20 27 3c 3d 27 2c 20 >=',.'gt'.=>.'>',.'le'.=>.'<=',.
24f40 27 6c 74 27 20 3d 3e 20 27 3c 27 2c 20 27 6e 6f 74 27 20 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 72 'lt'.=>.'<',.'not'.=>.'!=');..$r
24f60 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 esult.=.array();..foreach.($depA
24f80 72 72 61 79 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 64 rray.as.$depItem).{.if.(empty($d
24fa0 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 7c 7c 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 epItem['rel']).||.!array_key_exi
24fc0 73 74 73 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 2c 20 24 64 65 70 31 30 74 6f 4f 70 65 sts($depItem['rel'],.$dep10toOpe
24fe0 72 61 74 6f 72 4d 61 70 29 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 70 ratorMap)).{...continue;.}..$dep
25000 54 79 70 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 6c Type.=.!empty($depItem['optional
25020 27 5d 29 20 26 26 20 27 79 65 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e ']).&&.'yes'.==.$depItem['option
25040 61 6c 27 5d 0a 3f 20 27 6f 70 74 69 6f 6e 61 6c 27 0a 3a 20 27 72 65 71 75 69 72 65 64 27 3b 0a al'].?.'optional'.:.'required';.
25060 24 64 65 70 54 79 70 65 20 3d 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 $depType.=.'not'.==.$depItem['re
25080 6c 27 5d 0a 3f 20 27 63 6f 6e 66 6c 69 63 74 73 27 0a 3a 20 24 64 65 70 54 79 70 65 3b 0a 0a 24 l'].?.'conflicts'.:.$depType;..$
250a0 64 65 70 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 76 65 depVersion.=.!empty($depItem['ve
250c0 72 73 69 6f 6e 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 rsion']).?.$this->parseVersion($
250e0 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3a 20 27 2a 27 3b 0a 0a 0a 20 24 64 depItem['version']).:.'*';....$d
25100 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 27 68 61 73 27 20 3d 3d 20 epVersionConstraint.=.('has'.==.
25120 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 20 7c 7c 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 $depItem['rel'].||.'not'.==.$dep
25140 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 26 26 20 27 2a 27 20 3d 3d 20 24 64 65 70 56 65 72 73 69 Item['rel']).&&.'*'.==.$depVersi
25160 6f 6e 0a 3f 20 27 2a 27 0a 3a 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 on.?.'*'.:.$dep10toOperatorMap[$
25180 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 5d 20 2e 20 24 64 65 70 56 65 72 73 69 6f 6e 3b 0a 0a depItem['rel']]...$depVersion;..
251a0 73 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 5b 27 74 79 70 65 27 5d 29 20 7b 0a 63 61 73 65 switch.($depItem['type']).{.case
251c0 20 27 70 68 70 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 70 68 70 27 3b .'php':.$depChannelName.=.'php';
251e0 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 .$depPackageName.=.'';.break;.ca
25200 73 65 20 27 70 6b 67 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 21 65 6d 70 se.'pkg':.$depChannelName.=.!emp
25220 74 79 28 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 29 20 3f 20 24 64 65 70 49 74 ty($depItem['channel']).?.$depIt
25240 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 3a 20 27 70 65 61 72 2e 70 68 70 2e 6e 65 74 27 3b 0a em['channel'].:.'pear.php.net';.
25260 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 $depPackageName.=.$depItem['name
25280 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 27 3a 0a 24 64 65 70 43 68 61 6e 6e '];.break;.case.'ext':.$depChann
252a0 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 elName.=.'ext';.$depPackageName.
252c0 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 =.$depItem['name'];.break;.case.
252e0 27 6f 73 27 3a 0a 63 61 73 65 20 27 73 61 70 69 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 'os':.case.'sapi':.$depChannelNa
25300 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 me.=.'';.$depPackageName.=.'';.b
25320 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d reak;.default:.$depChannelName.=
25340 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b .'';.$depPackageName.=.'';.break
25360 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d 20 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 ;.}..if.(''.!=.$depChannelName).
25380 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 {.$result[].=.new.DependencyCons
253a0 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e traint(.$depType,.$depVersionCon
253c0 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 straint,.$depChannelName,.$depPa
253e0 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 ckageName.);.}.}..return.$result
25400 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c ;.}........private.function.buil
25420 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 24 dDependency20Info($depArray).{.$
25440 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 result.=.array();.$optionals.=.a
25460 72 72 61 79 28 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 72 72 61 rray();.$defaultOptionals.=.arra
25480 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 72 72 61 79 20 61 73 20 24 64 65 70 54 y();.foreach.($depArray.as.$depT
254a0 79 70 65 20 3d 3e 20 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 20 7b 0a 69 66 20 28 21 69 73 5f ype.=>.$depTypeGroup).{.if.(!is_
254c0 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 array($depTypeGroup)).{.continue
254e0 3b 0a 7d 0a 69 66 20 28 27 72 65 71 75 69 72 65 64 27 20 3d 3d 20 24 64 65 70 54 79 70 65 20 7c ;.}.if.('required'.==.$depType.|
25500 7c 20 27 6f 70 74 69 6f 6e 61 6c 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 66 6f 72 65 |.'optional'.==.$depType).{.fore
25520 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 65 70 49 74 65 6d 54 79 ach.($depTypeGroup.as.$depItemTy
25540 70 65 20 3d 3e 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 pe.=>.$depItem).{.switch.($depIt
25560 65 6d 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 72 65 73 75 6c 74 5b 5d 20 emType).{.case.'php':.$result[].
25580 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 =.new.DependencyConstraint(.$dep
255a0 54 79 70 65 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 Type,.$this->parse20VersionConst
255c0 72 61 69 6e 74 28 24 64 65 70 49 74 65 6d 29 2c 0a 27 70 68 70 27 2c 0a 27 27 0a 29 3b 0a 62 72 raint($depItem),.'php',.''.);.br
255e0 65 61 6b 3b 0a 63 61 73 65 20 27 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 eak;.case.'package':.$deps.=.$th
25600 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 is->buildDepPackageConstraints($
25620 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 depItem,.$depType);.$result.=.ar
25640 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 6b ray_merge($result,.$deps);.break
25660 3b 0a 63 61 73 65 20 27 65 78 74 65 6e 73 69 6f 6e 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 ;.case.'extension':.$deps.=.$thi
25680 73 2d 3e 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 s->buildDepExtensionConstraints(
256a0 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 $depItem,.$depType);.$result.=.a
256c0 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 rray_merge($result,.$deps);.brea
256e0 6b 3b 0a 63 61 73 65 20 27 73 75 62 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 k;.case.'subpackage':.$deps.=.$t
25700 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 his->buildDepPackageConstraints(
25720 24 64 65 70 49 74 65 6d 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 24 64 65 66 61 75 6c 74 4f $depItem,.'replaces');.$defaultO
25740 70 74 69 6f 6e 61 6c 73 20 2b 3d 20 24 64 65 70 73 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 ptionals.+=.$deps;.break;.case.'
25760 6f 73 27 3a 0a 63 61 73 65 20 27 70 65 61 72 69 6e 73 74 61 6c 6c 65 72 27 3a 0a 62 72 65 61 6b os':.case.'pearinstaller':.break
25780 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 ;.default:.break;.}.}.}.elseif.(
257a0 27 67 72 6f 75 70 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 'group'.==.$depType).{.if.($this
257c0 2d 3e 69 73 48 61 73 68 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 24 64 65 70 54 ->isHash($depTypeGroup)).{.$depT
257e0 79 70 65 47 72 6f 75 70 20 3d 20 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 3b ypeGroup.=.array($depTypeGroup);
25800 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 .}..foreach.($depTypeGroup.as.$d
25820 65 70 49 74 65 6d 29 20 7b 0a 24 67 72 6f 75 70 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b epItem).{.$groupName.=.$depItem[
25840 27 61 74 74 72 69 62 73 27 5d 5b 27 6e 61 6d 65 27 5d 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 'attribs']['name'];.if.(!isset($
25860 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 29 29 20 7b 0a 24 6f 70 74 69 6f optionals[$groupName])).{.$optio
25880 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 nals[$groupName].=.array();.}..i
258a0 66 20 28 69 73 73 65 74 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 29 f.(isset($depItem['subpackage'])
258c0 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 2b 3d 20 24 74 ).{.$optionals[$groupName].+=.$t
258e0 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 his->buildDepPackageConstraints(
25900 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 2c 20 27 72 65 70 6c 61 63 65 $depItem['subpackage'],.'replace
25920 73 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 20 2b 3d 20 24 74 68 69 73 2d 3e s');.}.else.{.$result.+=.$this->
25940 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 buildDepPackageConstraints($depI
25960 74 65 6d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 27 6f 70 74 69 6f 6e 61 6c 27 29 3b 0a 7d 0a 7d tem['package'],.'optional');.}.}
25980 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c .}.}..if.(count($defaultOptional
259a0 73 29 20 3e 20 30 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 27 2a 27 5d 20 3d 20 24 64 65 66 s).>.0).{.$optionals['*'].=.$def
259c0 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 aultOptionals;.}..return.new.Dep
259e0 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 endencyInfo($result,.$optionals)
25a00 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 ;.}.........private.function.bui
25a20 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 ldDepExtensionConstraints($depIt
25a40 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 em,.$depType).{.if.($this->isHas
25a60 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 72 61 79 28 h($depItem)).{.$depItem.=.array(
25a80 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b $depItem);.}..$result.=.array();
25aa0 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 70 49 74 65 .foreach.($depItem.as.$subDepIte
25ac0 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 m).{.$depChannelName.=.'ext';.$d
25ae0 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d epPackageName.=.$subDepItem['nam
25b00 65 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 e'];.$depVersionConstraint.=.$th
25b20 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 is->parse20VersionConstraint($su
25b40 62 44 65 70 49 74 65 6d 29 3b 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 bDepItem);..$result[].=.new.Depe
25b60 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 ndencyConstraint(.$depType,.$dep
25b80 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 VersionConstraint,.$depChannelNa
25ba0 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e me,.$depPackageName.);.}..return
25bc0 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .$result;.}.........private.func
25be0 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 tion.buildDepPackageConstraints(
25c00 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d $depItem,.$depType).{.if.($this-
25c20 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 >isHash($depItem)).{.$depItem.=.
25c40 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 array($depItem);.}..$result.=.ar
25c60 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 ray();.foreach.($depItem.as.$sub
25c80 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 73 75 DepItem).{.$depChannelName.=.$su
25ca0 62 44 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 bDepItem['channel'];.$depPackage
25cc0 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 70 Name.=.$subDepItem['name'];.$dep
25ce0 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 VersionConstraint.=.$this->parse
25d00 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 62 44 65 70 49 74 65 6d 29 20VersionConstraint($subDepItem)
25d20 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 6f 6e 66 6c 69 63 ;.if.(isset($subDepItem['conflic
25d40 74 73 27 5d 29 29 20 7b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 63 6f 6e 66 6c 69 63 74 73 27 3b ts'])).{.$depType.=.'conflicts';
25d60 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f .}..$result[].=.new.DependencyCo
25d80 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 nstraint(.$depType,.$depVersionC
25da0 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 onstraint,.$depChannelName,.$dep
25dc0 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 PackageName.);.}..return.$result
25de0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 ;.}........private.function.pars
25e00 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 61 72 72 61 79 20 24 64 61 74 61 e20VersionConstraint(array.$data
25e20 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d ).{.static.$dep20toOperatorMap.=
25e40 20 61 72 72 61 79 28 27 68 61 73 27 3d 3e 27 3d 3d 27 2c 20 27 6d 69 6e 27 20 3d 3e 20 27 3e 3d .array('has'=>'==',.'min'.=>.'>=
25e60 27 2c 20 27 6d 61 78 27 20 3d 3e 20 27 3c 3d 27 2c 20 27 65 78 63 6c 75 64 65 27 20 3d 3e 20 27 ',.'max'.=>.'<=',.'exclude'.=>.'
25e80 21 3d 27 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 76 61 6c !=');..$versions.=.array();.$val
25ea0 75 65 73 20 3d 20 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 64 61 74 61 2c ues.=.array_intersect_key($data,
25ec0 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 3b 0a 69 66 20 28 30 20 3d 3d 20 .$dep20toOperatorMap);.if.(0.==.
25ee0 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 27 3b 0a 7d 0a count($values)).{.return.'*';.}.
25f00 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 20 26 26 20 69 73 73 if.(isset($values['min']).&&.iss
25f20 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 26 20 24 64 61 74 61 5b et($values['exclude']).&&.$data[
25f40 27 6d 69 6e 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 76 'min'].==.$data['exclude']).{.$v
25f60 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3e 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 ersions[].=.'>'...$this->parseVe
25f80 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 rsion($values['min']);.}.elseif.
25fa0 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 20 26 26 20 69 73 73 65 74 28 (isset($values['max']).&&.isset(
25fc0 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 26 20 24 64 61 74 61 5b 27 6d 61 $values['exclude']).&&.$data['ma
25fe0 78 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 76 65 72 73 x'].==.$data['exclude']).{.$vers
26000 69 6f 6e 73 5b 5d 20 3d 20 27 3c 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 ions[].=.'<'...$this->parseVersi
26020 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 on($values['max']);.}.else.{.for
26040 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 6f 70 20 3d 3e 20 24 76 65 72 73 69 6f 6e each.($values.as.$op.=>.$version
26060 29 20 7b 0a 69 66 20 28 27 65 78 63 6c 75 64 65 27 20 3d 3d 20 24 6f 70 20 26 26 20 69 73 5f 61 ).{.if.('exclude'.==.$op.&&.is_a
26080 72 72 61 79 28 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 rray($version)).{.foreach.($vers
260a0 69 6f 6e 20 61 73 20 24 76 65 72 73 69 6f 6e 50 61 72 74 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 ion.as.$versionPart).{.$versions
260c0 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 2e 20 [].=.$dep20toOperatorMap[$op]...
260e0 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 50 61 72 74 $this->parseVersion($versionPart
26100 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 24 64 65 70 );.}.}.else.{.$versions[].=.$dep
26120 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 2e 20 24 74 68 69 73 2d 3e 70 61 20toOperatorMap[$op]...$this->pa
26140 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 rseVersion($version);.}.}.}..ret
26160 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a urn.implode(',',.$versions);.}..
26180 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 56 65 72 73 ......private.function.parseVers
261a0 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ion($version).{.if.(preg_match('
261c0 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c 2e {^v?(\d{1,3})(\.\d+)?(\.\d+)?(\.
261e0 5c 64 2b 29 3f 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b \d+)?}i',.$version,.$matches)).{
26200 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 74 79 .$version.=.$matches[1]..(!empty
26220 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 2e ($matches[2]).?.$matches[2].:.'.
26240 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 74 0')..(!empty($matches[3]).?.$mat
26260 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 ches[3].:.'.0')..(!empty($matche
26280 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 0a 72 65 s[4]).?.$matches[4].:.'.0');..re
262a0 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d turn.$version;.}..return.null;.}
262c0 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 48 61 73 68 28 ........private.function.isHash(
262e0 61 72 72 61 79 20 24 61 72 72 61 79 29 0a 7b 0a 72 65 74 75 72 6e 20 21 61 72 72 61 79 5f 6b 65 array.$array).{.return.!array_ke
26300 79 5f 65 78 69 73 74 73 28 31 2c 20 24 61 72 72 61 79 29 20 26 26 20 21 61 72 72 61 79 5f 6b 65 y_exists(1,.$array).&&.!array_ke
26320 79 5f 65 78 69 73 74 73 28 30 2c 20 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a y_exists(0,.$array);.}.}.<?php..
26340 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 ..........namespace.Composer\Rep
26360 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 ository\Pear;.......class.Channe
26380 6c 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 lInfo.{.private.$name;.private.$
263a0 61 6c 69 61 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 0a 0a alias;.private.$packages;.......
263c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d public.function.__construct($nam
263e0 65 2c 20 24 61 6c 69 61 73 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 74 e,.$alias,.array.$packages).{.$t
26400 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 20 his->name.=.$name;.$this->alias.
26420 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 63 =.$alias;.$this->packages.=.$pac
26440 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 kages;.}.......public.function.g
26460 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d etName().{.return.$this->name;.}
26480 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 28 .......public.function.getAlias(
264a0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 0a ).{.return.$this->alias;.}......
264c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b .public.function.getPackages().{
264e0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 .return.$this->packages;.}.}.<?p
26500 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
26520 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \Repository\Pear;..use.Composer\
26540 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 Util\RemoteFilesystem;.........c
26560 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 lass.ChannelReader.extends.BaseC
26580 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 65 72 4d hannelReader.{..private.$readerM
265a0 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 ap;..public.function.__construct
265c0 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 (RemoteFilesystem.$rfs).{.parent
265e0 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 72 65 73 74 31 30 72 65 61 ::__construct($rfs);..$rest10rea
26600 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 28 24 72 der.=.new.ChannelRest10Reader($r
26620 66 73 29 3b 0a 24 72 65 73 74 31 31 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c fs);.$rest11reader.=.new.Channel
26640 52 65 73 74 31 31 52 65 61 64 65 72 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 61 64 Rest11Reader($rfs);..$this->read
26660 65 72 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 27 52 45 53 54 31 2e 33 27 20 3d 3e 20 24 72 65 73 erMap.=.array(.'REST1.3'.=>.$res
26680 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 32 27 20 3d 3e 20 24 72 65 73 74 31 31 72 t11reader,.'REST1.2'.=>.$rest11r
266a0 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 31 27 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 65 eader,.'REST1.1'.=>.$rest11reade
266c0 72 2c 0a 27 52 45 53 54 31 2e 30 27 20 3d 3e 20 24 72 65 73 74 31 30 72 65 61 64 65 72 2c 0a 29 r,.'REST1.0'.=>.$rest10reader,.)
266e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 ;.}........public.function.read(
26700 24 75 72 6c 29 0a 7b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c $url).{.$xml.=.$this->requestXml
26720 28 24 75 72 6c 2c 20 22 2f 63 68 61 6e 6e 65 6c 2e 78 6d 6c 22 29 3b 0a 0a 24 63 68 61 6e 6e 65 ($url,."/channel.xml");..$channe
26740 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6e 61 6d 65 3b 0a 24 63 68 lName.=.(string).$xml->name;.$ch
26760 61 6e 6e 65 6c 53 75 6d 6d 61 72 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 75 annelSummary.=.(string).$xml->su
26780 6d 6d 61 72 79 3b 0a 24 63 68 61 6e 6e 65 6c 41 6c 69 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 mmary;.$channelAlias.=.(string).
267a0 24 78 6d 6c 2d 3e 73 75 67 67 65 73 74 65 64 61 6c 69 61 73 3b 0a 0a 24 73 75 70 70 6f 72 74 65 $xml->suggestedalias;..$supporte
267c0 64 56 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 72 65 dVersions.=.array_keys($this->re
267e0 61 64 65 72 4d 61 70 29 3b 0a 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 20 3d aderMap);.$selectedRestVersion.=
26800 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 52 65 73 74 56 65 72 73 69 6f 6e 28 24 78 6d 6c 2c 20 .$this->selectRestVersion($xml,.
26820 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 21 24 73 65 6c 65 63 $supportedVersions);.if.(!$selec
26840 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 tedRestVersion).{.throw.new.\Une
26860 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 50 xpectedValueException(sprintf('P
26880 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f EAR.repository.%s.does.not.suppo
268a0 72 74 73 20 61 6e 79 20 6f 66 20 25 73 20 70 72 6f 74 6f 63 6f 6c 73 2e 27 2c 20 24 75 72 6c 2c rts.any.of.%s.protocols.',.$url,
268c0 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e .implode(',.',.$supportedVersion
268e0 73 29 29 29 3b 0a 7d 0a 0a 24 72 65 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 65 72 s)));.}..$reader.=.$this->reader
26900 4d 61 70 5b 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f Map[$selectedRestVersion['versio
26920 6e 27 5d 5d 3b 0a 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 20 3d 20 24 72 65 61 n']];.$packageDefinitions.=.$rea
26940 64 65 72 2d 3e 72 65 61 64 28 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 5b 27 der->read($selectedRestVersion['
26960 62 61 73 65 55 72 6c 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 43 68 61 6e 6e 65 6c 49 baseUrl']);..return.new.ChannelI
26980 6e 66 6f 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 63 68 61 6e 6e 65 6c 41 6c 69 61 73 2c nfo($channelName,.$channelAlias,
269a0 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .$packageDefinitions);.}........
269c0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 52 65 73 74 56 65 72 73 .private.function.selectRestVers
269e0 69 6f 6e 28 24 63 68 61 6e 6e 65 6c 58 6d 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 ion($channelXml,.$supportedVersi
26a00 6f 6e 73 29 0a 7b 0a 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 ons).{.$channelXml->registerXPat
26a20 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 48 41 4e 4e 45 4c 5f 4e hNamespace('ns',.self::CHANNEL_N
26a40 53 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 S);..foreach.($supportedVersions
26a60 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 78 70 61 74 68 54 65 73 74 20 3d 20 22 6e 73 .as.$version).{.$xpathTest.=."ns
26a80 3a 73 65 72 76 65 72 73 2f 6e 73 3a 70 72 69 6d 61 72 79 2f 6e 73 3a 72 65 73 74 2f 6e 73 3a 62 :servers/ns:primary/ns:rest/ns:b
26aa0 61 73 65 75 72 6c 5b 40 74 79 70 65 3d 27 7b 24 76 65 72 73 69 6f 6e 7d 27 5d 22 3b 0a 24 74 65 aseurl[@type='{$version}']";.$te
26ac0 73 74 52 65 73 75 6c 74 20 3d 20 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 78 70 61 74 68 28 24 78 stResult.=.$channelXml->xpath($x
26ae0 70 61 74 68 54 65 73 74 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 65 73 74 52 65 73 75 6c 74 pathTest);.if.(count($testResult
26b00 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 76 65 72 73 69 6f 6e 27 20 ).>.0).{.return.array('version'.
26b20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 20 27 62 61 73 65 55 72 6c 27 20 3d 3e 20 28 73 74 72 69 6e =>.$version,.'baseUrl'.=>.(strin
26b40 67 29 20 24 74 65 73 74 52 65 73 75 6c 74 5b 30 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 g).$testResult[0]);.}.}..return.
26b60 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 null;.}.}.<?php............names
26b80 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a pace.Composer\Repository\Pear;..
26ba0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 .....class.PackageInfo.{.private
26bc0 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 4e .$channelName;.private.$packageN
26be0 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 69 63 65 6e 73 65 3b 0a 70 72 69 76 61 74 65 20 24 ame;.private.$license;.private.$
26c00 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 shortDescription;.private.$descr
26c20 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 65 61 73 65 73 3b 0a 0a 0a 0a 0a 0a iption;.private.$releases;......
26c40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
26c60 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6c 69 63 $channelName,.$packageName,.$lic
26c80 65 6e 73 65 2c 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 ense,.$shortDescription,.$descri
26ca0 70 74 69 6f 6e 2c 20 24 72 65 6c 65 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 61 6e 6e ption,.$releases).{.$this->chann
26cc0 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 61 elName.=.$channelName;.$this->pa
26ce0 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d ckageName.=.$packageName;.$this-
26d00 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 >license.=.$license;.$this->shor
26d20 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e tDescription.=.$shortDescription
26d40 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 ;.$this->description.=.$descript
26d60 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 73 20 3d 20 24 72 65 6c 65 61 73 65 73 ion;.$this->releases.=.$releases
26d80 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 61 6e 6e ;.}.....public.function.getChann
26da0 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c elName().{.return.$this->channel
26dc0 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 Name;.}.....public.function.getP
26de0 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 ackageName().{.return.$this->pac
26e00 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 kageName;.}.....public.function.
26e20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getDescription().{.return.$this-
26e40 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 >description;.}.....public.funct
26e60 69 6f 6e 20 67 65 74 53 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 ion.getShortDescription().{.retu
26e80 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a rn.$this->shortDescription;.}...
26ea0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b ..public.function.getLicense().{
26ec0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 .return.$this->license;.}.....pu
26ee0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 73 28 29 0a 7b 0a 72 65 blic.function.getReleases().{.re
26f00 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a turn.$this->releases;.}.}.<?php.
26f20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 ...........namespace.Composer\Re
26f40 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e pository\Pear;.......class.Depen
26f60 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 79 70 65 3b dencyConstraint.{.private.$type;
26f80 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 72 69 76 61 74 65 20 24 63 .private.$constraint;.private.$c
26fa0 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 hannelName;.private.$packageName
26fc0 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 ;........public.function.__const
26fe0 72 75 63 74 28 24 74 79 70 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 63 68 61 6e 6e 65 ruct($type,.$constraint,.$channe
27000 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 lName,.$packageName).{.$this->ty
27020 70 65 20 3d 20 24 74 79 70 65 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 pe.=.$type;.$this->constraint.=.
27040 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 $constraint;.$this->channelName.
27060 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 =.$channelName;.$this->packageNa
27080 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e me.=.$packageName;.}..public.fun
270a0 63 74 69 6f 6e 20 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ction.getChannelName().{.return.
270c0 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 $this->channelName;.}..public.fu
270e0 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 nction.getConstraint().{.return.
27100 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e $this->constraint;.}..public.fun
27120 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ction.getPackageName().{.return.
27140 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 $this->packageName;.}..public.fu
27160 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getType().{.return.$this-
27180 3e 74 79 70 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 >type;.}.}.<?php............name
271a0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a space.Composer\Repository\Pear;.
271c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 ..........class.ChannelRest11Rea
271e0 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a der.extends.BaseChannelReader.{.
27200 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 3b 0a 0a 70 75 62 6c private.$dependencyReader;..publ
27220 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 0a 7b 0a ic.function.__construct($rfs).{.
27240 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 parent::__construct($rfs);..$thi
27260 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 s->dependencyReader.=.new.Packag
27280 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 eDependencyParser();.}.........p
272a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a ublic.function.read($baseUrl).{.
272c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b 61 67 65 return.$this->readChannelPackage
272e0 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 s($baseUrl);.}.........private.f
27300 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b 61 67 65 73 28 24 62 61 73 unction.readChannelPackages($bas
27320 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 78 6d 6c eUrl).{.$result.=.array();..$xml
27340 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 22 .=.$this->requestXml($baseUrl,."
27360 2f 63 2f 63 61 74 65 67 6f 72 69 65 73 2e 78 6d 6c 22 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 /c/categories.xml");.$xml->regis
27380 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c terXPathNamespace('ns',.self::AL
273a0 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d L_CATEGORIES_NS);.foreach.($xml-
273c0 3e 78 70 61 74 68 28 27 6e 73 3a 63 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 63 61 74 65 >xpath('ns:c').as.$node).{.$cate
273e0 67 6f 72 79 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 63 61 74 65 goryName.=.(string).$node;.$cate
27400 67 6f 72 79 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 43 61 74 65 67 6f goryPackages.=.$this->readCatego
27420 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e 61 ryPackages($baseUrl,.$categoryNa
27440 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 me);.$result.=.array_merge($resu
27460 6c 74 2c 20 24 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 lt,.$categoryPackages);.}..retur
27480 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 n.$result;.}..........private.fu
274a0 6e 63 74 69 6f 6e 20 72 65 61 64 43 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 73 nction.readCategoryPackages($bas
274c0 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d eUrl,.$categoryName).{.$result.=
274e0 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 61 74 65 67 6f 72 79 50 61 74 68 20 3d 20 27 2f 63 2f 27 .array();..$categoryPath.=.'/c/'
27500 2e 75 72 6c 65 6e 63 6f 64 65 28 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 2e 27 2f 70 61 63 6b .urlencode($categoryName).'/pack
27520 61 67 65 73 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 agesinfo.xml';.$xml.=.$this->req
27540 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 50 61 74 68 29 uestXml($baseUrl,.$categoryPath)
27560 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 ;.$xml->registerXPathNamespace('
27580 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 ns',.self::CATEGORY_PACKAGES_INF
275a0 4f 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a O_NS);.foreach.($xml->xpath('ns:
275c0 70 69 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 20 3d 20 pi').as.$node).{.$packageInfo.=.
275e0 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 6e 6f 64 65 29 3b 0a 24 72 65 73 $this->parsePackage($node);.$res
27600 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ult[].=.$packageInfo;.}..return.
27620 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 $result;.}........private.functi
27640 6f 6e 20 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 49 6e 66 6f 29 0a 7b 0a on.parsePackage($packageInfo).{.
27660 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 $packageInfo->registerXPathNames
27680 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 pace('ns',.self::CATEGORY_PACKAG
276a0 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 ES_INFO_NS);.$channelName.=.(str
276c0 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 63 3b 0a 24 70 61 63 6b 61 67 ing).$packageInfo->p->c;.$packag
276e0 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 eName.=.(string).$packageInfo->p
27700 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 ->n;.$license.=.(string).$packag
27720 65 49 6e 66 6f 2d 3e 70 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d eInfo->p->l;.$shortDescription.=
27740 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 73 3b 0a 24 64 .(string).$packageInfo->p->s;.$d
27760 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e escription.=.(string).$packageIn
27780 66 6f 2d 3e 70 2d 3e 64 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 61 72 72 61 79 fo->p->d;..$dependencies.=.array
277a0 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 ();.foreach.($packageInfo->xpath
277c0 28 27 6e 73 3a 64 65 70 73 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 64 65 70 65 6e 64 65 ('ns:deps').as.$node).{.$depende
277e0 6e 63 79 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a ncyVersion.=.(string).$node->v;.
27800 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 28 $dependencyArray.=.unserialize((
27820 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 64 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 79 49 string).$node->d);..$dependencyI
27840 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 nfo.=.$this->dependencyReader->b
27860 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 uildDependencyInfo($dependencyAr
27880 72 61 79 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 64 65 70 65 6e 64 65 6e 63 79 ray);..$dependencies[$dependency
278a0 56 65 72 73 69 6f 6e 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a 0a 24 Version].=.$dependencyInfo;.}..$
278c0 72 65 6c 65 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 6c 65 61 73 65 73 49 6e 66 releases.=.array();.$releasesInf
278e0 6f 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a 61 2f 6e 73 o.=.$packageInfo->xpath('ns:a/ns
27900 3a 72 27 29 3b 0a 69 66 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 29 20 7b 0a 66 6f 72 65 61 :r');.if.($releasesInfo).{.forea
27920 63 68 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 72 ch.($releasesInfo.as.$node).{.$r
27940 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e eleaseVersion.=.(string).$node->
27960 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 20 v;.$releaseStability.=.(string).
27980 24 6e 6f 64 65 2d 3e 73 3b 0a 24 72 65 6c 65 61 73 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 $node->s;.$releases[$releaseVers
279a0 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 61 73 65 ion].=.new.ReleaseInfo(.$release
279c0 53 74 61 62 69 6c 69 74 79 2c 0a 69 73 73 65 74 28 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 Stability,.isset($dependencies[$
279e0 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 29 20 3f 20 24 64 65 70 65 6e 64 65 6e 63 69 65 73 releaseVersion]).?.$dependencies
27a00 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3a 20 6e 65 77 20 44 65 70 65 6e 64 65 6e [$releaseVersion].:.new.Dependen
27a20 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 0a 29 3b 0a 7d 0a 7d 0a cyInfo(array(),.array()).);.}.}.
27a40 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 6b 61 67 65 49 6e 66 6f 28 0a 24 63 68 61 6e 6e 65 .return.new.PackageInfo(.$channe
27a60 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 2c 0a 24 lName,.$packageName,.$license,.$
27a80 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a shortDescription,.$description,.
27aa0 24 72 65 6c 65 61 73 65 73 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $releases.);.}.}.<?php..........
27ac0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c ..namespace.Composer\Repository\
27ae0 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6c 65 61 73 65 49 6e 66 6f 0a 7b 0a Pear;.......class.ReleaseInfo.{.
27b00 70 72 69 76 61 74 65 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 64 65 70 private.$stability;.private.$dep
27b20 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f endencyInfo;......public.functio
27b40 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 74 61 62 69 6c 69 74 79 2c 20 24 64 65 70 65 6e n.__construct($stability,.$depen
27b60 64 65 6e 63 79 49 6e 66 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 dencyInfo).{.$this->stability.=.
27b80 24 73 74 61 62 69 6c 69 74 79 3b 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 $stability;.$this->dependencyInf
27ba0 6f 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 o.=.$dependencyInfo;.}.....publi
27bc0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 0a 7b c.function.getDependencyInfo().{
27be0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d .return.$this->dependencyInfo;.}
27c00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 .....public.function.getStabilit
27c20 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d y().{.return.$this->stability;.}
27c40 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
27c60 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d mposer\Repository\Pear;..use.Com
27c80 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a poser\Util\RemoteFilesystem;....
27ca0 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 .....abstract.class.BaseChannelR
27cc0 65 61 64 65 72 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 43 48 41 4e 4e 45 4c 5f 4e 53 20 3d 20 27 68 eader.{....const.CHANNEL_NS.=.'h
27ce0 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 63 68 61 6e 6e 65 6c 2d 31 2e 30 27 3b ttp://pear.php.net/channel-1.0';
27d00 0a 63 6f 6e 73 74 20 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 20 3d 20 27 68 74 74 70 .const.ALL_CATEGORIES_NS.=.'http
27d20 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 63 61 74 65 ://pear.php.net/dtd/rest.allcate
27d40 67 6f 72 69 65 73 27 3b 0a 63 6f 6e 73 74 20 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 gories';.const.CATEGORY_PACKAGES
27d60 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f _INFO_NS.=.'http://pear.php.net/
27d80 64 74 64 2f 72 65 73 74 2e 63 61 74 65 67 6f 72 79 70 61 63 6b 61 67 65 69 6e 66 6f 27 3b 0a 63 dtd/rest.categorypackageinfo';.c
27da0 6f 6e 73 74 20 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 onst.ALL_PACKAGES_NS.=.'http://p
27dc0 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 70 61 63 6b 61 67 65 73 ear.php.net/dtd/rest.allpackages
27de0 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e 53 20 3d 20 27 68 74 74 70 ';.const.ALL_RELEASES_NS.=.'http
27e00 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 72 65 6c 65 ://pear.php.net/dtd/rest.allrele
27e20 61 73 65 73 27 3b 0a 63 6f 6e 73 74 20 50 41 43 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 ases';.const.PACKAGE_INFO_NS.=.'
27e40 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 70 61 63 http://pear.php.net/dtd/rest.pac
27e60 6b 61 67 65 27 3b 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 70 72 6f 74 65 63 74 65 kage';...private.$rfs;..protecte
27e80 64 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 6d 6f 74 65 46 69 6c d.function.__construct(RemoteFil
27ea0 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 esystem.$rfs).{.$this->rfs.=.$rf
27ec0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 s;.}.........protected.function.
27ee0 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b requestContent($origin,.$path).{
27f00 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 67 69 6e 2c 20 27 2f 27 29 20 2e 20 27 2f .$url.=.rtrim($origin,.'/')...'/
27f20 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 2f 27 29 3b 0a 24 63 6f 6e 74 65 6e 74 20 '...ltrim($path,.'/');.$content.
27f40 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 =.$this->rfs->getContents($origi
27f60 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 n,.$url,.false);.if.(!$content).
27f80 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 {.throw.new.\UnexpectedValueExce
27fa0 70 74 69 6f 6e 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 20 2e 20 24 ption('The.PEAR.channel.at.'...$
27fc0 75 72 6c 20 2e 20 27 20 64 69 64 20 6e 6f 74 20 72 65 73 70 6f 6e 64 2e 27 29 3b 0a 7d 0a 0a 72 url...'.did.not.respond.');.}..r
27fe0 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 eturn.$content;.}.........protec
28000 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 65 73 74 58 6d 6c 28 24 6f 72 69 67 69 6e 2c ted.function.requestXml($origin,
28020 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 78 6d 6c 20 3d 20 73 69 6d 70 6c 65 78 6d 6c 5f 6c 6f 61 .$path).{...$xml.=.simplexml_loa
28040 64 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 d_string($this->requestContent($
28060 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 2c 20 22 53 69 6d 70 6c 65 58 4d 4c 45 6c 65 6d 65 6e origin,.$path),."SimpleXMLElemen
28080 74 22 2c 20 4c 49 42 58 4d 4c 5f 4e 4f 45 52 52 4f 52 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 t",.LIBXML_NOERROR);..if.(false.
280a0 3d 3d 20 24 78 6d 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 67 69 6e 2c ==.$xml).{.$url.=.rtrim($origin,
280c0 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 2f 27 29 3b .'/')...'/'...ltrim($path,.'/');
280e0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 .throw.new.\UnexpectedValueExcep
28100 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e 65 6c 20 61 tion(sprintf('The.PEAR.channel.a
28120 74 20 27 20 2e 20 24 6f 72 69 67 69 6e 20 2e 20 27 20 69 73 20 62 72 6f 6b 65 6e 2e 20 28 49 6e t.'...$origin...'.is.broken..(In
28140 76 61 6c 69 64 20 58 4d 4c 20 61 74 20 66 69 6c 65 20 60 25 73 60 29 27 2c 20 24 70 61 74 68 29 valid.XML.at.file.`%s`)',.$path)
28160 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 78 6d 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a );.}..return.$xml;.}.}.<?php....
28180 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 ........namespace.Composer\Repos
281a0 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f itory\Pear;..use.Composer\Downlo
281c0 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a ader\TransportException;........
281e0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 20 65 .....class.ChannelRest10Reader.e
28200 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 70 72 69 76 61 xtends.BaseChannelReader.{.priva
28220 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 te.$dependencyReader;..public.fu
28240 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e nction.__construct($rfs).{.paren
28260 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 t::__construct($rfs);..$this->de
28280 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 pendencyReader.=.new.PackageDepe
282a0 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ndencyParser();.}.........public
282c0 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 72 65 74 75 72 .function.read($baseUrl).{.retur
282e0 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b n.$this->readPackages($baseUrl);
28300 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 .}.........private.function.read
28320 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 Packages($baseUrl).{.$result.=.a
28340 72 72 61 79 28 29 3b 0a 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 70 2f 70 61 63 6b 61 67 65 73 rray();..$xmlPath.=.'/p/packages
28360 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 .xml';.$xml.=.$this->requestXml(
28380 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 $baseUrl,.$xmlPath);.$xml->regis
283a0 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c terXPathNamespace('ns',.self::AL
283c0 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 L_PACKAGES_NS);.foreach.($xml->x
283e0 70 61 74 68 28 27 6e 73 3a 70 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 67 path('ns:p').as.$node).{.$packag
28400 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 70 61 63 6b 61 67 65 eName.=.(string).$node;.$package
28420 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 Info.=.$this->readPackage($baseU
28440 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 rl,.$packageName);.$result[].=.$
28460 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a packageInfo;.}..return.$result;.
28480 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 }..........private.function.read
284a0 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a Package($baseUrl,.$packageName).
284c0 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 70 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 {.$xmlPath.=.'/p/'...strtolower(
284e0 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 78 6d $packageName)...'/info.xml';.$xm
28500 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 l.=.$this->requestXml($baseUrl,.
28520 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 $xmlPath);.$xml->registerXPathNa
28540 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 50 41 43 4b 41 47 45 5f 49 4e 46 4f mespace('ns',.self::PACKAGE_INFO
28560 5f 4e 53 29 3b 0a 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 _NS);..$channelName.=.(string).$
28580 78 6d 6c 2d 3e 63 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 xml->c;.$packageName.=.(string).
285a0 24 78 6d 6c 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d $xml->n;.$license.=.(string).$xm
285c0 6c 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e l->l;.$shortDescription.=.(strin
285e0 67 29 20 24 78 6d 6c 2d 3e 73 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 g).$xml->s;.$description.=.(stri
28600 6e 67 29 20 24 78 6d 6c 2d 3e 64 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 6b 61 67 65 ng).$xml->d;..return.new.Package
28620 49 6e 66 6f 28 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 Info(.$channelName,.$packageName
28640 2c 0a 24 6c 69 63 65 6e 73 65 2c 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 ,.$license,.$shortDescription,.$
28660 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 52 description,.$this->readPackageR
28680 65 6c 65 61 73 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a eleases($baseUrl,.$packageName).
286a0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 );.}..........private.function.r
286c0 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 eadPackageReleases($baseUrl,.$pa
286e0 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a ckageName).{.$result.=.array();.
28700 0a 74 72 79 20 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c .try.{.$xmlPath.=.'/r/'...strtol
28720 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 61 6c 6c 72 65 6c 65 61 73 ower($packageName)...'/allreleas
28740 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d es.xml';.$xml.=.$this->requestXm
28760 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 l($baseUrl,.$xmlPath);.$xml->reg
28780 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a isterXPathNamespace('ns',.self::
287a0 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d ALL_RELEASES_NS);.foreach.($xml-
287c0 3e 78 70 61 74 68 28 27 6e 73 3a 72 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 72 65 6c 65 >xpath('ns:r').as.$node).{.$rele
287e0 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a aseVersion.=.(string).$node->v;.
28800 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f $releaseStability.=.(string).$no
28820 64 65 2d 3e 73 3b 0a 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c 74 5b 24 72 65 6c 65 61 73 65 56 65 de->s;..try.{.$result[$releaseVe
28840 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 61 rsion].=.new.ReleaseInfo(.$relea
28860 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 52 seStability,.$this->readPackageR
28880 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 eleaseDependencies($baseUrl,.$pa
288a0 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 29 0a 29 3b 0a 7d ckageName,.$releaseVersion).);.}
288c0 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 .catch.(TransportException.$exce
288e0 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 64 65 ption).{.if.($exception->getCode
28900 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d ().!=.404).{.throw.$exception;.}
28920 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e .}.}.}.catch.(TransportException
28940 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 .$exception).{.if.($exception->g
28960 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 63 65 70 74 etCode().!=.404).{.throw.$except
28980 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a ion;.}.}..return.$result;.}.....
289a0 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 ......private.function.readPacka
289c0 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c 2c 20 geReleaseDependencies($baseUrl,.
289e0 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 64 65 70 65 6e $packageName,.$version).{.$depen
28a00 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 dencyReader.=.new.PackageDepende
28a20 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 0a 24 64 65 70 74 68 50 61 74 68 20 3d 20 27 2f 72 2f 27 ncyParser();..$depthPath.=.'/r/'
28a40 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f ...strtolower($packageName)...'/
28a60 64 65 70 73 2e 27 20 2e 20 24 76 65 72 73 69 6f 6e 20 2e 20 27 2e 74 78 74 27 3b 0a 24 63 6f 6e deps.'...$version...'.txt';.$con
28a80 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 62 61 tent.=.$this->requestContent($ba
28aa0 73 65 55 72 6c 2c 20 24 64 65 70 74 68 50 61 74 68 29 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 seUrl,.$depthPath);.$dependencyA
28ac0 72 72 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 24 72 rray.=.unserialize($content);.$r
28ae0 65 73 75 6c 74 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 75 69 6c 64 esult.=.$dependencyReader->build
28b00 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 29 DependencyInfo($dependencyArray)
28b20 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ;..return.$result;.}.}.<?php....
28b40 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 ........namespace.Composer\Repos
28b60 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 itory;..use.Composer\Package\Pac
28b80 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 kageInterface;........interface.
28ba0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 5c 43 6f 75 RepositoryInterface.extends.\Cou
28bc0 6e 74 61 62 6c 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ntable.{........public.function.
28be0 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 hasPackage(PackageInterface.$pac
28c00 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 kage);..........public.function.
28c20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 0a findPackage($name,.$version);...
28c40 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 .......public.function.findPacka
28c60 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a ges($name,.$version.=.null);....
28c80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 ...public.function.getPackages()
28ca0 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 ;.}.<?php............namespace.C
28cc0 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 omposer\Repository;..use.Compose
28ce0 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 0a 0a r\Package\Loader\ArrayLoader;...
28d00 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 ....class.PackageRepository.exte
28d20 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 nds.ArrayRepository.{.private.$c
28d40 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 onfig;.......public.function.__c
28d60 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d onstruct(array.$config).{.$this-
28d80 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 0a 0a >config.=.$config['package'];...
28da0 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 .if.(!is_numeric(key($this->conf
28dc0 69 67 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 24 74 ig))).{.$this->config.=.array($t
28de0 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 his->config);.}.}.....protected.
28e00 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a function.initialize().{.parent::
28e20 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 initialize();..$loader.=.new.Arr
28e40 61 79 4c 6f 61 64 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 ayLoader();.foreach.($this->conf
28e60 69 67 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f ig.as.$package).{.$package.=.$lo
28e80 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 ader->load($package);.$this->add
28ea0 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a Package($package);.}.}.}.<?php..
28ec0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 ..........namespace.Composer\Rep
28ee0 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 ository;..use.Composer\Package\P
28f00 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4e ackageInterface;.....interface.N
28f20 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 otifiableRepositoryInterface.ext
28f40 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a ends.RepositoryInterface.{......
28f60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 50 61 public.function.notifyInstall(Pa
28f80 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 ckageInterface.$package);.}.<?ph
28fa0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
28fc0 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 Package\Dumper;..use.Composer\Pa
28fe0 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ckage\BasePackage;.use.Composer\
29000 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 Package\PackageInterface;......c
29020 6c 61 73 73 20 41 72 72 61 79 44 75 6d 70 65 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 lass.ArrayDumper.{.public.functi
29040 6f 6e 20 64 75 6d 70 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 on.dump(PackageInterface.$packag
29060 65 29 0a 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 28 0a 27 62 69 6e 61 72 69 65 73 27 20 3d e).{.$keys.=.array(.'binaries'.=
29080 3e 20 27 62 69 6e 27 2c 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 74 79 70 65 27 2c 0a 27 65 78 74 >.'bin',.'scripts',.'type',.'ext
290a0 72 61 27 2c 0a 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 27 20 3d 3e 20 27 69 6e ra',.'installationSource'.=>.'in
290c0 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 2c 0a 27 6c 69 63 65 6e 73 65 27 2c 0a 27 stallation-source',.'license',.'
290e0 61 75 74 68 6f 72 73 27 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 0a 27 68 6f 6d 65 70 61 authors',.'description',.'homepa
29100 67 65 27 2c 0a 27 6b 65 79 77 6f 72 64 73 27 2c 0a 27 61 75 74 6f 6c 6f 61 64 27 2c 0a 27 72 65 ge',.'keywords',.'autoload',.'re
29120 70 6f 73 69 74 6f 72 69 65 73 27 2c 0a 27 69 6e 63 6c 75 64 65 50 61 74 68 73 27 20 3d 3e 20 27 positories',.'includePaths'.=>.'
29140 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 2c 0a 27 73 75 70 70 6f 72 74 27 2c 0a 29 3b 0a 0a 24 64 include-path',.'support',.);..$d
29160 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 ata.=.array();.$data['name'].=.$
29180 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 64 61 74 61 5b package->getPrettyName();.$data[
291a0 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 'version'].=.$package->getPretty
291c0 56 65 72 73 69 6f 6e 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c Version();.$data['version_normal
291e0 69 7a 65 64 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b ized'].=.$package->getVersion();
29200 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 ..if.($package->getTargetDir()).
29220 7b 0a 24 64 61 74 61 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 {.$data['target-dir'].=.$package
29240 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 ->getTargetDir();.}..if.($packag
29260 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 69 e->getReleaseDate()).{.$data['ti
29280 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 me'].=.$package->getReleaseDate(
292a0 29 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 69 66 20 )->format('Y-m-d.H:i:s');.}..if.
292c0 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 29 20 7b 0a 24 64 ($package->getSourceType()).{.$d
292e0 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 ata['source']['type'].=.$package
29300 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 ->getSourceType();.$data['source
29320 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 ']['url'].=.$package->getSourceU
29340 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 rl();.$data['source']['reference
29360 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 '].=.$package->getSourceReferenc
29380 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 e();.}..if.($package->getDistTyp
293a0 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 20 3d 20 24 e()).{.$data['dist']['type'].=.$
293c0 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 24 64 61 74 61 5b 27 64 package->getDistType();.$data['d
293e0 69 73 74 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 ist']['url'].=.$package->getDist
29400 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 Url();.$data['dist']['reference'
29420 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 ].=.$package->getDistReference()
29440 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 20 3d 20 24 70 61 63 ;.$data['dist']['shasum'].=.$pac
29460 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 0a kage->getDistSha1Checksum();.}..
29480 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 foreach.(BasePackage::$supported
294a0 4c 69 6e 6b 54 79 70 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 LinkTypes.as.$type.=>.$opts).{.i
294c0 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 f.($links.=.$package->{'get'.ucf
294e0 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 7d 28 29 29 20 7b 0a 66 6f 72 65 irst($opts['method'])}()).{.fore
29500 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 64 61 74 61 5b 24 74 ach.($links.as.$link).{.$data[$t
29520 79 70 65 5d 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b ype][$link->getTarget()].=.$link
29540 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a ->getPrettyConstraint();.}.}.}..
29560 69 66 20 28 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 if.($packages.=.$package->getSug
29580 67 65 73 74 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 75 67 67 65 73 74 27 5d 20 3d 20 24 70 gests()).{.$data['suggest'].=.$p
295a0 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6b 65 79 73 20 61 73 20 24 6d ackages;.}..foreach.($keys.as.$m
295c0 65 74 68 6f 64 20 3d 3e 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 ethod.=>.$key).{.if.(is_numeric(
295e0 24 6d 65 74 68 6f 64 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6b 65 79 3b 0a 7d 0a 0a 24 $method)).{.$method.=.$key;.}..$
29600 67 65 74 74 65 72 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6d 65 74 68 6f 64 29 3b getter.=.'get'.ucfirst($method);
29620 0a 24 76 61 6c 75 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 24 67 65 74 74 65 72 28 29 3b 0a 0a .$value.=.$package->$getter();..
29640 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 21 28 69 73 5f 61 72 72 61 if.(null.!==.$value.&&.!(is_arra
29660 79 28 24 76 61 6c 75 65 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 y($value).&&.0.===.count($value)
29680 29 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a )).{.$data[$key].=.$value;.}.}..
296a0 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a return.$data;.}.}.<?php.........
296c0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f ...namespace.Composer\Package\Lo
296e0 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c ader;..use.Composer\Json\JsonFil
29700 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 e;.....class.JsonLoader.{.privat
29720 65 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f e.$loader;..public.function.__co
29740 6e 73 74 72 75 63 74 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 nstruct(LoaderInterface.$loader)
29760 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 0a .{.$this->loader.=.$loader;.}...
29780 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 24 6a 73 6f 6e 29 0a 7b ...public.function.load($json).{
297a0 0a 69 66 20 28 24 6a 73 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 4a 73 6f 6e 46 69 6c 65 29 20 .if.($json.instanceof.JsonFile).
297c0 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 7d 20 65 6c 73 {.$config.=.$json->read();.}.els
297e0 65 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 eif.(file_exists($json)).{.$conf
29800 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 66 69 6c 65 5f 67 65 ig.=.JsonFile::parseJson(file_ge
29820 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 29 2c 20 24 6a 73 6f 6e 29 3b 0a 7d 20 65 6c 73 t_contents($json),.$json);.}.els
29840 65 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 eif.(is_string($json)).{.$config
29860 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d .=.JsonFile::parseJson($json);.}
29880 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 63 6f ..return.$this->loader->load($co
298a0 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 nfig);.}.}.<?php............name
298c0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a space.Composer\Package\Loader;..
298e0 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b .....interface.LoaderInterface.{
29900 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 .......public.function.load(arra
29920 79 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a y.$package);.}.<?php............
29940 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 namespace.Composer\Package\Loade
29960 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f r;..use.Composer\Package;.use.Co
29980 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 mposer\Package\Version\VersionPa
299a0 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 rser;......class.ArrayLoader.imp
299c0 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 lements.LoaderInterface.{.protec
299e0 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ted.$versionParser;..public.func
29a00 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 tion.__construct(VersionParser.$
29a20 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 70 61 72 73 65 72 29 20 7b parser.=.null).{.if.(!$parser).{
29a40 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 7d 0a .$parser.=.new.VersionParser;.}.
29a60 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a $this->versionParser.=.$parser;.
29a80 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 }..public.function.load(array.$c
29aa0 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d onfig).{.if.(!isset($config['nam
29ac0 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c e'])).{.throw.new.\UnexpectedVal
29ae0 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 70 61 63 6b 61 67 65 20 68 61 73 ueException('Unknown.package.has
29b00 20 6e 6f 20 6e 61 6d 65 20 64 65 66 69 6e 65 64 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 .no.name.defined.('.json_encode(
29b20 24 63 6f 6e 66 69 67 29 2e 27 29 2e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f $config).').');.}.if.(!isset($co
29b40 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 nfig['version'])).{.throw.new.\U
29b60 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 nexpectedValueException('Package
29b80 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 20 68 61 73 20 6e 6f 20 76 65 72 73 .'.$config['name'].'.has.no.vers
29ba0 69 6f 6e 20 64 65 66 69 6e 65 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 ion.defined.');.}....if.(isset($
29bc0 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 29 20 7b config['version_normalized'])).{
29be0 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 .$version.=.$config['version_nor
29c00 6d 61 6c 69 7a 65 64 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 malized'];.}.else.{.$version.=.$
29c20 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 this->versionParser->normalize($
29c40 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 20 3d config['version']);.}.$package.=
29c60 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 24 63 6f 6e 66 .new.Package\MemoryPackage($conf
29c80 69 67 5b 27 6e 61 6d 65 27 5d 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 63 6f 6e 66 69 67 5b 27 76 ig['name'],.$version,.$config['v
29ca0 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 69 73 73 ersion']);.$package->setType(iss
29cc0 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3f 20 73 74 72 74 6f 6c 6f 77 65 72 et($config['type']).?.strtolower
29ce0 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3a 20 27 6c 69 62 72 61 72 79 27 29 3b 0a ($config['type']).:.'library');.
29d00 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d .if.(isset($config['target-dir']
29d20 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 61 72 67 65 74 44 69 72 28 24 63 6f 6e )).{.$package->setTargetDir($con
29d40 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 fig['target-dir']);.}..if.(isset
29d60 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 ($config['extra']).&&.is_array($
29d80 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 config['extra'])).{.$package->se
29da0 74 45 78 74 72 61 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 3b 0a 7d 0a 0a 69 66 20 tExtra($config['extra']);.}..if.
29dc0 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 (isset($config['bin'])).{.if.(!i
29de0 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 s_array($config['bin'])).{.throw
29e00 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 .new.\UnexpectedValueException('
29e20 50 61 63 6b 61 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 5c 27 73 20 62 Package.'.$config['name'].'\'s.b
29e40 69 6e 20 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 in.key.should.be.an.array,.'.get
29e60 74 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 2e 27 20 67 69 76 65 6e 2e 27 29 3b type($config['bin']).'.given.');
29e80 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 20 61 73 20 24 6b .}.foreach.($config['bin'].as.$k
29ea0 65 79 20 3d 3e 20 24 62 69 6e 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 5b 24 6b 65 ey.=>.$bin).{.$config['bin'][$ke
29ec0 79 5d 3d 20 6c 74 72 69 6d 28 24 62 69 6e 2c 20 27 2f 27 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 y]=.ltrim($bin,.'/');.}.$package
29ee0 2d 3e 73 65 74 42 69 6e 61 72 69 65 73 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 3b 0a 7d ->setBinaries($config['bin']);.}
29f00 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 20 ..if.(isset($config['scripts']).
29f20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 29 &&.is_array($config['scripts']))
29f40 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 20 61 .{.foreach.($config['scripts'].a
29f60 73 20 24 65 76 65 6e 74 20 3d 3e 20 24 6c 69 73 74 65 6e 65 72 73 29 20 7b 0a 24 63 6f 6e 66 69 s.$event.=>.$listeners).{.$confi
29f80 67 5b 27 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e 74 5d 3d 20 28 61 72 72 61 79 29 20 24 6c g['scripts'][$event]=.(array).$l
29fa0 69 73 74 65 6e 65 72 73 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 63 72 69 70 74 73 isteners;.}.$package->setScripts
29fc0 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d ($config['scripts']);.}..if.(!em
29fe0 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 20 26 26 20 69 pty($config['description']).&&.i
2a000 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 s_string($config['description'])
2a020 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 63 6f ).{.$package->setDescription($co
2a040 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d nfig['description']);.}..if.(!em
2a060 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 26 26 20 69 73 5f 73 pty($config['homepage']).&&.is_s
2a080 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 70 tring($config['homepage'])).{.$p
2a0a0 61 63 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 65 70 61 67 65 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d ackage->setHomepage($config['hom
2a0c0 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b epage']);.}..if.(!empty($config[
2a0e0 27 6b 65 79 77 6f 72 64 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 'keywords']).&&.is_array($config
2a100 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4b 65 ['keywords'])).{.$package->setKe
2a120 79 77 6f 72 64 73 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 3b 0a 7d 0a 0a ywords($config['keywords']);.}..
2a140 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 if.(!empty($config['license'])).
2a160 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 63 65 6e 73 65 28 69 73 5f 61 72 72 61 79 28 {.$package->setLicense(is_array(
2a180 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 6c $config['license']).?.$config['l
2a1a0 69 63 65 6e 73 65 27 5d 20 3a 20 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 icense'].:.array($config['licens
2a1c0 65 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 74 69 e']));.}..if.(!empty($config['ti
2a1e0 6d 65 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 me'])).{.try.{.$date.=.new.\Date
2a200 54 69 6d 65 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 24 64 61 74 65 2d 3e 73 65 Time($config['time']);.$date->se
2a220 74 54 69 6d 65 7a 6f 6e 65 28 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 tTimezone(new.\DateTimeZone('UTC
2a240 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 24 64 '));.$package->setReleaseDate($d
2a260 61 74 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a ate);.}.catch.(\Exception.$e).{.
2a280 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 }.}..if.(!empty($config['authors
2a2a0 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 ']).&&.is_array($config['authors
2a2c0 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 68 6f 72 73 28 24 63 6f 6e '])).{.$package->setAuthors($con
2a2e0 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 fig['authors']);.}..if.(isset($c
2a300 6f 6e 66 69 67 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 29 20 7b onfig['installation-source'])).{
2a320 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 .$package->setInstallationSource
2a340 28 24 63 6f 6e 66 69 67 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 ($config['installation-source'])
2a360 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d ;.}..if.(isset($config['source']
2a380 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 )).{.if.(!isset($config['source'
2a3a0 5d 5b 27 74 79 70 65 27 5d 29 20 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f ]['type']).||.!isset($config['so
2a3c0 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 urce']['url'])).{.throw.new.\Une
2a3e0 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 22 xpectedValueException(sprintf(."
2a400 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 20 73 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 package.source.should.be.specifi
2a420 65 64 20 61 73 20 7b 5c 22 74 79 70 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e ed.as.{\"type\":....,.\"url\":..
2a440 2e 2e 7d 2c 5c 6e 25 73 20 67 69 76 65 6e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f ..},\n%s.given",.json_encode($co
2a460 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e nfig['source']).));.}.$package->
2a480 73 65 74 53 6f 75 72 63 65 54 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b setSourceType($config['source'][
2a4a0 27 74 79 70 65 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 55 72 6c 'type']);.$package->setSourceUrl
2a4c0 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 3b 0a 24 70 61 63 ($config['source']['url']);.$pac
2a4e0 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 63 6f 6e 66 69 67 kage->setSourceReference($config
2a500 5b 27 73 6f 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 ['source']['reference']);.}..if.
2a520 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 29 20 7b 0a 69 66 20 28 21 (isset($config['dist'])).{.if.(!
2a540 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 29 0a 7c isset($config['dist']['type']).|
2a560 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 |.!isset($config['dist']['url'])
2a580 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 ).{.throw.new.\UnexpectedValueEx
2a5a0 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 22 70 61 63 6b 61 67 65 20 64 69 73 74 20 73 ception(sprintf(."package.dist.s
2a5c0 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 22 2e 0a 22 7b 5c 22 74 79 70 hould.be.specified.as.".."{\"typ
2a5e0 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 72 65 66 65 72 65 e\":....,.\"url\":....,.\"refere
2a600 6e 63 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 73 68 61 73 75 6d 5c 22 3a 20 2e 2e 2e 7d 2c 5c 6e 25 nce\":....,.\"shasum\":....},\n%
2a620 73 20 67 69 76 65 6e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 5b 27 64 s.given",.json_encode($config['d
2a640 69 73 74 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 54 79 ist']).));.}.$package->setDistTy
2a660 70 65 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 29 3b 0a 24 70 61 pe($config['dist']['type']);.$pa
2a680 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 55 72 6c 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 ckage->setDistUrl($config['dist'
2a6a0 5d 5b 27 75 72 6c 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 ]['url']);.$package->setDistRefe
2a6c0 72 65 6e 63 65 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 rence(isset($config['dist']['ref
2a6e0 65 72 65 6e 63 65 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 erence']).?.$config['dist']['ref
2a700 65 72 65 6e 63 65 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 erence'].:.null);.$package->setD
2a720 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 istSha1Checksum(isset($config['d
2a740 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 ist']['shasum']).?.$config['dist
2a760 27 5d 5b 27 73 68 61 73 75 6d 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 ']['shasum'].:.null);.}....if.('
2a780 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 dev-'.===.substr($package->getPr
2a7a0 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 30 2c 20 34 29 20 26 26 20 69 73 73 65 74 28 24 63 ettyVersion(),.0,.4).&&.isset($c
2a7c0 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 20 onfig['extra']['branch-alias']).
2a7e0 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 &&.is_array($config['extra']['br
2a800 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 anch-alias'])).{.foreach.($confi
2a820 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 g['extra']['branch-alias'].as.$s
2a840 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a ourceBranch.=>.$targetBranch).{.
2a860 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 ..if.('-dev'.!==.substr($targetB
2a880 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 20 24 76 61 6c ranch,.-4)).{.continue;.}...$val
2a8a0 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 idatedTargetBranch.=.$this->vers
2a8c0 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 ionParser->normalizeBranch(subst
2a8e0 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d r($targetBranch,.0,.-4));.if.('-
2a900 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 dev'.!==.substr($validatedTarget
2a920 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 Branch,.-4)).{.continue;.}....if
2a940 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 .(strtolower($package->getPretty
2a960 56 65 72 73 69 6f 6e 28 29 29 20 21 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 6f 75 72 63 Version()).!==.strtolower($sourc
2a980 65 42 72 61 6e 63 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 eBranch)).{.continue;.}..$packag
2a9a0 65 2d 3e 73 65 74 41 6c 69 61 73 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e e->setAlias($validatedTargetBran
2a9c0 63 68 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 70 72 ch);.$package->setPrettyAlias(pr
2a9e0 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 eg_replace('{(\.9{7})+}',.'.x',.
2aa00 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 29 29 3b 0a 62 72 65 61 6b 3b $validatedTargetBranch));.break;
2aa20 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 .}.}..foreach.(Package\BasePacka
2aa40 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 61 73 20 24 74 79 70 65 ge::$supportedLinkTypes.as.$type
2aa60 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 .=>.$opts).{.if.(isset($config[$
2aa80 74 79 70 65 5d 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 73 65 74 27 2e 75 63 66 69 72 73 type])).{.$method.=.'set'.ucfirs
2aaa0 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 7b 24 t($opts['method']);.$package->{$
2aac0 6d 65 74 68 6f 64 7d 28 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 4c 69 6e 6b 73 46 72 6f 6d 43 6f 6e method}(.$this->loadLinksFromCon
2aae0 66 69 67 28 24 70 61 63 6b 61 67 65 2c 20 24 6f 70 74 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e fig($package,.$opts['description
2ab00 27 5d 2c 20 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 0a 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 '],.$config[$type]).);.}.}..if.(
2ab20 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 20 26 26 20 69 73 5f isset($config['suggest']).&&.is_
2ab40 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 array($config['suggest'])).{.for
2ab60 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 74 61 72 each.($config['suggest'].as.$tar
2ab80 67 65 74 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 get.=>.$reason).{.if.('self.vers
2aba0 69 6f 6e 27 20 3d 3d 3d 20 74 72 69 6d 28 24 72 65 61 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 ion'.===.trim($reason)).{.$confi
2abc0 67 5b 27 73 75 67 67 65 73 74 27 5d 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 61 63 6b 61 67 65 g['suggest'][$target].=.$package
2abe0 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 ->getPrettyVersion();.}.}.$packa
2ac00 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 ge->setSuggests($config['suggest
2ac20 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c ']);.}..if.(isset($config['autol
2ac40 6f 61 64 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 oad'])).{.$package->setAutoload(
2ac60 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 $config['autoload']);.}..if.(iss
2ac80 65 74 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 et($config['include-path'])).{.$
2aca0 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 24 63 6f 6e 66 69 67 package->setIncludePaths($config
2acc0 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 ['include-path']);.}..if.(isset(
2ace0 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d $config['support'])).{.$package-
2ad00 3e 73 65 74 53 75 70 70 6f 72 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b >setSupport($config['support']);
2ad20 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 .}..return.$package;.}..private.
2ad40 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 4c 69 6e 6b 73 46 72 6f 6d 43 6f 6e 66 69 67 28 24 70 61 function.loadLinksFromConfig($pa
2ad60 63 6b 61 67 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6c 69 6e 6b ckage,.$description,.array.$link
2ad80 73 53 70 65 63 73 29 0a 7b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 sSpecs).{.$links.=.array();.fore
2ada0 61 63 68 20 28 24 6c 69 6e 6b 73 53 70 65 63 73 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 ach.($linksSpecs.as.$packageName
2adc0 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 .=>.$constraint).{.if.('self.ver
2ade0 73 69 6f 6e 27 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 70 61 72 73 65 64 sion'.===.$constraint).{.$parsed
2ae00 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 Constraint.=.$this->versionParse
2ae20 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 r->parseConstraints($package->ge
2ae40 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 72 tPrettyVersion());.}.else.{.$par
2ae60 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 sedConstraint.=.$this->versionPa
2ae80 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 rser->parseConstraints($constrai
2aea0 6e 74 29 3b 0a 7d 0a 24 6c 69 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 69 nt);.}.$links[].=.new.Package\Li
2aec0 6e 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 nk($package->getName(),.$package
2aee0 4e 61 6d 65 2c 20 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 73 63 72 69 Name,.$parsedConstraint,.$descri
2af00 70 74 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ption,.$constraint);.}..return.$
2af20 6c 69 6e 6b 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 links;.}.}.<?php............name
2af40 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a space.Composer\Package\Loader;..
2af60 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 use.Composer\Package;.use.Compos
2af80 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 er\Package\Version\VersionParser
2afa0 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 ;.....class.ValidatingArrayLoade
2afc0 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 r.implements.LoaderInterface.{.p
2afe0 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e rivate.$loader;.private.$version
2b000 50 61 72 73 65 72 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 45 72 72 6f 72 73 3b 0a 70 Parser;.private.$ignoreErrors;.p
2b020 72 69 76 61 74 65 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 rivate.$errors.=.array();.privat
2b040 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f e.$config;..public.function.__co
2b060 6e 73 74 72 75 63 74 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 2c nstruct(LoaderInterface.$loader,
2b080 20 24 69 67 6e 6f 72 65 45 72 72 6f 72 73 20 3d 20 74 72 75 65 2c 20 56 65 72 73 69 6f 6e 50 61 .$ignoreErrors.=.true,.VersionPa
2b0a0 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f rser.$parser.=.null).{.$this->lo
2b0c0 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 45 72 72 ader.=.$loader;.$this->ignoreErr
2b0e0 6f 72 73 20 3d 20 24 69 67 6e 6f 72 65 45 72 72 6f 72 73 3b 0a 69 66 20 28 21 24 70 61 72 73 65 ors.=.$ignoreErrors;.if.(!$parse
2b100 72 29 20 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 r).{.$parser.=.new.VersionParser
2b120 28 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 ();.}.$this->versionParser.=.$pa
2b140 72 73 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 rser;.}..public.function.load(ar
2b160 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 ray.$config).{.$this->config.=.$
2b180 63 6f 6e 66 69 67 3b 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 6e config;..$this->validateRegex('n
2b1a0 61 6d 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2d 5d ame',.'[A-Za-z0-9][A-Za-z0-9_.-]
2b1c0 2a 2f 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2d 5d 2a 27 2c 20 74 */[A-Za-z0-9][A-Za-z0-9_.-]*',.t
2b1e0 72 75 65 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 rue);..if.(!empty($config['versi
2b200 6f 6e 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 on'])).{.try.{.$this->versionPar
2b220 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 ser->normalize($config['version'
2b240 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 75 6e ]);.}.catch.(\Exception.$e).{.un
2b260 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 set($this->config['version']);.$
2b280 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 76 65 72 73 69 6f 6e 20 3a 20 69 6e 76 61 this->errors[].=.'version.:.inva
2b2a0 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2e lid.value.('.$config['version'].
2b2c0 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 '):.'.$e->getMessage();.}.}..$th
2b2e0 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 74 79 70 65 27 2c 20 27 5b 61 2d 7a 30 is->validateRegex('type',.'[a-z0
2b300 2d 39 2d 5d 2b 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 -9-]+');.$this->validateString('
2b320 74 61 72 67 65 74 2d 64 69 72 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 target-dir');.$this->validateArr
2b340 61 79 28 27 65 78 74 72 61 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 ay('extra');.$this->validateFlat
2b360 41 72 72 61 79 28 27 62 69 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 Array('bin');.$this->validateArr
2b380 61 79 28 27 73 63 72 69 70 74 73 27 29 3b 20 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 ay('scripts');...$this->validate
2b3a0 53 74 72 69 6e 67 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 String('description');.$this->va
2b3c0 6c 69 64 61 74 65 55 72 6c 28 27 68 6f 6d 65 70 61 67 65 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 lidateUrl('homepage');.$this->va
2b3e0 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6b 65 79 77 6f 72 64 73 27 2c 20 27 5b 41 2d lidateFlatArray('keywords',.'[A-
2b400 5a 61 2d 7a 30 2d 39 20 2d 5d 2b 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 Za-z0-9.-]+');..if.(isset($confi
2b420 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 g['license'])).{.if.(is_string($
2b440 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c config['license'])).{.$this->val
2b460 69 64 61 74 65 52 65 67 65 78 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d idateRegex('license',.'[A-Za-z0-
2b480 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 9+..()-]+');.}.else.{.$this->val
2b4a0 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 idateFlatArray('license',.'[A-Za
2b4c0 2d 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c -z0-9+..()-]+');.}.}..$this->val
2b4e0 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 69 6d 65 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 idateString('time');.if.(!empty(
2b500 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a $this->config['time'])).{.try.{.
2b520 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 63 6f 6e 66 69 67 5b 27 74 $date.=.new.\DateTime($config['t
2b540 69 6d 65 27 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 ime']);.}.catch.(\Exception.$e).
2b560 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 74 69 6d 65 20 3a 20 69 6e 76 61 {.$this->errors[].=.'time.:.inva
2b580 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 lid.value.('.$this->config['time
2b5a0 27 5d 2e 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 75 6e 73 65 74 '].'):.'.$e->getMessage();.unset
2b5c0 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 74 ($this->config['time']);.}.}..$t
2b5e0 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 61 75 74 68 6f 72 73 27 29 3b 0a 69 his->validateArray('authors');.i
2b600 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 f.(!empty($this->config['authors
2b620 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 '])).{.foreach.($this->config['a
2b640 75 74 68 6f 72 73 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 61 75 74 68 6f 72 29 20 7b 0a 69 uthors'].as.$key.=>.$author).{.i
2b660 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 26 26 f.(isset($author['homepage']).&&
2b680 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 .!$this->filterUrl($author['home
2b6a0 70 61 67 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 page'])).{.$this->errors[].=.'au
2b6c0 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 68 6f 6d 65 70 61 67 65 20 3a 20 69 6e 76 61 6c 69 thors.'.$key.'.homepage.:.invali
2b6e0 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 68 74 74 70 2f 68 74 d.value,.must.be.a.valid.http/ht
2b700 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 tps.URL';.unset($this->config['a
2b720 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 69 uthors'][$key]['homepage']);.}.i
2b740 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 f.(isset($author['email']).&&.!f
2b760 69 6c 74 65 72 5f 76 61 72 28 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 ilter_var($author['email'],.FILT
2b780 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 ER_VALIDATE_EMAIL)).{.$this->err
2b7a0 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 65 6d 61 69 6c 20 ors[].=.'authors.'.$key.'.email.
2b7c0 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 :.invalid.value,.must.be.a.valid
2b7e0 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f .email.address';.unset($this->co
2b800 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 65 6d 61 69 6c 27 5d 29 3b nfig['authors'][$key]['email']);
2b820 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 27 6e 61 6d 65 27 5d 29 20 26 26 .}.if.(isset($author['name']).&&
2b840 20 21 69 73 5f 73 74 72 69 6e 67 28 24 61 75 74 68 6f 72 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a .!is_string($author['name'])).{.
2b860 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 $this->errors[].=.'authors.'.$ke
2b880 79 2e 27 2e 6e 61 6d 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 y.'.name.:.invalid.value,.must.b
2b8a0 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 e.a.string';.unset($this->config
2b8c0 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 6e 61 6d 65 27 5d 29 3b 0a 7d 0a 69 66 ['authors'][$key]['name']);.}.if
2b8e0 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 27 72 6f 6c 65 27 5d 29 20 26 26 20 21 69 73 5f .(isset($author['role']).&&.!is_
2b900 73 74 72 69 6e 67 28 24 61 75 74 68 6f 72 5b 27 72 6f 6c 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 string($author['role'])).{.$this
2b920 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 72 ->errors[].=.'authors.'.$key.'.r
2b940 6f 6c 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 ole.:.invalid.value,.must.be.a.s
2b960 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 tring';.unset($this->config['aut
2b980 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 72 6f 6c 65 27 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 hors'][$key]['role']);.}.}.if.(e
2b9a0 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 mpty($this->config['authors'])).
2b9c0 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d {.unset($this->config['authors']
2b9e0 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 75 );.}.}..$this->validateArray('su
2ba00 70 70 6f 72 74 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 pport');.if.(!empty($this->confi
2ba20 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 g['support'])).{.if.(isset($this
2ba40 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 ->config['support']['email']).&&
2ba60 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 .!filter_var($this->config['supp
2ba80 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f ort']['email'],.FILTER_VALIDATE_
2baa0 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 73 75 70 EMAIL)).{.$this->errors[].=.'sup
2bac0 70 6f 72 74 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 port.email.:.invalid.value,.must
2bae0 20 62 65 20 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b 0a 75 6e 73 65 .be.a.valid.email.address';.unse
2bb00 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 t($this->config['support']['emai
2bb20 6c 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 l']);.}..if.(isset($this->config
2bb40 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 0a 26 26 20 28 21 66 69 6c 74 65 72 5f ['support']['irc']).&&.(!filter_
2bb60 76 61 72 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 var($this->config['support']['ir
2bb80 63 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c 29 20 7c 7c 20 21 70 72 c'],.FILTER_VALIDATE_URL).||.!pr
2bba0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 69 72 63 3a 2f 2f 7d 69 75 27 2c 20 24 74 68 69 73 2d 3e 63 eg_match('{^irc://}iu',.$this->c
2bbc0 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 29 0a 29 20 7b 0a 24 74 onfig['support']['irc'])).).{.$t
2bbe0 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 69 72 63 20 3a 20 69 his->errors[].=.'support.irc.:.i
2bc00 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 27 3b 0a 75 6e 73 65 74 28 24 nvalid.value,.must.be.';.unset($
2bc20 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 3b this->config['support']['irc']);
2bc40 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 6f .}..foreach.(array('issues',.'fo
2bc60 72 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 29 20 61 73 20 24 6b 65 79 29 rum',.'wiki',.'source').as.$key)
2bc80 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 .{.if.(isset($this->config['supp
2bca0 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 ort'][$key]).&&.!$this->filterUr
2bcc0 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d l($this->config['support'][$key]
2bce0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e )).{.$this->errors[].=.'support.
2bd00 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 '.$key.'.:.invalid.value,.must.b
2bd20 65 20 61 20 76 61 6c 69 64 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 e.a.valid.http/https.URL';.unset
2bd40 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 ($this->config['support'][$key])
2bd60 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 ;.}.}.if.(empty($this->config['s
2bd80 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 upport'])).{.unset($this->config
2bda0 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 20 0a 20 0a 20 0a 0a 0a 20 0a 0a 0a ['support']);.}.}...............
2bdc0 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 69 6e 63 6c 75 .$this->validateFlatArray('inclu
2bde0 64 65 2d 70 61 74 68 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 de-path');....if.(isset($this->c
2be00 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 onfig['extra']['branch-alias']))
2be20 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 .{.if.(!is_array($this->config['
2be40 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a 24 74 68 69 extra']['branch-alias'])).{.$thi
2be60 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 s->errors[].=.'extra.branch-alia
2be80 73 20 3a 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 76 65 72 73 69 6f 6e 73 s.:.must.be.an.array.of.versions
2bea0 20 3d 3e 20 61 6c 69 61 73 65 73 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 .=>.aliases';.}.else.{.foreach.(
2bec0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 $this->config['extra']['branch-a
2bee0 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 72 67 lias'].as.$sourceBranch.=>.$targ
2bf00 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 etBranch).{...if.('-dev'.!==.sub
2bf20 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 69 73 2d str($targetBranch,.-4)).{.$this-
2bf40 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e >errors[].=.'extra.branch-alias.
2bf60 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 '.$sourceBranch.'.:.the.target.b
2bf80 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 65 ranch.('.$targetBranch.').must.e
2bfa0 6e 64 20 69 6e 20 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 nd.in.-dev';.unset($this->config
2bfc0 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 ['extra']['branch-alias'][$sourc
2bfe0 65 42 72 61 6e 63 68 5d 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 61 6c 69 eBranch]);..continue;.}....$vali
2c000 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 datedTargetBranch.=.$this->versi
2c020 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 72 onParser->normalizeBranch(substr
2c040 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d 64 ($targetBranch,.0,.-4));.if.('-d
2c060 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 ev'.!==.substr($validatedTargetB
2c080 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 ranch,.-4)).{.$this->errors[].=.
2c0a0 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 'extra.branch-alias.'.$sourceBra
2c0c0 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 nch.'.:.the.target.branch.('.$ta
2c0e0 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 62 65 20 61 20 70 61 72 73 65 61 62 6c rgetBranch.').must.be.a.parseabl
2c100 65 20 6e 75 6d 62 65 72 20 6c 69 6b 65 20 32 2e 30 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 e.number.like.2.0-dev';.unset($t
2c120 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 his->config['extra']['branch-ali
2c140 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 as'][$sourceBranch]);.}.}.}.}..i
2c160 66 20 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 26 26 20 21 24 74 68 69 73 2d 3e 69 67 6e 6f f.($this->errors.&&.!$this->igno
2c180 72 65 45 72 72 6f 72 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e reErrors).{.throw.new.\Exception
2c1a0 28 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 29 29 3b 0a (implode("\n",.$this->errors));.
2c1c0 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 }..$package.=.$this->loader->loa
2c1e0 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 d($this->config);.$this->errors.
2c200 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 3b =.array();.$this->config.=.null;
2c220 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 ..return.$package;.}..private.fu
2c240 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 24 70 72 6f 70 65 72 74 79 2c 20 nction.validateRegex($property,.
2c260 24 72 65 67 65 78 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 $regex,.$mandatory.=.false).{.if
2c280 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 .(!$this->validateString($proper
2c2a0 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b ty,.$mandatory)).{.return.false;
2c2c0 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e .}..if.(!preg_match('{^'.$regex.
2c2e0 27 24 7d 75 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 '$}u',.$this->config[$property])
2c300 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e ).{.$this->errors[].=.$property.
2c320 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 2e '.:.invalid.value,.must.match.'.
2c340 24 72 65 67 65 78 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f $regex;.unset($this->config[$pro
2c360 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 perty]);..return.false;.}..retur
2c380 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 n.true;.}..private.function.vali
2c3a0 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 dateString($property,.$mandatory
2c3c0 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e .=.false).{.if.(isset($this->con
2c3e0 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 74 fig[$property]).&&.!is_string($t
2c400 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 his->config[$property])).{.$this
2c420 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 6c ->errors[].=.$property.'.:.shoul
2c440 64 20 62 65 20 61 20 73 74 72 69 6e 67 2c 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 69 73 2d 3e d.be.a.string,.'.gettype($this->
2c460 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 config[$property]).'.given';.uns
2c480 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 et($this->config[$property]);..r
2c4a0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 eturn.false;.}..if.(!isset($this
2c4c0 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 7c 7c 20 74 72 69 6d 28 24 74 68 ->config[$property]).||.trim($th
2c4e0 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 3d 3d 3d 20 27 27 29 20 7b is->config[$property]).===.'').{
2c500 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 .if.($mandatory).{.$this->errors
2c520 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 70 72 65 73 65 [].=.$property.'.:.must.be.prese
2c540 6e 74 27 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 nt';.}.unset($this->config[$prop
2c560 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e erty]);..return.false;.}..return
2c580 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 .true;.}..private.function.valid
2c5a0 61 74 65 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d ateArray($property,.$mandatory.=
2c5c0 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 .false).{.if.(isset($this->confi
2c5e0 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 g[$property]).&&.!is_array($this
2c600 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 ->config[$property])).{.$this->e
2c620 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 rrors[].=.$property.'.:.should.b
2c640 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 69 73 2d 3e 63 6f 6e e.an.array,.'.gettype($this->con
2c660 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 fig[$property]).'.given';.unset(
2c680 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 $this->config[$property]);..retu
2c6a0 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 rn.false;.}..if.(!isset($this->c
2c6c0 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 7c 7c 20 21 63 6f 75 6e 74 28 24 74 68 69 onfig[$property]).||.!count($thi
2c6e0 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 69 66 20 28 24 6d 61 s->config[$property])).{.if.($ma
2c700 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 ndatory).{.$this->errors[].=.$pr
2c720 6f 70 65 72 74 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 70 72 65 73 65 6e 74 20 61 6e 64 20 63 operty.'.:.must.be.present.and.c
2c740 6f 6e 74 61 69 6e 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 27 3b 0a 7d 0a ontain.at.least.one.element';.}.
2c760 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b unset($this->config[$property]);
2c780 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a ..return.false;.}..return.true;.
2c7a0 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 46 6c 61 74 }..private.function.validateFlat
2c7c0 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 78 20 3d 20 6e 75 6c 6c 2c 20 Array($property,.$regex.=.null,.
2c7e0 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 $mandatory.=.false).{.if.(!$this
2c800 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 ->validateArray($property,.$mand
2c820 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 73 73 atory)).{.return.false;.}..$pass
2c840 20 3d 20 74 72 75 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b .=.true;.foreach.($this->config[
2c860 24 70 72 6f 70 65 72 74 79 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a $property].as.$key.=>.$value).{.
2c880 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 20 26 26 20 21 69 73 5f 6e 75 if.(!is_string($value).&&.!is_nu
2c8a0 6d 65 72 69 63 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d meric($value)).{.$this->errors[]
2c8c0 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 6d 75 73 74 20 62 .=.$property.'.'.$key.'.:.must.b
2c8e0 65 20 61 20 73 74 72 69 6e 67 20 6f 72 20 69 6e 74 2c 20 27 2e 67 65 74 74 79 70 65 28 24 76 61 e.a.string.or.int,.'.gettype($va
2c900 6c 75 65 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 lue).'.given';.unset($this->conf
2c920 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 ig[$property][$key]);.$pass.=.fa
2c940 6c 73 65 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 67 65 78 20 26 26 lse;..continue;.}..if.($regex.&&
2c960 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 .!preg_match('{^'.$regex.'$}u',.
2c980 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 $value)).{.$this->errors[].=.$pr
2c9a0 6f 70 65 72 74 79 2e 27 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 operty.'.'.$key.'.:.invalid.valu
2c9c0 65 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 75 6e 73 65 74 28 24 74 e,.must.match.'.$regex;.unset($t
2c9e0 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 his->config[$property][$key]);.$
2ca00 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 73 73 3b pass.=.false;.}.}..return.$pass;
2ca20 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 55 72 6c .}..private.function.validateUrl
2ca40 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a ($property,.$mandatory.=.false).
2ca60 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 {.if.(!$this->validateString($pr
2ca80 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 operty,.$mandatory)).{.return.fa
2caa0 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 74 lse;.}..if.(!$this->filterUrl($t
2cac0 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 his->config[$property])).{.$this
2cae0 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c ->errors[].=.$property.'.:.inval
2cb00 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 68 74 74 70 2f 68 id.value,.must.be.a.valid.http/h
2cb20 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 ttps.URL';.unset($this->config[$
2cb40 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a property]);..return.false;.}.}..
2cb60 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 55 72 6c 28 24 76 61 6c 75 private.function.filterUrl($valu
2cb80 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 69 6c 74 65 72 5f 76 61 72 28 24 76 61 6c 75 65 2c 20 46 e).{.return.filter_var($value,.F
2cba0 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 ILTER_VALIDATE_URL).&&.preg_matc
2cbc0 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 75 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d h('{^https?://}iu',.$value);.}.}
2cbe0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
2cc00 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 oser\Package\Loader;..use.Compos
2cc20 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 er\Package\BasePackage;.use.Comp
2cc40 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 oser\Config;.use.Composer\Factor
2cc60 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c y;.use.Composer\Package\Version\
2cc80 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f VersionParser;.use.Composer\Repo
2cca0 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f sitory\RepositoryManager;.use.Co
2ccc0 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a mposer\Util\ProcessExecutor;....
2cce0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 20 65 78 74 .....class.RootPackageLoader.ext
2cd00 65 6e 64 73 20 41 72 72 61 79 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 61 6e 61 ends.ArrayLoader.{.private.$mana
2cd20 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 70 ger;.private.$config;.private.$p
2cd40 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 rocess;..public.function.__const
2cd60 72 75 63 74 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 2c ruct(RepositoryManager.$manager,
2cd80 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 .Config.$config,.VersionParser.$
2cda0 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 parser.=.null,.ProcessExecutor.$
2cdc0 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 process.=.null).{.$this->manager
2cde0 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f .=.$manager;.$this->config.=.$co
2ce00 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 nfig;.$this->process.=.$process.
2ce20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 70 61 72 65 6e 74 ?:.new.ProcessExecutor();.parent
2ce40 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 72 73 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 ::__construct($parser);.}..publi
2ce60 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b c.function.load(array.$config).{
2ce80 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a .if.(!isset($config['name'])).{.
2cea0 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 5f 5f 72 6f 6f 74 5f 5f 27 3b 0a 7d 0a $config['name'].=.'__root__';.}.
2cec0 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 if.(!isset($config['version'])).
2cee0 7b 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 {...if.(getenv('COMPOSER_ROOT_VE
2cf00 52 53 49 4f 4e 27 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 67 65 74 65 6e 76 28 27 43 4f RSION')).{.$version.=.getenv('CO
2cf20 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a MPOSER_ROOT_VERSION');.}.else.{.
2cf40 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 56 65 72 73 69 6f 6e 28 24 $version.=.$this->guessVersion($
2cf60 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 config);.}..if.(!$version).{.$ve
2cf80 72 73 69 6f 6e 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 5b 27 76 65 72 rsion.=.'1.0.0';.}..$config['ver
2cfa0 73 69 6f 6e 27 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 sion'].=.$version;.}.else.{.$ver
2cfc0 73 69 6f 6e 20 3d 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 24 70 sion.=.$config['version'];.}..$p
2cfe0 61 63 6b 61 67 65 20 3d 20 70 61 72 65 6e 74 3a 3a 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 3b 0a ackage.=.parent::load($config);.
2d000 0a 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 .$aliases.=.array();.$stabilityF
2d020 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 lags.=.array();.$references.=.ar
2d040 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 27 2c ray();.foreach.(array('require',
2d060 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a .'require-dev').as.$linkType).{.
2d080 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 29 20 7b if.(isset($config[$linkType])).{
2d0a0 0a 24 6c 69 6e 6b 49 6e 66 6f 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f .$linkInfo.=.BasePackage::$suppo
2d0c0 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 5b 24 6c 69 6e 6b 54 79 70 65 5d 3b 0a 24 6d 65 74 68 6f rtedLinkTypes[$linkType];.$metho
2d0e0 64 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 49 6e 66 6f 5b 27 6d 65 74 d.=.'get'.ucfirst($linkInfo['met
2d100 68 6f 64 27 5d 29 3b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 hod']);.$links.=.array();.foreac
2d120 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 24 6d 65 74 68 6f 64 28 29 20 61 73 20 24 6c 69 6e 6b 29 h.($package->$method().as.$link)
2d140 20 7b 0a 24 6c 69 6e 6b 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 .{.$links[$link->getTarget()].=.
2d160 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 67 65 74 50 72 65 74 74 $link->getConstraint()->getPrett
2d180 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 yString();.}.$aliases.=.$this->e
2d1a0 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 24 6c 69 6e 6b 73 2c 20 24 61 6c 69 61 73 65 73 29 3b xtractAliases($links,.$aliases);
2d1c0 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 .$stabilityFlags.=.$this->extrac
2d1e0 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 6c 69 6e 6b 73 2c 20 24 73 74 61 62 69 6c 69 tStabilityFlags($links,.$stabili
2d200 74 79 46 6c 61 67 73 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 tyFlags);.$references.=.$this->e
2d220 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 24 6c 69 6e 6b 73 2c 20 24 72 65 66 65 72 65 xtractReferences($links,.$refere
2d240 6e 63 65 73 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 65 73 nces);.}.}..$package->setAliases
2d260 28 24 61 6c 69 61 73 65 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 74 61 62 69 6c 69 ($aliases);.$package->setStabili
2d280 74 79 46 6c 61 67 73 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 24 70 61 63 6b 61 tyFlags($stabilityFlags);.$packa
2d2a0 67 65 2d 3e 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a ge->setReferences($references);.
2d2c0 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 .if.(isset($config['minimum-stab
2d2e0 69 6c 69 74 79 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4d 69 6e 69 6d 75 6d ility'])).{.$package->setMinimum
2d300 53 74 61 62 69 6c 69 74 79 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 6c 69 Stability(VersionParser::normali
2d320 7a 65 53 74 61 62 69 6c 69 74 79 28 24 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 zeStability($config['minimum-sta
2d340 62 69 6c 69 74 79 27 5d 29 29 3b 0a 7d 0a 0a 24 72 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a bility']));.}..$repos.=.Factory:
2d360 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 6e 75 6c 6c 2c :createDefaultRepositories(null,
2d380 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 29 3b .$this->config,.$this->manager);
2d3a0 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 .foreach.($repos.as.$repo).{.$th
2d3c0 69 73 2d 3e 6d 61 6e 61 67 65 72 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f is->manager->addRepository($repo
2d3e0 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 );.}.$package->setRepositories($
2d400 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 this->config->getRepositories())
2d420 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 ;..return.$package;.}..private.f
2d440 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 72 65 unction.extractAliases(array.$re
2d460 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 quires,.array.$aliases).{.foreac
2d480 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 h.($requires.as.$reqName.=>.$req
2d4a0 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e Version).{.if.(preg_match('{^([^
2d4c0 2c 5c 73 5d 2b 29 20 2b 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c 20 24 72 65 71 56 65 ,\s]+).+as.+([^,\s]+)$}',.$reqVe
2d4e0 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 5b 5d 20 3d 20 61 rsion,.$match)).{.$aliases[].=.a
2d500 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 rray(.'package'.=>.strtolower($r
2d520 65 71 4e 61 6d 65 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 65 72 eqName),.'version'.=>.$this->ver
2d540 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 5b 31 5d 29 sionParser->normalize($match[1])
2d560 2c 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 61 6c 69 61 73 5f 6e ,.'alias'.=>.$match[2],.'alias_n
2d580 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 ormalized'.=>.$this->versionPars
2d5a0 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 5b 32 5d 29 2c 0a 29 3b 0a 7d 0a 7d er->normalize($match[2]),.);.}.}
2d5c0 0a 0a 72 65 74 75 72 6e 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 ..return.$aliases;.}..private.fu
2d5e0 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 72 72 nction.extractStabilityFlags(arr
2d600 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c ay.$requires,.array.$stabilityFl
2d620 61 67 73 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 42 61 73 65 50 61 63 6b 61 67 ags).{.$stabilities.=.BasePackag
2d640 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 e::$stabilities;.foreach.($requi
2d660 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 res.as.$reqName.=>.$reqVersion).
2d680 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 5d 2a 3f 40 28 {...if.(preg_match('{^[^,\s]*?@(
2d6a0 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 73 74 61 62 69 '.implode('|',.array_keys($stabi
2d6c0 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d lities)).')$}i',.$reqVersion,.$m
2d6e0 61 74 63 68 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 atch)).{.$name.=.strtolower($req
2d700 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 Name);.$stability.=.$stabilities
2d720 5b 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 [VersionParser::normalizeStabili
2d740 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 5d 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 62 ty($match[1])];..if.(isset($stab
2d760 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 73 74 61 62 69 6c 69 74 79 ilityFlags[$name]).&&.$stability
2d780 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 6f 6e Flags[$name].>.$stability).{.con
2d7a0 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 tinue;.}.$stabilityFlags[$name].
2d7c0 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 =.$stability;..continue;.}....if
2d7e0 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 24 7d 27 2c 20 24 72 65 .(preg_match('{^[^,\s@]+$}',.$re
2d800 71 56 65 72 73 69 6f 6e 29 20 26 26 20 27 73 74 61 62 6c 65 27 20 21 3d 3d 20 28 24 73 74 61 62 qVersion).&&.'stable'.!==.($stab
2d820 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 ilityName.=.VersionParser::parse
2d840 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 Stability($reqVersion))).{.$name
2d860 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c .=.strtolower($reqName);.$stabil
2d880 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 4e 61 6d ity.=.$stabilities[$stabilityNam
2d8a0 65 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e e];.if.(isset($stabilityFlags[$n
2d8c0 61 6d 65 5d 29 20 26 26 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 ame]).&&.$stabilityFlags[$name].
2d8e0 3e 20 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 >.$stability).{.continue;.}.$sta
2d900 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b bilityFlags[$name].=.$stability;
2d920 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a .}.}..return.$stabilityFlags;.}.
2d940 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 52 65 66 65 72 65 6e .private.function.extractReferen
2d960 63 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 65 66 65 ces(array.$requires,.array.$refe
2d980 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 rences).{.foreach.($requires.as.
2d9a0 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 70 $reqName.=>.$reqVersion).{.if.(p
2d9c0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 3f 23 28 5b 61 2d 66 30 2d 39 5d reg_match('{^[^,\s@]+?#([a-f0-9]
2d9e0 2b 29 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 20 26 26 20 27 +)$}',.$reqVersion,.$match).&&.'
2da00 64 65 76 27 20 3d 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 69 dev'.===.($stabilityName.=.Versi
2da20 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 72 onParser::parseStability($reqVer
2da40 73 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 sion))).{.$name.=.strtolower($re
2da60 71 4e 61 6d 65 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 6d 61 qName);.$references[$name].=.$ma
2da80 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 72 65 6e 63 65 73 3b tch[1];.}.}..return.$references;
2daa0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 56 65 72 73 69 6f .}..private.function.guessVersio
2dac0 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 66 75 6e 63 74 69 6f n(array.$config).{...if.(functio
2dae0 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 20 26 26 20 30 20 3d 3d 3d 20 24 n_exists('proc_open').&&.0.===.$
2db00 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e this->process->execute('git.bran
2db20 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 ch.--no-color.--no-abbrev.-v',.$
2db40 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a output)).{.$branches.=.array();.
2db60 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 66 61 6c 73 65 3b 0a 24 76 65 72 73 69 $isFeatureBranch.=.false;.$versi
2db80 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 on.=.null;..foreach.($this->proc
2dba0 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 ess->splitLines($output).as.$bra
2dbc0 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 nch).{.if.($branch.&&.preg_match
2dbe0 28 27 7b 5e 28 3f 3a 5c 2a 20 29 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b 3f 2f 29 3f 28 5c 53 2b 7c 5c ('{^(?:\*.).*(?:[^/.]+?/)?(\S+|\
2dc00 28 6e 6f 20 62 72 61 6e 63 68 5c 29 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 (no.branch\)).*([a-f0-9]+)..*$}'
2dc20 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 ,.$branch,.$match)).{.if.($match
2dc40 5b 31 5d 20 3d 3d 3d 20 27 28 6e 6f 20 62 72 61 6e 63 68 29 27 29 20 7b 0a 24 76 65 72 73 69 6f [1].===.'(no.branch)').{.$versio
2dc60 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 69 73 46 65 61 74 75 72 65 n.=.'dev-'.$match[2];.$isFeature
2dc80 42 72 61 6e 63 68 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e Branch.=.true;.}.else.{.$version
2dca0 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 .=.$this->versionParser->normali
2dcc0 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 zeBranch($match[1]);.$isFeatureB
2dce0 72 61 6e 63 68 20 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 ranch.=.0.===.strpos($version,.'
2dd00 64 65 76 2d 27 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 dev-');.if.('9999999-dev'.===.$v
2dd20 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 ersion).{.$version.=.'dev-'.$mat
2dd40 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 ch[1];.}.}.}..if.($branch.&&.!pr
2dd60 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 eg_match('{^.*[^/]+/HEAD.}',.$br
2dd80 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a anch)).{.if.(preg_match('{^(?:\*
2dda0 20 29 3f 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b 3f 2f 29 3f 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d .)?.*(?:[^/.]+?/)?(\S+).*([a-f0-
2ddc0 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 9]+)..*$}',.$branch,.$match)).{.
2dde0 24 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a $branches[].=.$match[1];.}.}.}..
2de00 69 66 20 28 21 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 if.(!$isFeatureBranch).{.return.
2de20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 28 69 73 73 65 74 28 24 63 6f 6e $version;.}......if.((isset($con
2de40 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 20 26 26 fig['extra']['branch-alias']).&&
2de60 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 .!isset($config['extra']['branch
2de80 2d 61 6c 69 61 73 27 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 0a 7c 7c 20 73 74 72 70 6f 73 28 6a -alias'][$version])).||.strpos(j
2dea0 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 29 2c 20 27 22 73 65 6c 66 2e 76 65 72 73 son_encode($config),.'"self.vers
2dec0 69 6f 6e 22 27 29 0a 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 ion"').).{.$branch.=.preg_replac
2dee0 65 28 27 7b 5e 64 65 76 2d 7d 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6c 65 6e e('{^dev-}',.'',.$version);.$len
2df00 67 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 gth.=.PHP_INT_MAX;.foreach.($bra
2df20 6e 63 68 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 63 61 nches.as.$candidate).{...if.($ca
2df40 6e 64 69 64 61 74 65 20 3d 3d 3d 20 24 62 72 61 6e 63 68 20 7c 7c 20 21 70 72 65 67 5f 6d 61 74 ndidate.===.$branch.||.!preg_mat
2df60 63 68 28 27 7b 5e 28 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c 74 7c 64 65 76 65 ch('{^(master|trunk|default|deve
2df80 6c 6f 70 7c 5c 64 2b 5c 2e 2e 2b 29 24 7d 27 2c 20 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b 0a lop|\d+\..+)$}',.$candidate)).{.
2dfa0 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f continue;.}.if.(0.!==.$this->pro
2dfc0 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 76 2d 6c 69 73 74 20 27 2e 24 63 cess->execute('git.rev-list.'.$c
2dfe0 61 6e 64 69 64 61 74 65 2e 27 2e 2e 27 2e 24 62 72 61 6e 63 68 2c 20 24 6f 75 74 70 75 74 29 29 andidate.'..'.$branch,.$output))
2e000 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 .{.continue;.}.if.(strlen($outpu
2e020 74 29 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e t).<.$length).{.$length.=.strlen
2e040 28 24 6f 75 74 70 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 ($output);.$version.=.$this->ver
2e060 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 63 61 6e sionParser->normalizeBranch($can
2e080 64 69 64 61 74 65 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 didate);.if.('9999999-dev'.===.$
2e0a0 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 version).{.$version.=.'dev-'.$ma
2e0c0 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e tch[1];.}.}.}.}..return.$version
2e0e0 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ;.}.}.}.<?php............namespa
2e100 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 ce.Composer\Package;..use.Compos
2e120 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 er\Package\Version\VersionParser
2e140 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 20 65 78 74 65 ;.......class.MemoryPackage.exte
2e160 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 nds.BasePackage.{.protected.$typ
2e180 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 44 69 72 3b 0a 70 72 6f 74 65 63 74 e;.protected.$targetDir;.protect
2e1a0 65 64 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 ed.$installationSource;.protecte
2e1c0 64 20 24 73 6f 75 72 63 65 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 d.$sourceType;.protected.$source
2e1e0 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b Url;.protected.$sourceReference;
2e200 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 .protected.$distType;.protected.
2e220 24 64 69 73 74 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 52 65 66 65 72 65 6e $distUrl;.protected.$distReferen
2e240 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 3b ce;.protected.$distSha1Checksum;
2e260 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 .protected.$version;.protected.$
2e280 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 prettyVersion;.protected.$reposi
2e2a0 74 6f 72 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 63 65 6e 73 65 20 3d 20 61 72 72 tories;.protected.$license.=.arr
2e2c0 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 70 72 ay();.protected.$releaseDate;.pr
2e2e0 6f 74 65 63 74 65 64 20 24 6b 65 79 77 6f 72 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 otected.$keywords;.protected.$au
2e300 74 68 6f 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 thors;.protected.$description;.p
2e320 72 6f 74 65 63 74 65 64 20 24 68 6f 6d 65 70 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 rotected.$homepage;.protected.$e
2e340 78 74 72 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 61 72 xtra.=.array();.protected.$binar
2e360 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 63 72 69 70 74 ies.=.array();.protected.$script
2e380 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 65 73 20 s.=.array();.protected.$aliases.
2e3a0 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 3b 0a 70 72 6f =.array();.protected.$alias;.pro
2e3c0 74 65 63 74 65 64 20 24 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 tected.$prettyAlias;.protected.$
2e3e0 64 65 76 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 dev;..protected.$minimumStabilit
2e400 79 20 3d 20 27 73 74 61 62 6c 65 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 y.=.'stable';.protected.$stabili
2e420 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 tyFlags.=.array();.protected.$re
2e440 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 ferences.=.array();..protected.$
2e460 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 requires.=.array();.protected.$c
2e480 6f 6e 66 6c 69 63 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 onflicts.=.array();.protected.$p
2e4a0 72 6f 76 69 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 rovides.=.array();.protected.$re
2e4c0 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 places.=.array();.protected.$dev
2e4e0 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 Requires.=.array();.protected.$s
2e500 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 uggests.=.array();.protected.$au
2e520 74 6f 6c 6f 61 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 63 toload.=.array();.protected.$inc
2e540 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ludePaths.=.array();.protected.$
2e560 73 75 70 70 6f 72 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 support.=.array();.........publi
2e580 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 76 c.function.__construct($name,.$v
2e5a0 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 ersion,.$prettyVersion).{.parent
2e5c0 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 ::__construct($name);..$this->ve
2e5e0 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 rsion.=.$version;.$this->prettyV
2e600 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d ersion.=.$prettyVersion;..$this-
2e620 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 >stability.=.VersionParser::pars
2e640 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 eStability($version);.$this->dev
2e660 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 7d .=.$this->stability.===.'dev';.}
2e680 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 .....public.function.isDev().{.r
2e6a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 eturn.$this->dev;.}.....public.f
2e6c0 75 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e unction.setType($type).{.$this->
2e6e0 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 type.=.$type;.}.....public.funct
2e700 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 ion.getType().{.return.$this->ty
2e720 70 65 20 3f 3a 20 27 6c 69 62 72 61 72 79 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 pe.?:.'library';.}.....public.fu
2e740 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 nction.getStability().{.return.$
2e760 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 this->stability;.}.....public.fu
2e780 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 65 74 44 69 72 28 24 74 61 72 67 65 74 44 69 72 29 0a nction.setTargetDir($targetDir).
2e7a0 7b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 20 3d 20 24 74 61 72 67 65 74 44 69 72 3b {.$this->targetDir.=.$targetDir;
2e7c0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 .}.....public.function.getTarget
2e7e0 44 69 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 3b Dir().{.return.$this->targetDir;
2e800 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 74 72 61 28 .}.....public.function.setExtra(
2e820 61 72 72 61 79 20 24 65 78 74 72 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 20 3d 20 24 array.$extra).{.$this->extra.=.$
2e840 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 extra;.}.....public.function.get
2e860 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 74 72 61 3b 0a 7d Extra().{.return.$this->extra;.}
2e880 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 69 6e 61 72 69 65 73 .....public.function.setBinaries
2e8a0 28 61 72 72 61 79 20 24 62 69 6e 61 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 61 72 (array.$binaries).{.$this->binar
2e8c0 69 65 73 20 3d 20 24 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ies.=.$binaries;.}.....public.fu
2e8e0 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.getBinaries().{.return.$t
2e900 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 his->binaries;.}.....public.func
2e920 74 69 6f 6e 20 73 65 74 53 63 72 69 70 74 73 28 61 72 72 61 79 20 24 73 63 72 69 70 74 73 29 0a tion.setScripts(array.$scripts).
2e940 7b 0a 24 74 68 69 73 2d 3e 73 63 72 69 70 74 73 20 3d 20 24 73 63 72 69 70 74 73 3b 0a 7d 0a 0a {.$this->scripts.=.$scripts;.}..
2e960 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a ...public.function.getScripts().
2e980 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 {.return.$this->scripts;.}.....p
2e9a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 ublic.function.setAliases(array.
2e9c0 24 61 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 24 61 6c $aliases).{.$this->aliases.=.$al
2e9e0 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 iases;.}.....public.function.get
2ea00 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 Aliases().{.return.$this->aliase
2ea20 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 s;.}.....public.function.setAlia
2ea40 73 28 24 61 6c 69 61 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 20 3d 20 24 61 6c 69 61 s($alias).{.$this->alias.=.$alia
2ea60 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 s;.}.....public.function.getAlia
2ea80 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a s().{.return.$this->alias;.}....
2eaa0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 .public.function.setPrettyAlias(
2eac0 24 70 72 65 74 74 79 41 6c 69 61 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 41 6c 69 $prettyAlias).{.$this->prettyAli
2eae0 61 73 20 3d 20 24 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 as.=.$prettyAlias;.}.....public.
2eb00 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 function.getPrettyAlias().{.retu
2eb20 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 rn.$this->prettyAlias;.}.....pub
2eb40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 lic.function.setInstallationSour
2eb60 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 ce($type).{.$this->installationS
2eb80 6f 75 72 63 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ource.=.$type;.}.....public.func
2eba0 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 tion.getInstallationSource().{.r
2ebc0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 3b eturn.$this->installationSource;
2ebe0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 .}.....public.function.setSource
2ec00 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 54 79 70 65 20 Type($type).{.$this->sourceType.
2ec20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 =.$type;.}.....public.function.g
2ec40 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 etSourceType().{.return.$this->s
2ec60 6f 75 72 63 65 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ourceType;.}.....public.function
2ec80 20 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 .setSourceUrl($url).{.$this->sou
2eca0 72 63 65 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rceUrl.=.$url;.}.....public.func
2ecc0 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tion.getSourceUrl().{.return.$th
2ece0 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 is->sourceUrl;.}.....public.func
2ed00 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e tion.setSourceReference($referen
2ed20 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 20 3d 20 24 ce).{.$this->sourceReference.=.$
2ed40 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e reference;.}.....public.function
2ed60 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 .getSourceReference().{.return.$
2ed80 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 this->sourceReference;.}.....pub
2eda0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 54 79 70 65 28 24 74 79 70 65 29 0a lic.function.setDistType($type).
2edc0 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a {.$this->distType.=.$type;.}....
2ede0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b .public.function.getDistType().{
2ee00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 .return.$this->distType;.}.....p
2ee20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 55 72 6c 28 24 75 72 6c 29 0a ublic.function.setDistUrl($url).
2ee40 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 {.$this->distUrl.=.$url;.}.....p
2ee60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 0a 7b 0a 72 65 ublic.function.getDistUrl().{.re
2ee80 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 turn.$this->distUrl;.}.....publi
2eea0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 c.function.setDistReference($ref
2eec0 65 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 20 3d erence).{.$this->distReference.=
2eee0 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$reference;.}.....public.functi
2ef00 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 on.getDistReference().{.return.$
2ef20 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 this->distReference;.}.....publi
2ef40 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 24 c.function.setDistSha1Checksum($
2ef60 73 68 61 31 63 68 65 63 6b 73 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 sha1checksum).{.$this->distSha1C
2ef80 68 65 63 6b 73 75 6d 20 3d 20 24 73 68 61 31 63 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 hecksum.=.$sha1checksum;.}.....p
2efa0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 ublic.function.getDistSha1Checks
2efc0 75 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 68 65 um().{.return.$this->distSha1Che
2efe0 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 cksum;.}.......public.function.s
2f000 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 0a 7b 0a etRepositories($repositories).{.
2f020 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 $this->repositories.=.$repositor
2f040 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 ies;.}.....public.function.getRe
2f060 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 positories().{.return.$this->rep
2f080 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ositories;.}.....public.function
2f0a0 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 .getVersion().{.return.$this->ve
2f0c0 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 rsion;.}.....public.function.get
2f0e0 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e PrettyVersion().{.return.$this->
2f100 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 prettyVersion;.}.......public.fu
2f120 6e 63 74 69 6f 6e 20 73 65 74 4c 69 63 65 6e 73 65 28 61 72 72 61 79 20 24 6c 69 63 65 6e 73 65 nction.setLicense(array.$license
2f140 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b 0a 7d ).{.$this->license.=.$license;.}
2f160 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 .....public.function.getLicense(
2f180 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a ).{.return.$this->license;.}....
2f1a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 ...public.function.setRequires(a
2f1c0 72 72 61 79 20 24 72 65 71 75 69 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 rray.$requires).{.$this->require
2f1e0 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s.=.$requires;.}.....public.func
2f200 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.getRequires().{.return.$thi
2f220 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s->requires;.}.......public.func
2f240 74 69 6f 6e 20 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 61 72 72 61 79 20 24 63 6f 6e 66 6c 69 63 tion.setConflicts(array.$conflic
2f260 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 20 3d 20 24 63 6f 6e 66 6c 69 ts).{.$this->conflicts.=.$confli
2f280 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f cts;.}.....public.function.getCo
2f2a0 6e 66 6c 69 63 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 nflicts().{.return.$this->confli
2f2c0 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 cts;.}.......public.function.set
2f2e0 50 72 6f 76 69 64 65 73 28 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 73 29 0a 7b 0a 24 74 68 69 Provides(array.$provides).{.$thi
2f300 73 2d 3e 70 72 6f 76 69 64 65 73 20 3d 20 24 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 s->provides.=.$provides;.}.....p
2f320 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 0a 7b 0a 72 ublic.function.getProvides().{.r
2f340 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 eturn.$this->provides;.}.......p
2f360 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6c 61 63 65 73 28 61 72 72 61 79 ublic.function.setReplaces(array
2f380 20 24 72 65 70 6c 61 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 20 3d 20 .$replaces).{.$this->replaces.=.
2f3a0 24 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $replaces;.}.....public.function
2f3c0 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 .getReplaces().{.return.$this->r
2f3e0 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e eplaces;.}.......public.function
2f400 20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 .setDevRequires(array.$devRequir
2f420 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 24 64 65 76 52 es).{.$this->devRequires.=.$devR
2f440 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 equires;.}.....public.function.g
2f460 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e etDevRequires().{.return.$this->
2f480 64 65 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 devRequires;.}.......public.func
2f4a0 74 69 6f 6e 20 73 65 74 53 75 67 67 65 73 74 73 28 61 72 72 61 79 20 24 73 75 67 67 65 73 74 73 tion.setSuggests(array.$suggests
2f4c0 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 20 3d 20 24 73 75 67 67 65 73 74 73 3b ).{.$this->suggests.=.$suggests;
2f4e0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 .}.....public.function.getSugges
2f500 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 3b 0a 7d ts().{.return.$this->suggests;.}
2f520 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 6c 65 61 73 .......public.function.setReleas
2f540 65 44 61 74 65 28 5c 44 61 74 65 54 69 6d 65 20 24 72 65 6c 65 61 73 65 44 61 74 65 29 0a 7b 0a eDate(\DateTime.$releaseDate).{.
2f560 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 20 3d 20 24 72 65 6c 65 61 73 65 44 61 74 $this->releaseDate.=.$releaseDat
2f580 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 e;.}.....public.function.getRele
2f5a0 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 aseDate().{.return.$this->releas
2f5c0 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 eDate;.}.......public.function.s
2f5e0 65 74 4b 65 79 77 6f 72 64 73 28 61 72 72 61 79 20 24 6b 65 79 77 6f 72 64 73 29 0a 7b 0a 24 74 etKeywords(array.$keywords).{.$t
2f600 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 20 3d 20 24 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a his->keywords.=.$keywords;.}....
2f620 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b .public.function.getKeywords().{
2f640 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->keywords;.}......
2f660 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 73 28 61 72 72 61 .public.function.setAuthors(arra
2f680 79 20 24 61 75 74 68 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 20 3d 20 24 y.$authors).{.$this->authors.=.$
2f6a0 61 75 74 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 authors;.}.....public.function.g
2f6c0 65 74 41 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 etAuthors().{.return.$this->auth
2f6e0 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ors;.}.......public.function.set
2f700 44 65 73 63 72 69 70 74 69 6f 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 Description($description).{.$thi
2f720 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d s->description.=.$description;.}
2f740 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 .....public.function.getDescript
2f760 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f ion().{.return.$this->descriptio
2f780 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 6f n;.}.......public.function.setHo
2f7a0 6d 65 70 61 67 65 28 24 68 6f 6d 65 70 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 6d 65 70 mepage($homepage).{.$this->homep
2f7c0 61 67 65 20 3d 20 24 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 age.=.$homepage;.}.....public.fu
2f7e0 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.getHomepage().{.return.$t
2f800 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 his->homepage;.}.......public.fu
2f820 6e 63 74 69 6f 6e 20 73 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 24 6d 69 6e 69 nction.setMinimumStability($mini
2f840 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 mumStability).{.$this->minimumSt
2f860 61 62 69 6c 69 74 79 20 3d 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a ability.=.$minimumStability;.}..
2f880 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 ...public.function.getMinimumSta
2f8a0 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d bility().{.return.$this->minimum
2f8c0 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 Stability;.}.......public.functi
2f8e0 6f 6e 20 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 72 72 61 79 20 24 73 74 61 62 on.setStabilityFlags(array.$stab
2f900 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c ilityFlags).{.$this->stabilityFl
2f920 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ags.=.$stabilityFlags;.}.....pub
2f940 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 lic.function.getStabilityFlags()
2f960 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b .{.return.$this->stabilityFlags;
2f980 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 66 65 .}.......public.function.setRefe
2f9a0 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 24 74 68 69 rences(array.$references).{.$thi
2f9c0 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a s->references.=.$references;.}..
2f9e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 ...public.function.getReferences
2fa00 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d ().{.return.$this->references;.}
2fa20 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f .......public.function.setAutolo
2fa40 61 64 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 ad(array.$autoload).{.$this->aut
2fa60 6f 6c 6f 61 64 20 3d 20 24 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 oload.=.$autoload;.}.....public.
2fa80 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.getAutoload().{.return.
2faa0 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $this->autoload;.}.......public.
2fac0 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 20 24 function.setIncludePaths(array.$
2fae0 69 6e 63 6c 75 64 65 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 includePaths).{.$this->includePa
2fb00 74 68 73 20 3d 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ths.=.$includePaths;.}.....publi
2fb20 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 c.function.getIncludePaths().{.r
2fb40 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a eturn.$this->includePaths;.}....
2fb60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 70 70 6f 72 74 28 61 72 ...public.function.setSupport(ar
2fb80 72 61 79 20 24 73 75 70 70 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 20 3d ray.$support).{.$this->support.=
2fba0 20 24 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$support;.}.....public.function
2fbc0 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 .getSupport().{.return.$this->su
2fbe0 70 70 6f 72 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 pport;.}.}.<?php............name
2fc00 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d space.Composer\Package;..use.Com
2fc20 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 poser\Json\JsonFile;.use.Compose
2fc40 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b r\Installer\InstallationManager;
2fc60 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 .use.Composer\Repository\Reposit
2fc80 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 oryManager;.use.Composer\Util\Pr
2fca0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b ocessExecutor;.use.Composer\Pack
2fcc0 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c age\AliasPackage;........class.L
2fce0 6f 63 6b 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 70 72 69 76 61 ocker.{.private.$lockFile;.priva
2fd00 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 te.$repositoryManager;.private.$
2fd20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 68 61 installationManager;.private.$ha
2fd40 73 68 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 0a 0a 0a 0a sh;.private.$lockDataCache;.....
2fd60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
2fd80 28 4a 73 6f 6e 46 69 6c 65 20 24 6c 6f 63 6b 46 69 6c 65 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d (JsonFile.$lockFile,.RepositoryM
2fda0 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 49 6e 73 74 61 anager.$repositoryManager,.Insta
2fdc0 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 llationManager.$installationMana
2fde0 67 65 72 2c 20 24 68 61 73 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 20 3d 20 ger,.$hash).{.$this->lockFile.=.
2fe00 24 6c 6f 63 6b 46 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 $lockFile;.$this->repositoryMana
2fe20 67 65 72 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d ger.=.$repositoryManager;.$this-
2fe40 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 >installationManager.=.$installa
2fe60 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 68 61 73 68 20 3d 20 24 68 61 73 68 tionManager;.$this->hash.=.$hash
2fe80 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 ;.}........public.function.isLoc
2fea0 6b 65 64 28 24 64 65 76 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e ked($dev.=.false).{.if.(!$this->
2fec0 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c lockFile->exists()).{.return.fal
2fee0 73 65 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 se;.}..$data.=.$this->getLockDat
2ff00 61 28 29 3b 0a 69 66 20 28 24 64 65 76 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 64 a();.if.($dev).{.return.isset($d
2ff20 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ata['packages-dev']);.}..return.
2ff40 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 3b 0a 7d 0a 0a 0a 0a 0a isset($data['packages']);.}.....
2ff60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 46 72 65 73 68 28 29 0a 7b 0a 24 6c ..public.function.isFresh().{.$l
2ff80 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a ock.=.$this->lockFile->read();..
2ffa0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 68 20 3d 3d 3d 20 24 6c 6f 63 6b 5b 27 68 61 return.$this->hash.===.$lock['ha
2ffc0 73 68 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 sh'];.}........public.function.g
2ffe0 65 74 4c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 28 24 64 65 76 20 3d 20 66 61 6c 73 65 29 0a 7b etLockedPackages($dev.=.false).{
30000 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 .$lockData.=.$this->getLockData(
30020 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6c 6f 63 6b 65 64 );.$packages.=.array();..$locked
30040 50 61 63 6b 61 67 65 73 20 3d 20 24 64 65 76 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 Packages.=.$dev.?.$lockData['pac
30060 6b 61 67 65 73 2d 64 65 76 27 5d 20 3a 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 kages-dev'].:.$lockData['package
30080 73 27 5d 3b 0a 24 72 65 70 6f 20 3d 20 24 64 65 76 20 3f 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 s'];.$repo.=.$dev.?.$this->repos
300a0 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 itoryManager->getLocalDevReposit
300c0 6f 72 79 28 29 20 3a 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 ory().:.$this->repositoryManager
300e0 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 ->getLocalRepository();..foreach
30100 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 69 6e 66 6f 29 20 7b 0a 24 72 .($lockedPackages.as.$info).{.$r
30120 65 73 6f 6c 76 65 64 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 69 6e 66 6f 5b 27 61 esolvedVersion.=.!empty($info['a
30140 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 76 lias-version']).?.$info['alias-v
30160 65 72 73 69 6f 6e 27 5d 20 3a 20 24 69 6e 66 6f 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 0a 0a 20 ersion'].:.$info['version'];....
30180 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 69 $package.=.$repo->findPackage($i
301a0 6e 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 72 65 73 6f 6c 76 65 64 56 65 72 73 69 6f 6e nfo['package'],.$resolvedVersion
301c0 29 3b 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 );....if.(!$package).{.$package.
301e0 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 66 69 6e 64 =.$this->repositoryManager->find
30200 50 61 63 6b 61 67 65 28 24 69 6e 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 72 65 73 6f 6c Package($info['package'],.$resol
30220 76 65 64 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 20 vedVersion);.}....if.(!$package.
30240 26 26 20 21 65 6d 70 74 79 28 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d &&.!empty($info['alias-version']
30260 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 )).{.$package.=.$this->repositor
30280 79 4d 61 6e 61 67 65 72 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 69 6e 66 6f 5b 27 70 61 63 yManager->findPackage($info['pac
302a0 6b 61 67 65 27 5d 2c 20 24 69 6e 66 6f 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 69 66 20 28 24 kage'],.$info['version']);.if.($
302c0 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 package).{.$alias.=.new.AliasPac
302e0 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 76 65 72 73 kage($package,.$info['alias-vers
30300 69 6f 6e 27 5d 2c 20 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 70 72 65 74 74 79 2d 76 65 72 73 69 ion'],.$info['alias-pretty-versi
30320 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 on']);.$package->getRepository()
30340 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d ->addPackage($alias);.$package.=
30360 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 .$alias;.}.}..if.(!$package).{.t
30380 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 hrow.new.\LogicException(sprintf
303a0 28 0a 27 43 61 6e 20 6e 6f 74 20 66 69 6e 64 20 22 25 73 2d 25 73 22 20 70 61 63 6b 61 67 65 20 (.'Can.not.find."%s-%s".package.
303c0 69 6e 20 72 65 67 69 73 74 65 72 65 64 20 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 0a 24 69 6e in.registered.repositories',.$in
303e0 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 69 6e 66 6f 5b 27 76 65 72 73 69 6f 6e 27 5d 0a fo['package'],.$info['version'].
30400 29 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d ));.}..$packages[].=.$package;.}
30420 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 ..return.$packages;.}..public.fu
30440 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 24 nction.getMinimumStability().{.$
30460 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b lockData.=.$this->getLockData();
30480 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e 69 6d 75 ..return.isset($lockData['minimu
304a0 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e 69 m-stability']).?.$lockData['mini
304c0 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3a 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 mum-stability'].:.'stable';.}..p
304e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 ublic.function.getStabilityFlags
30500 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 ().{.$lockData.=.$this->getLockD
30520 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 ata();..return.isset($lockData['
30540 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 stability-flags']).?.$lockData['
30560 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a stability-flags'].:.array();.}..
30580 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 24 public.function.getAliases().{.$
305a0 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b lockData.=.$this->getLockData();
305c0 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 ..return.isset($lockData['aliase
305e0 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 73 27 5d 20 3a 20 61 72 s']).?.$lockData['aliases'].:.ar
30600 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 ray();.}..public.function.getLoc
30620 6b 44 61 74 61 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 6f kData().{.if.(null.!==.$this->lo
30640 63 6b 44 61 74 61 43 61 63 68 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 ckDataCache).{.return.$this->loc
30660 6b 44 61 74 61 43 61 63 68 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 kDataCache;.}..if.(!$this->lockF
30680 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 ile->exists()).{.throw.new.\Logi
306a0 63 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 6c 6f 63 6b 66 69 6c 65 20 66 6f 75 6e 64 2e 20 55 cException('No.lockfile.found..U
306c0 6e 61 62 6c 65 20 74 6f 20 72 65 61 64 20 6c 6f 63 6b 65 64 20 70 61 63 6b 61 67 65 73 27 29 3b nable.to.read.locked.packages');
306e0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 .}..return.$this->lockDataCache.
30700 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 0a =.$this->lockFile->read();.}....
30720 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 44 61 .......public.function.setLockDa
30740 74 61 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 64 65 76 50 61 63 6b 61 67 65 73 ta(array.$packages,.$devPackages
30760 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c ,.array.$aliases,.$minimumStabil
30780 69 74 79 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 6c ity,.array.$stabilityFlags).{.$l
307a0 6f 63 6b 20 3d 20 61 72 72 61 79 28 0a 27 68 61 73 68 27 20 3d 3e 20 24 74 68 69 73 2d 3e 68 61 ock.=.array(.'hash'.=>.$this->ha
307c0 73 68 2c 0a 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 70 61 63 6b 61 67 65 sh,.'packages'.=>.null,.'package
307e0 73 2d 64 65 76 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 61 6c 69 61 73 65 73 27 20 3d 3e 20 24 61 6c s-dev'.=>.null,.'aliases'.=>.$al
30800 69 61 73 65 73 2c 0a 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 20 3d 3e 20 24 6d iases,.'minimum-stability'.=>.$m
30820 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 0a 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 inimumStability,.'stability-flag
30840 73 27 20 3d 3e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 0a 29 3b 0a 0a 24 6c 6f 63 6b s'.=>.$stabilityFlags,.);..$lock
30860 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 ['packages'].=.$this->lockPackag
30880 65 73 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 76 es($packages);.if.(null.!==.$dev
308a0 50 61 63 6b 61 67 65 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 Packages).{.$lock['packages-dev'
308c0 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 64 65 76 50 61 63 6b ].=.$this->lockPackages($devPack
308e0 61 67 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 ages);.}..if.(!$this->isLocked()
30900 20 7c 7c 20 24 6c 6f 63 6b 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 .||.$lock.!==.$this->getLockData
30920 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 77 72 69 74 65 28 24 6c 6f ()).{.$this->lockFile->write($lo
30940 63 6b 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 6e 75 6c 6c ck);.$this->lockDataCache.=.null
30960 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b ;..return.true;.}..return.false;
30980 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 50 61 63 6b 61 67 65 .}..private.function.lockPackage
309a0 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 6c 6f 63 6b 65 64 20 3d 20 61 s(array.$packages).{.$locked.=.a
309c0 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 rray();..foreach.($packages.as.$
309e0 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 24 package).{.$alias.=.null;..if.($
30a00 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 package.instanceof.AliasPackage)
30a20 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 70 61 63 6b 61 67 65 20 3d .{.$alias.=.$package;.$package.=
30a40 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 24 6e 61 6d .$package->getAliasOf();.}..$nam
30a60 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 e.=.$package->getPrettyName();.$
30a80 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 version.=.$package->getPrettyVer
30aa0 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 7c 7c 20 21 24 76 65 72 73 69 6f 6e sion();..if.(!$name.||.!$version
30ac0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 ).{.throw.new.\LogicException(sp
30ae0 72 69 6e 74 66 28 0a 27 50 61 63 6b 61 67 65 20 22 25 73 22 20 68 61 73 20 6e 6f 20 76 65 72 73 rintf(.'Package."%s".has.no.vers
30b00 69 6f 6e 20 6f 72 20 6e 61 6d 65 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 6c 6f 63 6b 65 ion.or.name.and.can.not.be.locke
30b20 64 27 2c 20 24 70 61 63 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 73 70 65 63 20 3d 20 61 72 72 61 d',.$package.));.}..$spec.=.arra
30b40 79 28 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 20 27 76 65 72 73 69 6f 6e 27 20 y('package'.=>.$name,.'version'.
30b60 3d 3e 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 =>.$version);..if.($package->isD
30b80 65 76 28 29 20 26 26 20 21 24 61 6c 69 61 73 29 20 7b 0a 24 73 70 65 63 5b 27 73 6f 75 72 63 65 ev().&&.!$alias).{.$spec['source
30ba0 2d 72 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 -reference'].=.$package->getSour
30bc0 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 69 66 20 28 27 67 69 74 27 20 3d 3d 3d 20 24 70 61 ceReference();.if.('git'.===.$pa
30be0 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 20 26 26 20 24 70 61 74 68 20 ckage->getSourceType().&&.$path.
30c00 3d 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 =.$this->installationManager->ge
30c20 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 70 72 6f 63 65 tInstallPath($package)).{.$proce
30c40 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 69 66 20 28 ss.=.new.ProcessExecutor();.if.(
30c60 30 20 3d 3d 3d 20 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 6c 6f 67 0.===.$process->execute('git.log
30c80 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 63 74 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 .-n1.--pretty=%ct.'.escapeshella
30ca0 72 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 rg($package->getSourceReference(
30cc0 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 73 70 65 63 5b 27 63 6f )),.$output,.$path)).{.$spec['co
30ce0 6d 6d 69 74 2d 64 61 74 65 27 5d 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d mmit-date'].=.trim($output);.}.}
30d00 0a 7d 0a 0a 69 66 20 28 24 61 6c 69 61 73 29 20 7b 0a 24 73 70 65 63 5b 27 61 6c 69 61 73 2d 70 .}..if.($alias).{.$spec['alias-p
30d20 72 65 74 74 79 2d 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 61 6c 69 61 73 2d 3e 67 65 74 50 72 65 retty-version'].=.$alias->getPre
30d40 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 73 70 65 63 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 ttyVersion();.$spec['alias-versi
30d60 6f 6e 27 5d 20 3d 20 24 61 6c 69 61 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a on'].=.$alias->getVersion();.}..
30d80 24 6c 6f 63 6b 65 64 5b 5d 20 3d 20 24 73 70 65 63 3b 0a 7d 0a 0a 75 73 6f 72 74 28 24 6c 6f 63 $locked[].=.$spec;.}..usort($loc
30da0 6b 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 24 63 6f 6d 70 61 72 ked,.function.($a,.$b).{.$compar
30dc0 69 73 6f 6e 20 3d 20 73 74 72 63 6d 70 28 24 61 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 62 5b ison.=.strcmp($a['package'],.$b[
30de0 27 70 61 63 6b 61 67 65 27 5d 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 63 6f 6d 70 61 72 69 'package']);..if.(0.!==.$compari
30e00 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 61 72 69 73 6f 6e 3b 0a 7d 0a 0a 0a 20 son).{.return.$comparison;.}....
30e20 24 61 56 65 72 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 61 5b 27 61 6c 69 61 73 2d 76 65 72 73 $aVersion.=.isset($a['alias-vers
30e40 69 6f 6e 27 5d 29 20 3f 20 24 61 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 20 3a 20 24 ion']).?.$a['alias-version'].:.$
30e60 61 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 24 62 56 65 72 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 a['version'];.$bVersion.=.isset(
30e80 24 62 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 62 5b 27 61 6c 69 61 73 $b['alias-version']).?.$b['alias
30ea0 2d 76 65 72 73 69 6f 6e 27 5d 20 3a 20 24 62 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 0a 72 65 74 -version'].:.$b['version'];..ret
30ec0 75 72 6e 20 73 74 72 63 6d 70 28 24 61 56 65 72 73 69 6f 6e 2c 20 24 62 56 65 72 73 69 6f 6e 29 urn.strcmp($aVersion,.$bVersion)
30ee0 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 63 6b 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ;.});..return.$locked;.}.}.<?php
30f00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ............namespace.Composer\P
30f20 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 ackage;..use.Composer\Package\Li
30f40 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 nkConstraint\LinkConstraintInter
30f60 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 face;.use.Composer\Repository\Re
30f80 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 positoryInterface;.....interface
30fa0 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .PackageInterface.{......public.
30fc0 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 function.getName();.......public
30fe0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a .function.getPrettyName();......
31000 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 28 29 3b 0a ....public.function.getNames();.
31020 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 ......public.function.setId($id)
31040 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 28 29 3b ;.......public.function.getId();
31060 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 ..........public.function.matche
31080 73 28 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 s($name,.LinkConstraintInterface
310a0 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$constraint);.......public.func
310c0 74 69 6f 6e 20 69 73 44 65 76 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tion.isDev();.......public.funct
310e0 69 6f 6e 20 67 65 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ion.getType();.......public.func
31100 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tion.getTargetDir();.......publi
31120 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 c.function.getExtra();.......pub
31140 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 lic.function.setInstallationSour
31160 63 65 28 24 74 79 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ce($type);.......public.function
31180 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a .getInstallationSource();.......
311a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b public.function.getSourceType();
311c0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 .......public.function.getSource
311e0 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 Url();.......public.function.get
31200 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 SourceReference();.......public.
31220 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 function.getDistType();.......pu
31240 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a blic.function.getDistUrl();.....
31260 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e ..public.function.getDistReferen
31280 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 ce();.......public.function.getD
312a0 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 istSha1Checksum();.......public.
312c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 function.getScripts();.......pub
312e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a lic.function.getVersion();......
31300 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f .public.function.getPrettyVersio
31320 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 n();.......public.function.getSt
31340 61 62 69 6c 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ability();.......public.function
31360 20 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .getLicense();........public.fun
31380 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ction.getRequires();........publ
313a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 3b 0a 0a 0a 0a 0a ic.function.getConflicts();.....
313c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 ...public.function.getProvides()
313e0 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c ;........public.function.getRepl
31400 61 63 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 aces();........public.function.g
31420 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 etDevRequires();........public.f
31440 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a unction.getSuggests();..........
31460 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b ..public.function.getAutoload();
31480 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 ........public.function.getInclu
314a0 64 65 50 61 74 68 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 dePaths();.........public.functi
314c0 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c on.getRepositories();.......publ
314e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 ic.function.setRepository(Reposi
31500 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 0a 0a 0a toryInterface.$repository);.....
31520 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 ..public.function.getRepository(
31540 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 );.......public.function.getRele
31560 61 73 65 44 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e aseDate();.......public.function
31580 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .getKeywords();.......public.fun
315a0 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ction.getDescription();.......pu
315c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 0a 0a 0a blic.function.getBinaries();....
315e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 ...public.function.getHomepage()
31600 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 ;.........public.function.getAut
31620 68 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 hors();.......public.function.ge
31640 74 41 6c 69 61 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tAlias();.......public.function.
31660 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 getPrettyAlias();.......public.f
31680 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 unction.getUniqueName();.......p
316a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 0a 0a 0a ublic.function.__toString();....
316c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 ...public.function.getPrettyStri
316e0 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 ng();.......public.function.getS
31700 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d upport();.}.<?php............nam
31720 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f espace.Composer\Package;..use.Co
31740 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 mposer\Package\LinkConstraint\Li
31760 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f nkConstraintInterface;.use.Compo
31780 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 ser\Package\LinkConstraint\Versi
317a0 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 onConstraint;.use.Composer\Repos
317c0 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 itory\RepositoryInterface;.use.C
317e0 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 omposer\Repository\PlatformRepos
31800 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 itory;.......abstract.class.Base
31820 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 Package.implements.PackageInterf
31840 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 75 70 70 6f 72 74 65 64 4c 69 ace.{.public.static.$supportedLi
31860 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 61 72 nkTypes.=.array(.'require'.=>.ar
31880 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c ray('description'.=>.'requires',
318a0 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 29 2c 0a 27 63 6f 6e 66 6c .'method'.=>.'requires'),.'confl
318c0 69 63 74 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 ict'.=>.array('description'.=>.'
318e0 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 conflicts',.'method'.=>.'conflic
31900 74 73 27 29 2c 0a 27 70 72 6f 76 69 64 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 ts'),.'provide'.=>.array('descri
31920 70 74 69 6f 6e 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d ption'.=>.'provides',.'method'.=
31940 3e 20 27 70 72 6f 76 69 64 65 73 27 29 2c 0a 27 72 65 70 6c 61 63 65 27 20 3d 3e 20 61 72 72 61 >.'provides'),.'replace'.=>.arra
31960 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 2c 20 27 y('description'.=>.'replaces',.'
31980 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 method'.=>.'replaces'),.'require
319a0 2d 64 65 76 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 -dev'.=>.array('description'.=>.
319c0 27 72 65 71 75 69 72 65 73 20 28 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 29 27 2c 20 27 6d 'requires.(for.development)',.'m
319e0 65 74 68 6f 64 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 72 65 73 27 29 2c 0a 29 3b 0a 0a 63 6f ethod'.=>.'devRequires'),.);..co
31a00 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 nst.STABILITY_STABLE.=.0;.const.
31a20 53 54 41 42 49 4c 49 54 59 5f 52 43 20 3d 20 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 STABILITY_RC.=.5;.const.STABILIT
31a40 59 5f 42 45 54 41 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 Y_BETA.=.10;.const.STABILITY_ALP
31a60 48 41 20 3d 20 31 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 44 45 56 20 3d 20 32 HA.=.15;.const.STABILITY_DEV.=.2
31a80 30 3b 0a 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 41 4d 45 20 3d 20 2d 31 3b 0a 63 6f 6e 73 74 0;..const.MATCH_NAME.=.-1;.const
31aa0 20 4d 41 54 43 48 5f 4e 4f 4e 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 20 3d 20 31 .MATCH_NONE.=.0;.const.MATCH.=.1
31ac0 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 ;.const.MATCH_PROVIDE.=.2;.const
31ae0 20 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 20 3d 20 33 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 .MATCH_REPLACE.=.3;..public.stat
31b00 69 63 20 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 73 74 61 62 6c 65 ic.$stabilities.=.array(.'stable
31b20 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 2c 0a 27 52 43 '.=>.self::STABILITY_STABLE,.'RC
31b40 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 52 43 2c 0a 27 62 65 74 61 27 20 '.=>.self::STABILITY_RC,.'beta'.
31b60 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 42 45 54 41 2c 0a 27 61 6c 70 68 61 27 =>.self::STABILITY_BETA,.'alpha'
31b80 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 2c 0a 27 64 65 76 27 .=>.self::STABILITY_ALPHA,.'dev'
31ba0 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 44 45 56 2c 0a 29 3b 0a 0a 70 72 6f .=>.self::STABILITY_DEV,.);..pro
31bc0 74 65 63 74 65 64 20 24 6e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 4e tected.$name;.protected.$prettyN
31be0 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f ame;..protected.$repository;.pro
31c00 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tected.$id;.......public.functio
31c20 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 n.__construct($name).{.$this->pr
31c40 65 74 74 79 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 ettyName.=.$name;.$this->name.=.
31c60 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d strtolower($name);.$this->id.=.-
31c80 31 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 1;.}.....public.function.getName
31ca0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 ().{.return.$this->name;.}.....p
31cc0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 0a 7b ublic.function.getPrettyName().{
31ce0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a .return.$this->prettyName;.}....
31d00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 28 29 0a 7b 0a 24 6e .public.function.getNames().{.$n
31d20 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d ames.=.array(.$this->getName().=
31d40 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 >.true,.);..foreach.($this->getP
31d60 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 rovides().as.$link).{.$names[$li
31d80 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 nk->getTarget()].=.true;.}..fore
31da0 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 ach.($this->getReplaces().as.$li
31dc0 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d nk).{.$names[$link->getTarget()]
31de0 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6e .=.true;.}..return.array_keys($n
31e00 61 6d 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ames);.}.....public.function.set
31e20 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 0a 0a Id($id).{.$this->id.=.$id;.}....
31e40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 28 29 0a 7b 0a 72 65 74 75 72 .public.function.getId().{.retur
31e60 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 n.$this->id;.}..........public.f
31e80 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 unction.matches($name,.LinkConst
31ea0 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 69 66 raintInterface.$constraint).{.if
31ec0 20 28 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 72 65 74 75 72 .($this->name.===.$name).{.retur
31ee0 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 6e 65 77 20 56 65 72 73 69 n.$constraint->matches(new.Versi
31f00 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 onConstraint('==',.$this->getVer
31f20 73 69 6f 6e 28 29 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 20 3a 20 73 65 6c 66 3a 3a 4d sion())).?.self::MATCH.:.self::M
31f40 41 54 43 48 5f 4e 41 4d 45 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 ATCH_NAME;.}..foreach.($this->ge
31f60 74 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e tProvides().as.$link).{.if.($lin
31f80 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 24 63 6f 6e k->getTarget().===.$name.&&.$con
31fa0 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 straint->matches($link->getConst
31fc0 72 61 69 6e 74 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 raint())).{.return.self::MATCH_P
31fe0 52 4f 56 49 44 45 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 ROVIDE;.}.}..foreach.($this->get
32000 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b Replaces().as.$link).{.if.($link
32020 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 24 63 6f 6e 73 ->getTarget().===.$name.&&.$cons
32040 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 traint->matches($link->getConstr
32060 61 69 6e 74 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 aint())).{.return.self::MATCH_RE
32080 50 4c 41 43 45 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e PLACE;.}.}..return.self::MATCH_N
320a0 4f 4e 45 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 ONE;.}..public.function.getRepos
320c0 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f itory().{.return.$this->reposito
320e0 72 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 ry;.}..public.function.setReposi
32100 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 tory(RepositoryInterface.$reposi
32120 74 6f 72 79 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 20 7b tory).{.if.($this->repository).{
32140 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 70 61 .throw.new.\LogicException('A.pa
32160 63 6b 61 67 65 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 61 64 64 65 64 20 74 6f 20 6f 6e 65 20 72 ckage.can.only.be.added.to.one.r
32180 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 epository');.}.$this->repository
321a0 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .=.$repository;.}.......public.f
321c0 75 6e 63 74 69 6f 6e 20 69 73 50 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 unction.isPlatform().{.return.$t
321e0 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 his->getRepository().instanceof.
32200 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c PlatformRepository;.}.......publ
32220 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 ic.function.getUniqueName().{.re
32240 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2d 27 2e 24 74 68 69 73 2d turn.$this->getName().'-'.$this-
32260 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f >getVersion();.}..public.functio
32280 6e 20 65 71 75 61 6c 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 n.equals(PackageInterface.$packa
322a0 67 65 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 69 66 20 28 24 74 68 69 73 20 69 ge).{.$self.=.$this;.if.($this.i
322c0 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 73 65 6c 66 20 nstanceof.AliasPackage).{.$self.
322e0 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 69 66 20 28 24 70 61 =.$this->getAliasOf();.}.if.($pa
32300 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b ckage.instanceof.AliasPackage).{
32320 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 .$package.=.$package->getAliasOf
32340 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 73 65 6c 66 ();.}..return.$package.===.$self
32360 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 ;.}.......public.function.__toSt
32380 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 55 6e 69 71 75 65 ring().{.return.$this->getUnique
323a0 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 Name();.}..public.function.getPr
323c0 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 ettyString().{.return.$this->get
323e0 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 PrettyName().'.'.$this->getPrett
32400 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f yVersion();.}..public.function._
32420 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e _clone().{.$this->repository.=.n
32440 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ull;.}.}.<?php............namesp
32460 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 3b 0a 0a 75 ace.Composer\Package\Version;..u
32480 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b se.Composer\Package\BasePackage;
324a0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 .use.Composer\Package\PackageInt
324c0 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e erface;.use.Composer\Package\Lin
324e0 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 kConstraint\MultiConstraint;.use
32500 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 .Composer\Package\LinkConstraint
32520 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 \VersionConstraint;.......class.
32540 56 65 72 73 69 6f 6e 50 61 72 73 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 VersionParser.{.private.static.$
32560 6d 6f 64 69 66 69 65 72 52 65 67 65 78 20 3d 20 27 5b 2e 5f 2d 5d 3f 28 3f 3a 28 62 65 74 61 7c modifierRegex.=.'[._-]?(?:(beta|
32580 62 7c 52 43 7c 61 6c 70 68 61 7c 61 7c 70 61 74 63 68 7c 70 6c 7c 70 29 28 3f 3a 5b 2e 2d 5d 3f b|RC|alpha|a|patch|pl|p)(?:[.-]?
325a0 28 5c 64 2b 29 29 3f 29 3f 28 5b 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 (\d+))?)?([.-]?dev)?';........pu
325c0 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 74 61 62 69 6c blic.static.function.parseStabil
325e0 69 74 79 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f ity($version).{.$version.=.preg_
32600 72 65 70 6c 61 63 65 28 27 7b 23 5b 61 2d 66 30 2d 39 5d 2b 24 7d 69 27 2c 20 27 27 2c 20 24 76 replace('{#[a-f0-9]+$}i',.'',.$v
32620 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 ersion);..if.('dev-'.===.substr(
32640 24 76 65 72 73 69 6f 6e 2c 20 30 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d 3d 3d 20 73 75 $version,.0,.4).||.'-dev'.===.su
32660 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 bstr($version,.-4)).{.return.'de
32680 76 27 3b 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 v';.}..preg_match('{'.self::$mod
326a0 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 ifierRegex.'$}',.$version,.$matc
326c0 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 33 5d 29 29 20 7b 0a 72 65 74 h);.if.(!empty($match[3])).{.ret
326e0 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b urn.'dev';.}..if.(!empty($match[
32700 31 5d 29 29 20 7b 0a 69 66 20 28 27 62 65 74 61 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 20 1])).{.if.('beta'.===.$match[1].
32720 7c 7c 20 27 62 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 ||.'b'.===.$match[1]).{.return.'
32740 62 65 74 61 27 3b 0a 7d 0a 69 66 20 28 27 61 6c 70 68 61 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b beta';.}.if.('alpha'.===.$match[
32760 31 5d 20 7c 7c 20 27 61 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 1].||.'a'.===.$match[1]).{.retur
32780 6e 20 27 61 6c 70 68 61 27 3b 0a 7d 0a 69 66 20 28 27 52 43 27 20 3d 3d 3d 20 24 6d 61 74 63 68 n.'alpha';.}.if.('RC'.===.$match
327a0 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 52 43 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 [1]).{.return.'RC';.}.}..return.
327c0 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 'stable';.}..public.static.funct
327e0 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 73 74 61 62 69 6c 69 74 ion.normalizeStability($stabilit
32800 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 y).{.$stability.=.strtolower($st
32820 61 62 69 6c 69 74 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d ability);..return.$stability.===
32840 20 27 72 63 27 20 3f 20 27 52 43 27 20 3a 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 70 75 .'rc'.?.'RC'.:.$stability;.}..pu
32860 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 56 65 72 73 69 blic.static.function.formatVersi
32880 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 on(PackageInterface.$package,.$t
328a0 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d runcate.=.true).{.if.(!$package-
328c0 3e 69 73 44 65 76 28 29 20 7c 7c 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e >isDev().||.!in_array($package->
328e0 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 68 67 27 2c 20 27 67 69 getSourceType(),.array('hg',.'gi
32900 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 t'))).{.return.$package->getPret
32920 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d tyVersion();.}..return.$package-
32940 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 28 24 74 72 >getPrettyVersion()...'.'...($tr
32960 75 6e 63 61 74 65 20 3f 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 uncate.?.substr($package->getSou
32980 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 36 29 20 3a 20 24 70 61 63 6b 61 67 65 rceReference(),.0,.6).:.$package
329a0 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ->getSourceReference());.}......
329c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 ..public.function.normalize($ver
329e0 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 74 72 69 6d 28 24 76 65 72 73 69 6f 6e sion).{.$version.=.trim($version
32a00 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b );....if.(preg_match('{^([^,\s]+
32a20 29 20 2b 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 ).+as.+([^,\s]+)$}',.$version,.$
32a40 6d 61 74 63 68 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a match)).{.$version.=.$match[1];.
32a60 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 64 65 76 2d 29 3f }....if.(preg_match('{^(?:dev-)?
32a80 28 3f 3a 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c 74 29 24 7d 69 27 2c 20 24 76 (?:master|trunk|default)$}i',.$v
32aa0 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 39 39 39 39 39 39 39 2d 64 65 76 27 3b ersion)).{.return.'9999999-dev';
32ac0 0a 7d 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 .}..if.('dev-'.===.strtolower(su
32ae0 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 30 2c 20 34 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 bstr($version,.0,.4))).{.return.
32b00 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 strtolower($version);.}....if.(p
32b20 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f reg_match('{^v?(\d{1,3})(\.\d+)?
32b40 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 (\.\d+)?(\.\d+)?'.self::$modifie
32b60 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 rRegex.'$}i',.$version,.$matches
32b80 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 )).{.$version.=.$matches[1]..(!e
32ba0 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 mpty($matches[2]).?.$matches[2].
32bc0 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 :.'.0')..(!empty($matches[3]).?.
32be0 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 $matches[3].:.'.0')..(!empty($ma
32c00 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b tches[4]).?.$matches[4].:.'.0');
32c20 0a 24 69 6e 64 65 78 20 3d 20 35 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 .$index.=.5;.}.elseif.(preg_matc
32c40 68 28 27 7b 5e 76 3f 28 5c 64 7b 34 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 32 7d 29 7b 31 2c 36 h('{^v?(\d{4}(?:[.:-]?\d{2}){1,6
32c60 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 31 2c 33 7d 29 3f 29 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 }(?:[.:-]?\d{1,3})?)'.self::$mod
32c80 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 ifierRegex.'$}i',.$version,.$mat
32ca0 63 68 65 73 29 29 20 7b 20 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 ches)).{...$version.=.preg_repla
32cc0 63 65 28 27 7b 5c 44 7d 27 2c 20 27 2d 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 24 69 ce('{\D}',.'-',.$matches[1]);.$i
32ce0 6e 64 65 78 20 3d 20 32 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 69 6e 64 65 78 29 ndex.=.2;.}....if.(isset($index)
32d00 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 ).{.if.(!empty($matches[$index])
32d20 29 20 7b 0a 24 6d 6f 64 20 3d 20 61 72 72 61 79 28 27 7b 5e 70 6c 3f 24 7d 69 27 2c 20 27 7b 5e ).{.$mod.=.array('{^pl?$}i',.'{^
32d40 72 63 24 7d 69 27 29 3b 0a 24 6d 6f 64 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 61 72 72 61 79 28 rc$}i');.$modNormalized.=.array(
32d60 27 70 61 74 63 68 27 2c 20 27 52 43 27 29 3b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 2e 'patch',.'RC');.$version..=.'-'.
32d80 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6d 6f 64 2c 20 24 6d 6f 64 4e 6f 72 6d 61 6c 69 7a 65 preg_replace($mod,.$modNormalize
32da0 64 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 29 d,.strtolower($matches[$index]))
32dc0 0a 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 5d 29 20 3f ...(!empty($matches[$index+1]).?
32de0 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 5d 20 3a 20 27 27 29 3b 0a 7d 0a 0a 69 66 .$matches[$index+1].:.'');.}..if
32e00 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 32 5d 29 29 20 7b 0a .(!empty($matches[$index+2])).{.
32e20 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 $version..=.'-dev';.}..return.$v
32e40 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 2e ersion;.}....if.(preg_match('{(.
32e60 2a 3f 29 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 *?)[.-]?dev$}i',.$version,.$matc
32e80 68 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c h)).{.try.{.return.$this->normal
32ea0 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c izeBranch($match[1]);.}.catch.(\
32ec0 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 Exception.$e).{}.}..throw.new.\U
32ee0 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 nexpectedValueException('Invalid
32f00 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 27 2e 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a .version.string.'.$version);.}..
32f20 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 42 ......public.function.normalizeB
32f40 72 61 6e 63 68 28 24 6e 61 6d 65 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 74 72 69 6d 28 24 6e 61 6d ranch($name).{.$name.=.trim($nam
32f60 65 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 e);..if.(in_array($name,.array('
32f80 6d 61 73 74 65 72 27 2c 20 27 74 72 75 6e 6b 27 2c 20 27 64 65 66 61 75 6c 74 27 29 29 29 20 7b master',.'trunk',.'default'))).{
32fa0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6e 61 6d 65 29 3b .return.$this->normalize($name);
32fc0 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 76 3f 28 5c 64 2b 29 28 5c 2e .}..if.(preg_match('#^v?(\d+)(\.
32fe0 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 28 (?:\d+|[x*]))?(\.(?:\d+|[x*]))?(
33000 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 24 23 69 27 2c 20 24 6e 61 6d 65 2c 20 24 6d 61 \.(?:\d+|[x*]))?$#i',.$name,.$ma
33020 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 tches)).{.$version.=.'';.for.($i
33040 20 3d 20 31 3b 20 24 69 20 3c 20 35 3b 20 24 69 2b 2b 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e .=.1;.$i.<.5;.$i++).{.$version..
33060 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 5d 29 20 3f 20 73 74 72 5f 72 65 70 6c =.isset($matches[$i]).?.str_repl
33080 61 63 65 28 27 2a 27 2c 20 27 78 27 2c 20 24 6d 61 74 63 68 65 73 5b 24 69 5d 29 20 3a 20 27 2e ace('*',.'x',.$matches[$i]).:.'.
330a0 78 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 78 27 2c 20 27 x';.}..return.str_replace('x',.'
330c0 39 39 39 39 39 39 39 27 2c 20 24 76 65 72 73 69 6f 6e 29 2e 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 9999999',.$version).'-dev';.}..r
330e0 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 24 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 eturn.'dev-'.$name;.}........pub
33100 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 lic.function.parseConstraints($c
33120 6f 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 onstraints).{.$prettyConstraint.
33140 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 =.$constraints;..if.(preg_match(
33160 27 7b 5e 28 5b 5e 2c 5c 73 5d 2a 3f 29 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 '{^([^,\s]*?)@('.implode('|',.ar
33180 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 ray_keys(BasePackage::$stabiliti
331a0 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 6d 61 74 63 es)).')$}i',.$constraints,.$matc
331c0 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 65 6d 70 74 79 28 24 6d 61 74 63 h)).{.$constraints.=.empty($matc
331e0 68 5b 31 5d 29 20 3f 20 27 2a 27 20 3a 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 69 66 20 28 h[1]).?.'*'.:.$match[1];.}..if.(
33200 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 64 65 76 2d 5b 5e 2c 5c 73 40 5d 2b 3f 7c 5b 5e 2c preg_match('{^(dev-[^,\s@]+?|[^,
33220 5c 73 40 5d 2b 3f 5c 2e 78 2d 64 65 76 29 23 5b 61 2d 66 30 2d 39 5d 2b 24 7d 69 27 2c 20 24 63 \s@]+?\.x-dev)#[a-f0-9]+$}i',.$c
33240 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 onstraints,.$match)).{.$constrai
33260 6e 74 73 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 nts.=.$match[1];.}..$constraints
33280 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 2c 5c 73 2a 7d 27 2c 20 74 72 69 6d 28 .=.preg_split('{\s*,\s*}',.trim(
332a0 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 6f 6e 73 $constraints));..if.(count($cons
332c0 74 72 61 69 6e 74 73 29 20 3e 20 31 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 traints).>.1).{.$constraintObjec
332e0 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 73 74 72 61 69 ts.=.array();.foreach.($constrai
33300 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e nts.as.$constraint).{.$constrain
33320 74 4f 62 6a 65 63 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 6f 6e 73 74 72 61 69 tObjects.=.array_merge($constrai
33340 6e 74 4f 62 6a 65 63 74 73 2c 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e ntObjects,.$this->parseConstrain
33360 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e t($constraint));.}.}.else.{.$con
33380 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e straintObjects.=.$this->parseCon
333a0 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 straint($constraints[0]);.}..if.
333c0 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 29 (1.===.count($constraintObjects)
333e0 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a ).{.$constraint.=.$constraintObj
33400 65 63 74 73 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 ects[0];.}.else.{.$constraint.=.
33420 6e 65 77 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f new.MultiConstraint($constraintO
33440 62 6a 65 63 74 73 29 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 bjects);.}..$constraint->setPret
33460 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 72 65 tyString($prettyConstraint);..re
33480 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e turn.$constraint;.}..private.fun
334a0 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e ction.parseConstraint($constrain
334c0 74 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 78 2a 5d 28 5c 2e 5b 78 t).{.if.(preg_match('{^[x*](\.[x
334e0 2a 5d 29 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e *])*$}i',.$constraint)).{.return
33500 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b .array();.}....if.(preg_match('{
33520 5e 28 5c 64 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 5c 2e ^(\d+)(?:\.(\d+))?(?:\.(\d+))?\.
33540 5b 78 2a 5d 24 7d 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 [x*]$}',.$constraint,.$matches))
33560 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 24 68 69 .{.if.(isset($matches[3])).{.$hi
33580 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 ghVersion.=.$matches[1]...'.'...
335a0 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 $matches[2]...'.'...$matches[3].
335c0 2e 20 27 2e 39 39 39 39 39 39 39 27 3b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 33 5d 20 3d 3d ..'.9999999';.if.($matches[3].==
335e0 3d 20 27 30 27 29 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b =.'0').{.$lowVersion.=.$matches[
33600 31 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 74 63 68 65 73 5b 32 5d 20 2d 20 31 29 20 2e 20 27 1]...'.'...($matches[2].-.1)...'
33620 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 6f 77 .9999999.9999999';.}.else.{.$low
33640 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 24 6d Version.=.$matches[1]...'.'...$m
33660 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 74 63 68 65 73 5b 33 5d 20 2d atches[2]...'.'...($matches[3].-
33680 20 31 29 2e 20 27 2e 39 39 39 39 39 39 39 27 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 .1)..'.9999999';.}.}.elseif.(iss
336a0 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 et($matches[2])).{.$highVersion.
336c0 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 =.$matches[1]...'.'...$matches[2
336e0 5d 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 69 66 20 28 24 6d 61 74 ]...'.9999999.9999999';.if.($mat
33700 63 68 65 73 5b 32 5d 20 3d 3d 3d 20 27 30 27 29 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d ches[2].===.'0').{.$lowVersion.=
33720 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 2d 20 31 29 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 .($matches[1].-.1)...'.9999999.9
33740 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 6f 77 56 65 999999.9999999';.}.else.{.$lowVe
33760 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 rsion.=.$matches[1]...'.'...($ma
33780 74 63 68 65 73 5b 32 5d 20 2d 20 31 29 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 tches[2].-.1)...'.9999999.999999
337a0 39 27 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 6d 9';.}.}.else.{.$highVersion.=.$m
337c0 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 2e 39 39 atches[1]...'.9999999.9999999.99
337e0 39 39 39 39 39 27 3b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 30 27 29 99999';.if.($matches[1].===.'0')
33800 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 .{.return.array(new.VersionConst
33820 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 29 3b 0a 7d 20 65 6c 73 raint('<',.$highVersion));.}.els
33840 65 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 2d e.{.$lowVersion.=.($matches[1].-
33860 20 31 29 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 .1)...'.9999999.9999999.9999999'
33880 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 6e 65 77 20 56 65 72 73 69 6f 6e ;.}.}..return.array(.new.Version
338a0 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 2c 0a 6e 65 Constraint('>',.$lowVersion),.ne
338c0 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 w.VersionConstraint('<',.$highVe
338e0 72 73 69 6f 6e 29 2c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 rsion),.);.}....if.(preg_match('
33900 7b 5e 28 3c 3e 7c 21 3d 7c 3e 3d 3f 7c 3c 3d 3f 7c 3d 3d 3f 29 3f 5c 73 2a 28 2e 2a 29 7d 27 2c {^(<>|!=|>=?|<=?|==?)?\s*(.*)}',
33920 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 72 79 20 7b .$constraint,.$matches)).{.try.{
33940 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 .$version.=.$this->normalize($ma
33960 74 63 68 65 73 5b 32 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 tches[2]);..return.array(new.Ver
33980 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3f 3a 20 27 3d sionConstraint($matches[1].?:.'=
339a0 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 ',.$version));.}.catch.(\Excepti
339c0 6f 6e 20 24 65 29 20 7b 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 on.$e).{}.}..throw.new.\Unexpect
339e0 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 edValueException('Could.not.pars
33a00 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 e.version.constraint.'.$constrai
33a20 6e 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 nt);.}.}.<?php............namesp
33a40 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f ace.Composer\Package;..use.Compo
33a60 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 ser\Package\LinkConstraint\Versi
33a80 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 onConstraint;.use.Composer\Packa
33aa0 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c ge\Version\VersionParser;.....cl
33ac0 61 73 73 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 ass.AliasPackage.extends.BasePac
33ae0 6b 61 67 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 kage.{.protected.$version;.prote
33b00 63 74 65 64 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 cted.$prettyVersion;.protected.$
33b20 64 65 76 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 4f 66 3b 0a 70 72 6f 74 65 63 74 dev;.protected.$aliasOf;.protect
33b40 65 64 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 ed.$rootPackageAlias.=.false;.pr
33b60 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 otected.$stability;..protected.$
33b80 72 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 6c 69 63 74 73 3b 0a requires;.protected.$conflicts;.
33ba0 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 protected.$provides;.protected.$
33bc0 72 65 70 6c 61 63 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 63 6f 6d 6d 65 6e 64 73 3b replaces;.protected.$recommends;
33be0 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .protected.$suggests;.........pu
33c00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 blic.function.__construct(Packag
33c20 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 eInterface.$aliasOf,.$version,.$
33c40 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 prettyVersion).{.parent::__const
33c60 72 75 63 74 28 24 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 74 68 69 ruct($aliasOf->getName());..$thi
33c80 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 s->version.=.$version;.$this->pr
33ca0 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 24 74 ettyVersion.=.$prettyVersion;.$t
33cc0 68 69 73 2d 3e 61 6c 69 61 73 4f 66 20 3d 20 24 61 6c 69 61 73 4f 66 3b 0a 24 74 68 69 73 2d 3e his->aliasOf.=.$aliasOf;.$this->
33ce0 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 stability.=.VersionParser::parse
33d00 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 Stability($version);.$this->dev.
33d20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 0a 0a =.$this->stability.===.'dev';...
33d40 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c 20 27 64 65 76 .foreach.(array('requires',.'dev
33d60 52 65 71 75 69 72 65 73 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 Requires').as.$type).{.$links.=.
33d80 24 61 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 74 79 70 65 29 7d $aliasOf->{'get'.ucfirst($type)}
33da0 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e ();.foreach.($links.as.$index.=>
33dc0 20 24 6c 69 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d .$link).{...if.('self.version'.=
33de0 3d 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 ==.$link->getPrettyConstraint())
33e00 20 7b 0a 24 6c 69 6e 6b 73 5b 24 69 6e 64 65 78 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 .{.$links[$index].=.new.Link($li
33e20 6e 6b 2d 3e 67 65 74 53 6f 75 72 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 nk->getSource(),.$link->getTarge
33e40 74 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 t(),.new.VersionConstraint('=',.
33e60 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 74 68 69 73 2d 3e 76 $this->version),.$type,.$this->v
33e80 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 24 6c 69 6e ersion);.}.}.$this->$type.=.$lin
33ea0 6b 73 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 63 6f 6e 66 6c 69 63 ks;.}....foreach.(array('conflic
33ec0 74 73 27 2c 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 72 65 70 6c 61 63 65 73 27 29 20 61 73 20 ts',.'provides',.'replaces').as.
33ee0 24 74 79 70 65 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 $type).{.$links.=.$aliasOf->{'ge
33f00 74 27 2e 75 63 66 69 72 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 24 6e 65 77 4c 69 6e 6b 73 20 t'.ucfirst($type)}();.$newLinks.
33f20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c =.array();.foreach.($links.as.$l
33f40 69 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 ink).{...if.('self.version'.===.
33f60 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a $link->getPrettyConstraint()).{.
33f80 24 6e 65 77 4c 69 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 $newLinks[].=.new.Link($link->ge
33fa0 74 53 6f 75 72 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e tSource(),.$link->getTarget(),.n
33fc0 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d ew.VersionConstraint('=',.$this-
33fe0 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e >version),.$type,.$this->version
34000 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 );.}.}.$this->$type.=.array_merg
34020 65 28 24 6c 69 6e 6b 73 2c 20 24 6e 65 77 4c 69 6e 6b 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 e($links,.$newLinks);.}.}..publi
34040 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 4f 66 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getAliasOf().{.return
34060 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$this->aliasOf;.}.....public.fu
34080 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 nction.getVersion().{.return.$th
340a0 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 is->version;.}.....public.functi
340c0 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 on.getStability().{.return.$this
340e0 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->stability;.}.....public.functi
34100 6f 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 on.getPrettyVersion().{.return.$
34120 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 this->prettyVersion;.}.....publi
34140 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 c.function.isDev().{.return.$thi
34160 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 s->dev;.}.....public.function.ge
34180 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 tRequires().{.return.$this->requ
341a0 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 ires;.}.....public.function.getC
341c0 6f 6e 66 6c 69 63 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c onflicts().{.return.$this->confl
341e0 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 icts;.}.....public.function.getP
34200 72 6f 76 69 64 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 rovides().{.return.$this->provid
34220 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 es;.}.....public.function.getRep
34240 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 laces().{.return.$this->replaces
34260 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 ;.}.....public.function.getDevRe
34280 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 quires().{.return.$this->devRequ
342a0 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ires;.}.........public.function.
342c0 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 setRootPackageAlias($value).{.re
342e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 turn.$this->rootPackageAlias.=.$
34300 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 value;.}......public.function.is
34320 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 RootPackageAlias().{.return.$thi
34340 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 s->rootPackageAlias;.}.....publi
34360 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 c.function.getAlias().{.return.'
34380 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 ';.}.....public.function.getPret
343a0 74 79 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 tyAlias().{.return.'';.}......pu
343c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.getType().{.return
343e0 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 .$this->aliasOf->getType();.}.pu
34400 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 0a 7b 0a 72 blic.function.getTargetDir().{.r
34420 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 61 72 67 65 74 44 eturn.$this->aliasOf->getTargetD
34440 69 72 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 ir();.}.public.function.getExtra
34460 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 45 ().{.return.$this->aliasOf->getE
34480 78 74 72 61 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 xtra();.}.public.function.setIns
344a0 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e tallationSource($type).{.$this->
344c0 61 6c 69 61 73 4f 66 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 aliasOf->setInstallationSource($
344e0 74 79 70 65 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 type);.}.public.function.getInst
34500 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d allationSource().{.return.$this-
34520 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 >aliasOf->getInstallationSource(
34540 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 );.}.public.function.getSourceTy
34560 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 pe().{.return.$this->aliasOf->ge
34580 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e tSourceType();.}.public.function
345a0 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .getSourceUrl().{.return.$this->
345c0 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 aliasOf->getSourceUrl();.}.publi
345e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a c.function.getSourceReference().
34600 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 {.return.$this->aliasOf->getSour
34620 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ceReference();.}.public.function
34640 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a .setSourceReference($reference).
34660 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 53 6f 75 72 {.return.$this->aliasOf->setSour
34680 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 3b 0a 7d 0a 70 75 62 6c 69 ceReference($reference);.}.publi
346a0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 c.function.getDistType().{.retur
346c0 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b n.$this->aliasOf->getDistType();
346e0 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 0a .}.public.function.getDistUrl().
34700 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 {.return.$this->aliasOf->getDist
34720 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 Url();.}.public.function.getDist
34740 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 Reference().{.return.$this->alia
34760 73 4f 66 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 sOf->getDistReference();.}.publi
34780 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 c.function.getDistSha1Checksum()
347a0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 .{.return.$this->aliasOf->getDis
347c0 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tSha1Checksum();.}.public.functi
347e0 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getScripts().{.return.$this->
34800 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 aliasOf->getScripts();.}.public.
34820 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 61 6c 69 61 73 function.setAliases(array.$alias
34840 65 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 es).{.return.$this->aliasOf->set
34860 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 Aliases($aliases);.}.public.func
34880 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getAliases().{.return.$this
348a0 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 ->aliasOf->getAliases();.}.publi
348c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getLicense().{.return
348e0 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 7d .$this->aliasOf->getLicense();.}
34900 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b .public.function.getAutoload().{
34920 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 6f 6c .return.$this->aliasOf->getAutol
34940 6f 61 64 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c oad();.}.public.function.getIncl
34960 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 udePaths().{.return.$this->alias
34980 4f 66 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 Of->getIncludePaths();.}.public.
349a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 function.getRepositories().{.ret
349c0 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 urn.$this->aliasOf->getRepositor
349e0 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 ies();.}.public.function.getRele
34a00 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f aseDate().{.return.$this->aliasO
34a20 66 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 f->getReleaseDate();.}.public.fu
34a40 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.getBinaries().{.return.$t
34a60 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 70 his->aliasOf->getBinaries();.}.p
34a80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 ublic.function.getKeywords().{.r
34aa0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4b 65 79 77 6f 72 64 eturn.$this->aliasOf->getKeyword
34ac0 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 s();.}.public.function.getDescri
34ae0 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d ption().{.return.$this->aliasOf-
34b00 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 >getDescription();.}.public.func
34b20 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.getHomepage().{.return.$thi
34b40 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a 7d 0a 70 75 62 s->aliasOf->getHomepage();.}.pub
34b60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 0a 7b 0a 72 65 74 lic.function.getSuggests().{.ret
34b80 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 urn.$this->aliasOf->getSuggests(
34ba0 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 );.}.public.function.getAuthors(
34bc0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 ).{.return.$this->aliasOf->getAu
34be0 74 68 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 thors();.}.public.function.getSu
34c00 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d pport().{.return.$this->aliasOf-
34c20 3e 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >getSupport();.}.public.function
34c40 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 5f .__toString().{.return.parent::_
34c60 5f 74 6f 53 74 72 69 6e 67 28 29 2e 27 20 28 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d _toString().'.(alias.of.'.$this-
34c80 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 29 27 3b 0a 7d 0a 7d 0a >aliasOf->getVersion().')';.}.}.
34ca0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
34cc0 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ser\Package;..use.Composer\Packa
34ce0 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 ge\LinkConstraint\LinkConstraint
34d00 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c Interface;.use.Composer\Package\
34d20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 PackageInterface;.......class.Li
34d40 6e 6b 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 nk.{.protected.$source;.protecte
34d60 64 20 24 74 61 72 67 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 d.$target;.protected.$constraint
34d80 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a ;.protected.$description;.......
34da0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 ...public.function.__construct($
34dc0 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 source,.$target,.LinkConstraintI
34de0 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 nterface.$constraint.=.null,.$de
34e00 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 72 65 6c 61 74 65 73 20 74 6f 27 2c 20 24 70 72 65 74 74 scription.=.'relates.to',.$prett
34e20 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 yConstraint.=.null).{.$this->sou
34e40 72 63 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 rce.=.strtolower($source);.$this
34e60 2d 3e 74 61 72 67 65 74 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 3b 0a ->target.=.strtolower($target);.
34e80 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b $this->constraint.=.$constraint;
34ea0 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 .$this->description.=.$descripti
34ec0 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 70 on;.$this->prettyConstraint.=.$p
34ee0 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rettyConstraint;.}..public.funct
34f00 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ion.getSource().{.return.$this->
34f20 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 source;.}..public.function.getTa
34f40 72 67 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d rget().{.return.$this->target;.}
34f60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 ..public.function.getConstraint(
34f80 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a ).{.return.$this->constraint;.}.
34fa0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 .public.function.getPrettyConstr
34fc0 61 69 6e 74 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 65 aint().{.if.(null.===.$this->pre
34fe0 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 ttyConstraint).{.throw.new.\Unex
35000 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 69 pectedValueException(sprintf('Li
35020 6e 6b 20 25 73 20 68 61 73 20 62 65 65 6e 20 6d 69 73 63 6f 6e 66 69 67 75 72 65 64 20 61 6e 64 nk.%s.has.been.misconfigured.and
35040 20 68 61 64 20 6e 6f 20 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 67 69 76 65 6e 2e 27 .had.no.prettyConstraint.given.'
35060 2c 20 24 74 68 69 73 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 ,.$this));.}..return.$this->pret
35080 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e tyConstraint;.}..public.function
350a0 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f .__toString().{.return.$this->so
350c0 75 72 63 65 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2e 27 20 27 2e urce.'.'.$this->description.'.'.
350e0 24 74 68 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 $this->target.'.('.$this->constr
35100 61 69 6e 74 2e 27 29 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 aint.')';.}..public.function.get
35120 50 72 65 74 74 79 53 74 72 69 6e 67 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 PrettyString(PackageInterface.$s
35140 6f 75 72 63 65 50 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 73 6f 75 72 63 65 50 61 ourcePackage).{.return.$sourcePa
35160 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 27 2e 24 74 68 ckage->getPrettyString().'.'.$th
35180 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 is->description.'.'.$this->targe
351a0 74 2e 27 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 t.'.'.$this->constraint->getPret
351c0 74 79 53 74 72 69 6e 67 28 29 2e 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a tyString().'';.}.}.<?php........
351e0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c ....namespace.Composer\Package\L
35200 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 75 6c 74 69 inkConstraint;.......class.Multi
35220 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 Constraint.implements.LinkConstr
35240 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 aintInterface.{.protected.$const
35260 72 61 69 6e 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b raints;.protected.$prettyString;
35280 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
352a0 63 74 28 61 72 72 61 79 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e ct(array.$constraints).{.$this->
352c0 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 7d 0a 0a 70 constraints.=.$constraints;.}..p
352e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 ublic.function.matches(LinkConst
35300 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 66 6f 72 65 raintInterface.$provider).{.fore
35320 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 ach.($this->constraints.as.$cons
35340 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 traint).{.if.(!$constraint->matc
35360 68 65 73 28 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a hes($provider)).{.return.false;.
35380 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 }.}..return.true;.}..public.func
353a0 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 tion.setPrettyString($prettyStri
353c0 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 ng).{.$this->prettyString.=.$pre
353e0 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ttyString;.}..public.function.ge
35400 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 tPrettyString().{.if.($this->pre
35420 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 ttyString).{.return.$this->prett
35440 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 yString;.}..return.$this->__toSt
35460 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 ring();.}..public.function.__toS
35480 74 72 69 6e 67 28 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 tring().{.$constraints.=.array()
354a0 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 ;.foreach.($this->constraints.as
354c0 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 5b 5d 20 3d .$constraint).{.$constraints[].=
354e0 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 72 .$constraint->__toString();.}..r
35500 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 63 6f 6e 73 74 72 61 eturn.'['.implode(',.',.$constra
35520 69 6e 74 73 29 2e 27 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ints).']';.}.}.<?php............
35540 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 namespace.Composer\Package\LinkC
35560 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e onstraint;.........class.Version
35580 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 Constraint.extends.SpecificConst
355a0 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 raint.{.private.$operator;.priva
355c0 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 te.$version;........public.funct
355e0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 76 65 72 73 ion.__construct($operator,.$vers
35600 69 6f 6e 29 0a 7b 0a 69 66 20 28 27 3d 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a ion).{.if.('='.===.$operator).{.
35620 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 27 3c 3e 27 20 3d 3d $operator.=.'==';.}..if.('<>'.==
35640 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 21 3d 27 3b =.$operator).{.$operator.=.'!=';
35660 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b .}..$this->operator.=.$operator;
35680 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 70 .$this->version.=.$version;.}..p
356a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 61 ublic.function.versionCompare($a
356c0 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d ,.$b,.$operator).{.if.('dev-'.==
356e0 3d 20 73 75 62 73 74 72 28 24 61 2c 20 30 2c 20 34 29 20 26 26 20 27 64 65 76 2d 27 20 3d 3d 3d =.substr($a,.0,.4).&&.'dev-'.===
35700 20 73 75 62 73 74 72 28 24 62 2c 20 30 2c 20 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 .substr($b,.0,.4)).{.return.$ope
35720 72 61 74 6f 72 20 3d 3d 20 27 3d 3d 27 20 26 26 20 24 61 20 3d 3d 3d 20 24 62 3b 0a 7d 0a 0a 72 rator.==.'=='.&&.$a.===.$b;.}..r
35740 65 74 75 72 6e 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f eturn.version_compare($a,.$b,.$o
35760 70 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e perator);.}......public.function
35780 20 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 .matchSpecific(VersionConstraint
357a0 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 .$provider).{.$noEqualOp.=.str_r
357c0 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 eplace('=',.'',.$this->operator)
357e0 3b 0a 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 ;.$providerNoEqualOp.=.str_repla
35800 63 65 28 27 3d 27 2c 20 27 27 2c 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 29 ce('=',.'',.$provider->operator)
35820 3b 0a 0a 24 69 73 45 71 75 61 6c 4f 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e ;..$isEqualOp.=.'=='.===.$this->
35840 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d operator;.$isNonEqualOp.=.'!='.=
35860 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 45 ==.$this->operator;.$isProviderE
35880 71 75 61 6c 4f 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 qualOp.=.'=='.===.$provider->ope
358a0 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 rator;.$isProviderNonEqualOp.=.'
358c0 21 3d 27 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 0a 0a 20 !='.===.$provider->operator;....
358e0 0a 20 69 66 20 28 24 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 7c 7c 20 24 69 73 50 72 6f 76 69 64 ..if.($isNonEqualOp.||.$isProvid
35900 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 21 24 69 73 45 71 75 61 6c erNonEqualOp).{.return.!$isEqual
35920 4f 70 20 26 26 20 21 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 0a 7c 7c 20 24 74 68 Op.&&.!$isProviderEqualOp.||.$th
35940 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 is->versionCompare($provider->ve
35960 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 27 21 3d 27 29 3b 0a 7d 0a rsion,.$this->version,.'!=');.}.
35980 0a 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 27 3d 3d 27 .....if.($this->operator.!=.'=='
359a0 20 26 26 20 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 .&&.$noEqualOp.==.$providerNoEqu
359c0 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 alOp).{.return.true;.}..if.($thi
359e0 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 s->versionCompare($provider->ver
35a00 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 65 sion,.$this->version,.$this->ope
35a20 72 61 74 6f 72 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 rator)).{.....if.($provider->ver
35a40 73 69 6f 6e 20 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 26 26 20 24 70 72 6f 76 69 sion.==.$this->version.&&.$provi
35a60 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 der->operator.==.$providerNoEqua
35a80 6c 4f 70 20 26 26 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 24 6e 6f 45 71 75 lOp.&&.$this->operator.!=.$noEqu
35aa0 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 alOp).{.return.false;.}..return.
35ac0 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 true;.}..return.false;.}..public
35ae0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.__toString().{.return.
35b00 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 2e 27 20 27 2e 24 74 68 69 73 2d 3e 76 65 72 73 69 $this->operator.'.'.$this->versi
35b20 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 on;.}.}.<?php............namespa
35b40 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 ce.Composer\Package\LinkConstrai
35b60 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 70 65 63 69 66 69 nt;.......abstract.class.Specifi
35b80 63 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 cConstraint.implements.LinkConst
35ba0 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 raintInterface.{.protected.$pret
35bc0 74 79 53 74 72 69 6e 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 tyString;..public.function.match
35be0 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 es(LinkConstraintInterface.$prov
35c00 69 64 65 72 29 0a 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 ider).{.if.($provider.instanceof
35c20 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 70 72 .MultiConstraint).{...return.$pr
35c40 6f 76 69 64 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 74 68 69 73 29 3b 0a 7d 20 65 6c 73 65 69 66 ovider->matches($this);.}.elseif
35c60 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 74 68 69 73 29 20 7b 0a .($provider.instanceof.$this).{.
35c80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 70 72 6f return.$this->matchSpecific($pro
35ca0 76 69 64 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 vider);.}..return.true;.}..publi
35cc0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 c.function.setPrettyString($pret
35ce0 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 tyString).{.$this->prettyString.
35d00 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 =.$prettyString;.}..public.funct
35d20 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 ion.getPrettyString().{.if.($thi
35d40 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d s->prettyString).{.return.$this-
35d60 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e >prettyString;.}..return.$this->
35d80 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 0a 7d 0a 3c 3f 70 68 70 0a 0a __toString();.}........}.<?php..
35da0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ..........namespace.Composer\Pac
35dc0 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 kage\LinkConstraint;.......inter
35de0 66 61 63 65 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 face.LinkConstraintInterface.{.p
35e00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 ublic.function.matches(LinkConst
35e20 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 3b 0a 70 75 62 6c 69 raintInterface.$provider);.publi
35e40 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 c.function.setPrettyString($pret
35e60 74 79 53 74 72 69 6e 67 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 tyString);.public.function.getPr
35e80 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ettyString();.public.function.__
35ea0 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e toString();.}.<?php............n
35ec0 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 amespace.Composer;..use.Composer
35ee0 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 61 63 \IO\IOInterface;.......class.Cac
35f00 68 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 3b he.{.private.$io;.private.$root;
35f20 0a 70 72 69 76 61 74 65 20 24 65 6e 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 0a 70 75 62 6c 69 .private.$enabled.=.true;..publi
35f40 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 c.function.__construct(IOInterfa
35f60 63 65 20 24 69 6f 2c 20 24 63 61 63 68 65 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d ce.$io,.$cacheDir).{.$this->io.=
35f80 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 20 3d 20 72 74 72 69 6d 28 24 63 61 63 68 65 .$io;.$this->root.=.rtrim($cache
35fa0 44 69 72 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 Dir,.'/\\')...'/';..if.(!is_dir(
35fc0 24 74 68 69 73 2d 3e 72 6f 6f 74 29 29 20 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 74 68 69 $this->root)).{.if.(!@mkdir($thi
35fe0 73 2d 3e 72 6f 6f 74 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 s->root,.0777,.true)).{.$this->e
36000 6e 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 nabled.=.false;.}.}.}..public.fu
36020 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getRoot().{.return.$this-
36040 3e 72 6f 6f 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 >root;.}..public.function.read($
36060 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b file).{.$file.=.preg_replace('{[
36080 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 ^a-z0-9.]}i',.'-',.$file);.if.($
360a0 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 this->enabled.&&.file_exists($th
360c0 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 69 6c 65 is->root...$file)).{.return.file
360e0 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c _get_contents($this->root...$fil
36100 65 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 e);.}.}..public.function.write($
36120 66 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e file,.$contents).{.if.($this->en
36140 61 62 6c 65 64 29 20 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b abled).{.$file.=.preg_replace('{
36160 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 66 69 6c 65 [^a-z0-9.]}i',.'-',.$file);.file
36180 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c _put_contents($this->root...$fil
361a0 65 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 e,.$contents);.}.}..public.funct
361c0 69 6f 6e 20 73 68 61 31 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 ion.sha1($file).{.$file.=.preg_r
361e0 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 eplace('{[^a-z0-9.]}i',.'-',.$fi
36200 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f le);.if.($this->enabled.&&.file_
36220 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 exists($this->root...$file)).{.r
36240 65 74 75 72 6e 20 73 68 61 31 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 eturn.sha1_file($this->root...$f
36260 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d ile);.}.}.}.<?php............nam
36280 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 espace.Composer\DependencyResolv
362a0 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 er;..use.Composer\Package\Packag
362c0 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 50 6f 6c 69 63 79 eInterface;.....interface.Policy
362e0 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 Interface.{.public.function.vers
36300 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 ionCompare(PackageInterface.$a,.
36320 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 3b PackageInterface.$b,.$operator);
36340 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 .public.function.findUpdatePacka
36360 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 ges(Pool.$pool,.array.$installed
36380 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b Map,.PackageInterface.$package);
363a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 .public.function.selectPreferedP
363c0 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 ackages(Pool.$pool,.array.$insta
363e0 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 3c 3f 70 lledMap,.array.$literals);.}.<?p
36400 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
36420 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 \DependencyResolver;.....class.R
36440 75 6c 65 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 uleSet.implements.\IteratorAggre
36460 67 61 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 0a 20 63 6f 6e 73 74 20 54 59 50 45 5f gate,.\Countable.{...const.TYPE_
36480 50 41 43 4b 41 47 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4a 4f 42 20 3d 20 31 3b PACKAGE.=.0;.const.TYPE_JOB.=.1;
364a0 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 20 34 3b 0a 0a 70 72 6f 74 65 63 .const.TYPE_LEARNED.=.4;..protec
364c0 74 65 64 20 73 74 61 74 69 63 20 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 2d 31 20 3d 3e ted.static.$types.=.array(.-1.=>
364e0 20 27 55 4e 4b 4e 4f 57 4e 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d .'UNKNOWN',.self::TYPE_PACKAGE.=
36500 3e 20 27 50 41 43 4b 41 47 45 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4a 4f 42 20 3d 3e 20 27 >.'PACKAGE',.self::TYPE_JOB.=>.'
36520 4a 4f 42 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3e 20 27 4c 45 41 JOB',.self::TYPE_LEARNED.=>.'LEA
36540 52 4e 45 44 27 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f RNED',.);..protected.$rules;.pro
36560 74 65 63 74 65 64 20 24 72 75 6c 65 42 79 49 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 65 78 tected.$ruleById;.protected.$nex
36580 74 52 75 6c 65 49 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 42 79 48 61 73 68 tRuleId;..protected.$rulesByHash
365a0 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 ;..public.function.__construct()
365c0 0a 7b 0a 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 .{.$this->nextRuleId.=.0;..forea
365e0 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 54 79 70 65 73 28 29 20 61 73 20 24 74 79 70 65 29 20 ch.($this->getTypes().as.$type).
36600 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b {.$this->rules[$type].=.array();
36620 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 20 3d 20 61 72 72 61 79 28 29 .}..$this->rulesByHash.=.array()
36640 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 52 75 6c 65 20 24 72 ;.}..public.function.add(Rule.$r
36660 75 6c 65 2c 20 24 74 79 70 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 ule,.$type).{.if.(!isset(self::$
36680 74 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4f 75 74 4f types[$type])).{.throw.new.\OutO
366a0 66 42 6f 75 6e 64 73 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 72 75 6c 65 20 74 fBoundsException('Unknown.rule.t
366c0 79 70 65 3a 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 ype:.'...$type);.}..if.(!isset($
366e0 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 this->rules[$type])).{.$this->ru
36700 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e les[$type].=.array();.}..$this->
36720 72 75 6c 65 73 5b 24 74 79 70 65 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 rules[$type][].=.$rule;.$this->r
36740 75 6c 65 42 79 49 64 5b 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 5d 20 3d 20 24 72 75 uleById[$this->nextRuleId].=.$ru
36760 6c 65 3b 0a 24 72 75 6c 65 2d 3e 73 65 74 54 79 70 65 28 24 74 79 70 65 29 3b 0a 0a 24 72 75 6c le;.$rule->setType($type);..$rul
36780 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 29 3b 0a 24 74 68 e->setId($this->nextRuleId);.$th
367a0 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 2b 2b 3b 0a 0a 24 68 61 73 68 20 3d 20 24 72 75 6c 65 is->nextRuleId++;..$hash.=.$rule
367c0 2d 3e 67 65 74 48 61 73 68 28 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 ->getHash();.if.(!isset($this->r
367e0 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c ulesByHash[$hash])).{.$this->rul
36800 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 20 3d 20 61 72 72 61 79 28 24 72 75 6c 65 29 3b 0a esByHash[$hash].=.array($rule);.
36820 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 }.else.{.$this->rulesByHash[$has
36840 68 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 h][].=.$rule;.}.}..public.functi
36860 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 65 78 74 52 on.count().{.return.$this->nextR
36880 75 6c 65 49 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6c 65 42 79 uleId;.}..public.function.ruleBy
368a0 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 42 79 49 64 Id($id).{.return.$this->ruleById
368c0 5b 24 69 64 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c [$id];.}..public.function.getRul
368e0 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 0a 70 es().{.return.$this->rules;.}..p
36900 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 72 ublic.function.getIterator().{.r
36920 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 74 68 69 73 2d eturn.new.RuleSetIterator($this-
36940 3e 67 65 74 52 75 6c 65 73 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >getRules());.}..public.function
36960 20 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 .getIteratorFor($types).{.if.(!i
36980 73 5f 61 72 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 s_array($types)).{.$types.=.arra
369a0 79 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 61 6c 6c 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d y($types);.}..$allRules.=.$this-
369c0 3e 67 65 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a >getRules();.$rules.=.array();..
369e0 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 72 75 6c foreach.($types.as.$type).{.$rul
36a00 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 61 6c 6c 52 75 6c 65 73 5b 24 74 79 70 65 5d 3b 0a 7d 0a es[$type].=.$allRules[$type];.}.
36a20 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c .return.new.RuleSetIterator($rul
36a40 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 es);.}..public.function.getItera
36a60 74 6f 72 57 69 74 68 6f 75 74 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 torWithout($types).{.if.(!is_arr
36a80 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 79 ay($types)).{.$types.=.array($ty
36aa0 70 65 73 29 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 75 6c 65 pes);.}..$rules.=.$this->getRule
36ac0 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 s();..foreach.($types.as.$type).
36ae0 7b 0a 75 6e 73 65 74 28 24 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 {.unset($rules[$type]);.}..retur
36b00 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c 65 73 29 3b 0a 7d n.new.RuleSetIterator($rules);.}
36b20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 73 28 29 0a 7b 0a 24 ..public.function.getTypes().{.$
36b40 74 79 70 65 73 20 3d 20 73 65 6c 66 3a 3a 24 74 79 70 65 73 3b 0a 75 6e 73 65 74 28 24 74 79 70 types.=.self::$types;.unset($typ
36b60 65 73 5b 2d 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 79 70 es[-1]);..return.array_keys($typ
36b80 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 es);.}..public.function.contains
36ba0 45 71 75 61 6c 28 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e Equal($rule).{.if.(isset($this->
36bc0 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d 29 29 20 rulesByHash[$rule->getHash()])).
36be0 7b 0a 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e {.$potentialDuplicates.=.$this->
36c00 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d 3b 0a 66 rulesByHash[$rule->getHash()];.f
36c20 6f 72 65 61 63 68 20 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 61 73 20 oreach.($potentialDuplicates.as.
36c40 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 $potentialDuplicate).{.if.($rule
36c60 2d 3e 65 71 75 61 6c 73 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 29 20 7b ->equals($potentialDuplicate)).{
36c80 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 .return.true;.}.}.}..return.fals
36ca0 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 e;.}..public.function.__toString
36cc0 28 29 0a 7b 0a 24 73 74 72 69 6e 67 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 ().{.$string.=."\n";.foreach.($t
36ce0 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 72 75 6c 65 73 29 20 7b his->rules.as.$type.=>.$rules).{
36d00 0a 24 73 74 72 69 6e 67 20 2e 3d 20 73 74 72 5f 70 61 64 28 73 65 6c 66 3a 3a 24 74 79 70 65 73 .$string..=.str_pad(self::$types
36d20 5b 24 74 79 70 65 5d 2c 20 38 2c 20 27 20 27 29 20 2e 20 22 3a 20 22 3b 0a 66 6f 72 65 61 63 68 [$type],.8,.'.')...":.";.foreach
36d40 20 28 24 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 73 74 72 69 6e 67 20 2e 3d 20 .($rules.as.$rule).{.$string..=.
36d60 24 72 75 6c 65 2e 22 5c 6e 22 3b 0a 7d 0a 24 73 74 72 69 6e 67 20 2e 3d 20 22 5c 6e 5c 6e 22 3b $rule."\n";.}.$string..=."\n\n";
36d80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 72 69 6e 67 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .}..return.$string;.}.}.<?php...
36da0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 .........namespace.Composer\Depe
36dc0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 ndencyResolver;.....class.Solver
36de0 42 75 67 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 BugException.extends.\RuntimeExc
36e00 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 eption.{.public.function.__const
36e20 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 ruct($message).{.parent::__const
36e40 72 75 63 74 28 0a 24 6d 65 73 73 61 67 65 2e 22 5c 6e 54 68 69 73 20 65 78 63 65 70 74 69 6f 6e ruct(.$message."\nThis.exception
36e60 20 77 61 73 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 63 61 75 73 65 64 20 62 79 20 61 20 62 75 67 .was.most.likely.caused.by.a.bug
36e80 20 69 6e 20 43 6f 6d 70 6f 73 65 72 2e 5c 6e 22 2e 0a 22 50 6c 65 61 73 65 20 72 65 70 6f 72 74 .in.Composer.\n".."Please.report
36ea0 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 79 6f 75 20 72 61 6e 2c 20 74 68 65 20 65 78 61 63 74 20 .the.command.you.ran,.the.exact.
36ec0 65 72 72 6f 72 20 79 6f 75 20 72 65 63 65 69 76 65 64 2c 20 61 6e 64 20 79 6f 75 72 20 63 6f 6d error.you.received,.and.your.com
36ee0 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 6e 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d poser.json.on.https://github.com
36f00 2f 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 73 73 75 65 73 20 2d 20 74 68 61 6e /composer/composer/issues.-.than
36f20 6b 20 79 6f 75 21 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a k.you!\n");.}.}.<?php...........
36f40 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 .namespace.Composer\DependencyRe
36f60 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 solver;..use.Composer\Package\Pa
36f80 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ckageInterface;.use.Composer\Pac
36fa0 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c kage\AliasPackage;.use.Composer\
36fc0 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f Package\LinkConstraint\VersionCo
36fe0 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 nstraint;.....class.DefaultPolic
37000 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 y.implements.PolicyInterface.{.p
37020 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 ublic.function.versionCompare(Pa
37040 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ckageInterface.$a,.PackageInterf
37060 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 ace.$b,.$operator).{.$constraint
37080 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 70 65 72 61 74 .=.new.VersionConstraint($operat
370a0 6f 72 2c 20 24 62 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 65 72 73 69 6f 6e 20 or,.$b->getVersion());.$version.
370c0 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 61 =.new.VersionConstraint('==',.$a
370e0 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 ->getVersion());..return.$constr
37100 61 69 6e 74 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d aint->matchSpecific($version);.}
37120 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b ..public.function.findUpdatePack
37140 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 ages(Pool.$pool,.array.$installe
37160 64 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 dMap,.PackageInterface.$package)
37180 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 .{.$packages.=.array();..foreach
371a0 20 28 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e .($pool->whatProvides($package->
371c0 67 65 74 4e 61 6d 65 28 29 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 getName()).as.$candidate).{.if.(
371e0 24 63 61 6e 64 69 64 61 74 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b $candidate.!==.$package).{.$pack
37200 61 67 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e ages[].=.$candidate;.}.}..return
37220 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .$packages;.}..public.function.g
37240 65 74 50 72 69 6f 72 69 74 79 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 50 61 63 6b 61 67 65 49 6e etPriority(Pool.$pool,.PackageIn
37260 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6f 6c terface.$package).{.return.$pool
37280 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 ->getPriority($package->getRepos
372a0 69 74 6f 72 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c itory());.}..public.function.sel
372c0 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 ectPreferedPackages(Pool.$pool,.
372e0 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 array.$installedMap,.array.$lite
37300 72 61 6c 73 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 72 6f 75 70 rals).{.$packages.=.$this->group
37320 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 LiteralsByNamePreferInstalled($p
37340 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a ool,.$installedMap,.$literals);.
37360 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 26 24 6c 69 74 65 72 61 6c .foreach.($packages.as.&$literal
37380 73 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 3b 0a 75 73 6f 72 74 28 24 6c 69 74 s).{.$policy.=.$this;.usort($lit
373a0 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 erals,.function.($a,.$b).use.($p
373c0 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 20 7b 0a 72 olicy,.$pool,.$installedMap).{.r
373e0 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 69 6f 72 69 74 79 eturn.$policy->compareByPriority
37400 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 PreferInstalled($pool,.$installe
37420 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 61 dMap,.$pool->literalToPackage($a
37440 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 62 29 2c 20 ),.$pool->literalToPackage($b),.
37460 74 72 75 65 29 3b 0a 7d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 true);.});.}..foreach.($packages
37480 20 61 73 20 26 24 6c 69 74 65 72 61 6c 73 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 .as.&$literals).{.$literals.=.$t
374a0 68 69 73 2d 3e 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f 6e 28 24 70 6f 6f 6c 2c 20 24 his->pruneToBestVersion($pool,.$
374c0 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 literals);..$literals.=.$this->p
374e0 72 75 6e 65 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 runeToHighestPriorityOrInstalled
37500 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 ($pool,.$installedMap,.$literals
37520 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 52 65 6d 6f );..$literals.=.$this->pruneRemo
37540 74 65 41 6c 69 61 73 65 73 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a teAliases($pool,.$literals);.}..
37560 24 73 65 6c 65 63 74 65 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 $selected.=.call_user_func_array
37580 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 0a 20 75 ('array_merge',.$packages);....u
375a0 73 6f 72 74 28 24 73 65 6c 65 63 74 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 sort($selected,.function.($a,.$b
375c0 29 20 75 73 65 20 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 ).use.($policy,.$pool,.$installe
375e0 64 4d 61 70 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 dMap).{.return.$policy->compareB
37600 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 yPriorityPreferInstalled($pool,.
37620 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 $installedMap,.$pool->literalToP
37640 61 63 6b 61 67 65 28 24 61 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b ackage($a),.$pool->literalToPack
37660 61 67 65 28 24 62 29 29 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b age($b));.});..return.$selected;
37680 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 72 6f 75 70 4c 69 74 65 .}..protected.function.groupLite
376a0 72 61 6c 73 42 79 4e 61 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 ralsByNamePreferInstalled(Pool.$
376c0 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 pool,.array.$installedMap,.$lite
376e0 72 61 6c 73 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 rals).{.$packages.=.array();.for
37700 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 each.($literals.as.$literal).{.$
37720 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 packageName.=.$pool->literalToPa
37740 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 ckage($literal)->getName();..if.
37760 28 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 29 (!isset($packages[$packageName])
37780 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 61 72 ).{.$packages[$packageName].=.ar
377a0 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 ray();.}..if.(isset($installedMa
377c0 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 p[abs($literal)])).{.array_unshi
377e0 66 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 2c 20 24 6c 69 74 ft($packages[$packageName],.$lit
37800 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 eral);.}.else.{.$packages[$packa
37820 67 65 4e 61 6d 65 5d 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 geName][].=.$literal;.}.}..retur
37840 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 n.$packages;.}..public.function.
37860 63 6f 6d 70 61 72 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 compareByPriorityPreferInstalled
37880 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 (Pool.$pool,.array.$installedMap
378a0 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e ,.PackageInterface.$a,.PackageIn
378c0 74 65 72 66 61 63 65 20 24 62 2c 20 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 20 3d 20 66 61 6c terface.$b,.$ignoreReplace.=.fal
378e0 73 65 29 0a 7b 0a 69 66 20 28 24 61 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3d 3d se).{.if.($a->getRepository().==
37900 3d 20 24 62 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 0a 20 69 66 20 28 24 =.$b->getRepository()).{...if.($
37920 61 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 a->getName().===.$b->getName()).
37940 7b 0a 24 61 41 6c 69 61 73 65 64 20 3d 20 24 61 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 {.$aAliased.=.$a.instanceof.Alia
37960 73 50 61 63 6b 61 67 65 3b 0a 24 62 41 6c 69 61 73 65 64 20 3d 20 24 62 20 69 6e 73 74 61 6e 63 sPackage;.$bAliased.=.$b.instanc
37980 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 69 66 20 28 24 61 41 6c 69 61 73 65 64 20 eof.AliasPackage;.if.($aAliased.
379a0 26 26 20 21 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a &&.!$bAliased).{.return.-1;...}.
379c0 69 66 20 28 21 24 61 41 6c 69 61 73 65 64 20 26 26 20 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 if.(!$aAliased.&&.$bAliased).{.r
379e0 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 67 6e 6f 72 65 52 65 70 6c eturn.1;...}.}..if.(!$ignoreRepl
37a00 61 63 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 61 2c ace).{...if.($this->replaces($a,
37a20 20 24 62 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d .$b)).{.return.1;...}.if.($this-
37a40 3e 72 65 70 6c 61 63 65 73 28 24 62 2c 20 24 61 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 >replaces($b,.$a)).{.return.-1;.
37a60 0a 20 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 49 64 28 29 20 3d 3d 3d 20 24 62 2d ..}.}....if.($a->getId().===.$b-
37a80 3e 67 65 74 49 64 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 >getId()).{.return.0;.}..return.
37aa0 28 24 61 2d 3e 67 65 74 49 64 28 29 20 3c 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 3f 20 2d 31 ($a->getId().<.$b->getId()).?.-1
37ac0 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 .:.1;.}..if.(isset($installedMap
37ae0 5b 24 61 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 0a 0a [$a->getId()])).{.return.-1;.}..
37b00 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 62 2d 3e 67 65 74 49 if.(isset($installedMap[$b->getI
37b20 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 74 d()])).{.return.1;.}..return.($t
37b40 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 61 29 20 3e 20 24 74 his->getPriority($pool,.$a).>.$t
37b60 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 62 29 29 20 3f 20 2d his->getPriority($pool,.$b)).?.-
37b80 31 20 3a 20 31 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 1.:.1;.}............protected.fu
37ba0 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 nction.replaces(PackageInterface
37bc0 20 24 73 6f 75 72 63 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 .$source,.PackageInterface.$targ
37be0 65 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 6f 75 72 63 65 2d 3e 67 65 74 52 65 70 6c 61 et).{.foreach.($source->getRepla
37c00 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 ces().as.$link).{.if.($link->get
37c20 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 0a Target().===.$target->getName().
37c40 0a 0a 20 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ...).{.return.true;.}.}..return.
37c60 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 false;.}..protected.function.pru
37c80 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f 6e 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6c 69 74 neToBestVersion(Pool.$pool,.$lit
37ca0 65 72 61 6c 73 29 0a 7b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 erals).{.$bestLiterals.=.array($
37cc0 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 6f literals[0]);.$bestPackage.=.$po
37ce0 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 73 5b 30 ol->literalToPackage($literals[0
37d00 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 ]);.foreach.($literals.as.$i.=>.
37d20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 $literal).{.if.(0.===.$i).{.cont
37d40 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 inue;.}..$package.=.$pool->liter
37d60 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 74 68 69 alToPackage($literal);..if.($thi
37d80 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 73 s->versionCompare($package,.$bes
37da0 74 50 61 63 6b 61 67 65 2c 20 27 3e 27 29 29 20 7b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d tPackage,.'>')).{.$bestPackage.=
37dc0 20 24 70 61 63 6b 61 67 65 3b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 .$package;.$bestLiterals.=.array
37de0 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 ($literal);.}.elseif.($this->ver
37e00 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 sionCompare($package,.$bestPacka
37e20 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 ge,.'==')).{.$bestLiterals[].=.$
37e40 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 65 73 74 4c 69 74 65 72 61 literal;.}.}..return.$bestLitera
37e60 6c 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 ls;.}..protected.function.select
37e80 4e 65 77 65 73 74 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d NewestPackages(array.$installedM
37ea0 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 6d 61 78 4c 69 74 65 72 ap,.array.$literals).{.$maxLiter
37ec0 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 6d 61 78 50 als.=.array($literals[0]);.$maxP
37ee0 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 2d 3e 67 65 74 50 61 63 6b 61 67 ackage.=.$literals[0]->getPackag
37f00 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e e();.foreach.($literals.as.$i.=>
37f20 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e .$literal).{.if.(0.===.$i).{.con
37f40 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 tinue;.}..if.($this->versionComp
37f60 61 72 65 28 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 20 24 6d 61 78 are($literal->getPackage(),.$max
37f80 50 61 63 6b 61 67 65 2c 20 27 3e 27 29 29 20 7b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 Package,.'>')).{.$maxPackage.=.$
37fa0 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 6d 61 78 4c 69 74 65 72 literal->getPackage();.$maxLiter
37fc0 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 20 als.=.array($literal);.}.elseif.
37fe0 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 6c 69 74 65 72 61 6c 2d ($this->versionCompare($literal-
38000 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 20 24 6d 61 78 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 >getPackage(),.$maxPackage,.'=='
38020 29 29 20 7b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a )).{.$maxLiterals[].=.$literal;.
38040 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 78 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a }.}..return.$maxLiterals;.}.....
38060 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 48 69 67 68 65 73 protected.function.pruneToHighes
38080 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c tPriorityOrInstalled(Pool.$pool,
380a0 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 .array.$installedMap,.array.$lit
380c0 65 72 61 6c 73 29 0a 7b 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 erals).{.$selected.=.array();..$
380e0 70 72 69 6f 72 69 74 79 20 3d 20 6e 75 6c 6c 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 priority.=.null;..foreach.($lite
38100 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 rals.as.$literal).{.$package.=.$
38120 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 pool->literalToPackage($literal)
38140 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b ;..if.(isset($installedMap[$pack
38160 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 age->getId()])).{.$selected[].=.
38180 24 6c 69 74 65 72 61 6c 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 $literal;.continue;.}..if.(null.
381a0 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 24 74 68 ===.$priority).{.$priority.=.$th
381c0 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 is->getPriority($pool,.$package)
381e0 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f ;.}..if.($this->getPriority($poo
38200 6c 2c 20 24 70 61 63 6b 61 67 65 29 20 21 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 62 72 65 l,.$package).!=.$priority).{.bre
38220 61 6b 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d ak;.}..$selected[].=.$literal;.}
38240 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ..return.$selected;.}.......prot
38260 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 ected.function.pruneRemoteAliase
38280 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b s(Pool.$pool,.array.$literals).{
382a0 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 .$hasLocalAlias.=.false;..foreac
382c0 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 h.($literals.as.$literal).{.$pac
382e0 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 kage.=.$pool->literalToPackage($
38300 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 literal);..if.($package.instance
38320 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 of.AliasPackage.&&.$package->isR
38340 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c ootPackageAlias()).{.$hasLocalAl
38360 69 61 73 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 68 61 ias.=.true;.break;.}.}..if.(!$ha
38380 73 4c 6f 63 61 6c 41 6c 69 61 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 73 3b sLocalAlias).{.return.$literals;
383a0 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 .}..$selected.=.array();.foreach
383c0 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b .($literals.as.$literal).{.$pack
383e0 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c age.=.$pool->literalToPackage($l
38400 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f iteral);..if.($package.instanceo
38420 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f f.AliasPackage.&&.$package->isRo
38440 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 otPackageAlias()).{.$selected[].
38460 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 =.$literal;.}.}..return.$selecte
38480 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 d;.}.}.<?php............namespac
384a0 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a e.Composer\DependencyResolver;..
384c0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 63 69 73 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 .....class.Decisions.implements.
384e0 5c 49 74 65 72 61 74 6f 72 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 44 45 \Iterator,.\Countable.{.const.DE
38500 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 CISION_LITERAL.=.0;.const.DECISI
38520 4f 4e 5f 52 45 41 53 4f 4e 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b ON_REASON.=.1;..protected.$pool;
38540 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 4d 61 70 3b 0a 70 72 6f 74 65 63 74 .protected.$decisionMap;.protect
38560 65 64 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 ed.$decisionQueue.=.array();..pu
38580 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6f 6c 29 blic.function.__construct($pool)
385a0 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 0a 69 66 20 28 76 65 72 .{.$this->pool.=.$pool;..if.(ver
385c0 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 34 sion_compare(PHP_VERSION,.'5.3.4
385e0 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d ',.'>=')).{.$this->decisionMap.=
38600 20 6e 65 77 20 5c 53 70 6c 46 69 78 65 64 41 72 72 61 79 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d .new.\SplFixedArray($this->pool-
38620 3e 67 65 74 4d 61 78 49 64 28 29 20 2b 20 31 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 >getMaxId().+.1);.}.else.{.$this
38640 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d 20 61 72 72 61 79 5f 66 69 6c 6c 28 30 2c 20 24 74 ->decisionMap.=.array_fill(0,.$t
38660 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 67 65 74 4d 61 78 49 64 28 29 20 2b 20 31 2c 20 30 29 3b 0a 7d his->pool->getMaxId().+.1,.0);.}
38680 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 28 24 6c 69 74 65 .}..public.function.decide($lite
386a0 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 77 68 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 44 ral,.$level,.$why).{.$this->addD
386c0 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 73 ecision($literal,.$level);.$this
386e0 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a ->decisionQueue[].=.array(.self:
38700 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 3e 20 24 6c 69 74 65 72 61 6c 2c 0a 73 :DECISION_LITERAL.=>.$literal,.s
38720 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 3e 20 24 77 68 79 2c 0a 29 3b elf::DECISION_REASON.=>.$why,.);
38740 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 73 66 79 28 24 6c 69 74 .}..public.function.satisfy($lit
38760 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 eral).{.$packageId.=.abs($litera
38780 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 74 l);..return.(.$literal.>.0.&&.$t
387a0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 his->decisionMap[$packageId].>.0
387c0 20 7c 7c 0a 24 6c 69 74 65 72 61 6c 20 3c 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 .||.$literal.<.0.&&.$this->decis
387e0 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 0a 29 3b 0a 7d 0a 0a 70 75 62 ionMap[$packageId].<.0.);.}..pub
38800 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 6c 69 63 74 28 24 6c 69 74 65 72 61 6c 29 0a lic.function.conflict($literal).
38820 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 {.$packageId.=.abs($literal);..r
38840 65 74 75 72 6e 20 28 0a 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 eturn.(.($this->decisionMap[$pac
38860 6b 61 67 65 49 64 5d 20 3e 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3c 20 30 29 20 7c 7c 0a kageId].>.0.&&.$literal.<.0).||.
38880 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 ($this->decisionMap[$packageId].
388a0 3c 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 <.0.&&.$literal.>.0).);.}..publi
388c0 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 c.function.decided($literalOrPac
388e0 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e kageId).{.return.$this->decision
38900 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 20 21 3d Map[abs($literalOrPackageId)].!=
38920 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 64 65 63 69 64 65 64 .0;.}..public.function.undecided
38940 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ($literalOrPackageId).{.return.$
38960 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 this->decisionMap[abs($literalOr
38980 50 61 63 6b 61 67 65 49 64 29 5d 20 3d 3d 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 PackageId)].==.0;.}..public.func
389a0 74 69 6f 6e 20 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 tion.decidedInstall($literalOrPa
389c0 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f ckageId).{.return.$this->decisio
389e0 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 20 3e nMap[abs($literalOrPackageId)].>
38a00 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 4c .0;.}..public.function.decisionL
38a20 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 evel($literalOrPackageId).{.retu
38a40 72 6e 20 61 62 73 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c rn.abs($this->decisionMap[abs($l
38a60 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 iteralOrPackageId)]);.}..public.
38a80 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 4f 72 function.decisionRule($literalOr
38aa0 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c PackageId).{.$packageId.=.abs($l
38ac0 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 iteralOrPackageId);..foreach.($t
38ae0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 his->decisionQueue.as.$i.=>.$dec
38b00 69 73 69 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 61 62 73 28 ision).{.if.($packageId.===.abs(
38b20 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c $decision[self::DECISION_LITERAL
38b40 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 ])).{.return.$decision[self::DEC
38b60 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b ISION_REASON];.}.}..return.null;
38b80 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 74 4f 66 66 73 65 74 28 24 71 75 .}..public.function.atOffset($qu
38ba0 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 eueOffset).{.return.$this->decis
38bc0 69 6f 6e 51 75 65 75 65 5b 24 71 75 65 75 65 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 ionQueue[$queueOffset];.}..publi
38be0 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 4f 66 66 73 65 74 28 24 71 75 65 75 65 4f 66 66 c.function.validOffset($queueOff
38c00 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3e 3d 20 30 20 set).{.return.$queueOffset.>=.0.
38c20 26 26 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 &&.$queueOffset.<.count($this->d
38c40 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ecisionQueue);.}..public.functio
38c60 6e 20 6c 61 73 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 n.lastReason().{.return.$this->d
38c80 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 ecisionQueue[count($this->decisi
38ca0 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 onQueue).-.1][self::DECISION_REA
38cc0 53 4f 4e 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 4c 69 74 SON];.}..public.function.lastLit
38ce0 65 72 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 eral().{.return.$this->decisionQ
38d00 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 ueue[count($this->decisionQueue)
38d20 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 7d .-.1][self::DECISION_LITERAL];.}
38d40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a 7b 0a 77 68 69 6c ..public.function.reset().{.whil
38d60 65 20 28 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e e.($decision.=.array_pop($this->
38d80 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f decisionQueue)).{.$this->decisio
38da0 6e 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f nMap[abs($decision[self::DECISIO
38dc0 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 N_LITERAL])].=.0;.}.}..public.fu
38de0 6e 63 74 69 6f 6e 20 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 6f 66 66 73 65 74 29 0a 7b 0a nction.resetToOffset($offset).{.
38e00 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 while.(count($this->decisionQueu
38e20 65 29 20 3e 20 24 6f 66 66 73 65 74 20 2b 20 31 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 e).>.$offset.+.1).{.$decision.=.
38e40 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b array_pop($this->decisionQueue);
38e60 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f .$this->decisionMap[abs($decisio
38e80 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b n[self::DECISION_LITERAL])].=.0;
38ea0 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 76 65 72 74 4c 61 73 74 .}.}..public.function.revertLast
38ec0 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 74 68 69 ().{.$this->decisionMap[abs($thi
38ee0 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 29 5d 20 3d 20 30 3b 0a 61 72 72 61 79 5f 70 6f s->lastLiteral())].=.0;.array_po
38f00 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c p($this->decisionQueue);.}..publ
38f20 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 ic.function.count().{.return.cou
38f40 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 nt($this->decisionQueue);.}..pub
38f60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 65 6e 64 28 24 74 68 69 lic.function.rewind().{.end($thi
38f80 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e s->decisionQueue);.}..public.fun
38fa0 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 75 72 72 65 6e 74 ction.current().{.return.current
38fc0 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 ($this->decisionQueue);.}..publi
38fe0 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6b 65 79 28 24 74 c.function.key().{.return.key($t
39000 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 his->decisionQueue);.}..public.f
39020 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 76 28 24 74 68 unction.next().{.return.prev($th
39040 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 is->decisionQueue);.}..public.fu
39060 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d nction.valid().{.return.false.!=
39080 3d 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b =.current($this->decisionQueue);
390a0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6d 70 74 79 28 29 0a 7b 0a .}..public.function.isEmpty().{.
390c0 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 return.count($this->decisionQueu
390e0 65 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 e).===.0;.}..protected.function.
39100 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 29 0a 7b 0a addDecision($literal,.$level).{.
39120 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 24 70 72 $packageId.=.abs($literal);..$pr
39140 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e eviousDecision.=.$this->decision
39160 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 3b 0a 69 66 20 28 24 70 72 65 76 69 6f 75 73 44 65 Map[$packageId];.if.($previousDe
39180 63 69 73 69 6f 6e 20 21 3d 20 30 29 20 7b 0a 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 3d 20 cision.!=.0).{.$literalString.=.
391a0 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 $this->pool->literalToString($li
391c0 74 65 72 61 6c 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e teral);.$package.=.$this->pool->
391e0 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 74 68 72 6f literalToPackage($literal);.thro
39200 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e w.new.SolverBugException(."Tryin
39220 67 20 74 6f 20 64 65 63 69 64 65 20 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 6f 6e 20 6c 65 g.to.decide.$literalString.on.le
39240 76 65 6c 20 24 6c 65 76 65 6c 2c 20 65 76 65 6e 20 74 68 6f 75 67 68 20 24 70 61 63 6b 61 67 65 vel.$level,.even.though.$package
39260 20 77 61 73 20 70 72 65 76 69 6f 75 73 6c 79 20 64 65 63 69 64 65 64 20 61 73 20 22 2e 28 69 6e .was.previously.decided.as.".(in
39280 74 29 20 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 2e 22 2e 22 0a 29 3b 0a 7d 0a 0a 69 t).$previousDecision.".".);.}..i
392a0 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 f.($literal.>.0).{.$this->decisi
392c0 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 20 65 6c onMap[$packageId].=.$level;.}.el
392e0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 se.{.$this->decisionMap[$package
39300 49 64 5d 20 3d 20 2d 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a Id].=.-$level;.}.}.}.<?php......
39320 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 ......namespace.Composer\Depende
39340 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 ncyResolver;.........class.RuleW
39360 61 74 63 68 4e 6f 64 65 0a 7b 0a 70 75 62 6c 69 63 20 24 77 61 74 63 68 31 3b 0a 70 75 62 6c 69 atchNode.{.public.$watch1;.publi
39380 63 20 24 77 61 74 63 68 32 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 3b 0a 0a 0a 0a c.$watch2;..protected.$rule;....
393a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 ...public.function.__construct($
393c0 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 0a 24 6c rule).{.$this->rule.=.$rule;..$l
393e0 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a iterals.=.$rule->getLiterals();.
39400 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 .$this->watch1.=.count($literals
39420 29 20 3e 20 30 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 20 3a 20 30 3b 0a 24 74 68 69 73 2d ).>.0.?.$literals[0].:.0;.$this-
39440 3e 77 61 74 63 68 32 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 31 20 3f >watch2.=.count($literals).>.1.?
39460 20 24 6c 69 74 65 72 61 6c 73 5b 31 5d 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .$literals[1].:.0;.}..........pu
39480 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 44 65 blic.function.watch2OnHighest(De
394a0 63 69 73 69 6f 6e 73 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 cisions.$decisions).{.$literals.
394c0 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 0a =.$this->rule->getLiterals();...
394e0 20 69 66 20 28 24 6c 69 74 65 72 61 6c 73 20 3c 20 33 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a .if.($literals.<.3).{.return;.}.
39500 0a 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 .$watchLevel.=.0;..foreach.($lit
39520 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 6c 65 76 65 6c 20 3d 20 24 64 erals.as.$literal).{.$level.=.$d
39540 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c ecisions->decisionLevel($literal
39560 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 24 77 61 74 63 68 4c 65 76 65 6c 29 20 7b 0a );..if.($level.>.$watchLevel).{.
39580 24 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 77 61 74 63 68 32 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a $this->rule->watch2.=.$literal;.
395a0 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a $watchLevel.=.$level;.}.}.}.....
395c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 28 29 0a 7b 0a 72 65 ..public.function.getRule().{.re
395e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 turn.$this->rule;.}........publi
39600 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 c.function.getOtherWatch($litera
39620 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 3d 20 24 6c 69 74 65 72 l).{.if.($this->watch1.==.$liter
39640 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 32 3b 0a 7d 20 65 6c al).{.return.$this->watch2;.}.el
39660 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 31 3b 0a 7d 0a 7d 0a 0a se.{.return.$this->watch1;.}.}..
39680 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 ......public.function.moveWatch(
396a0 24 66 72 6f 6d 2c 20 24 74 6f 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 $from,.$to).{.if.($this->watch1.
396c0 3d 3d 20 24 66 72 6f 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 24 74 6f 3b ==.$from).{.$this->watch1.=.$to;
396e0 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 24 74 6f 3b 0a 7d .}.else.{.$this->watch2.=.$to;.}
39700 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
39720 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a Composer\DependencyResolver;....
39740 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 65 .class.SolverProblemsException.e
39760 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 xtends.\RuntimeException.{.prote
39780 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 cted.$problems;.protected.$insta
397a0 6c 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 lledMap;..public.function.__cons
397c0 74 72 75 63 74 28 61 72 72 61 79 20 24 70 72 6f 62 6c 65 6d 73 2c 20 61 72 72 61 79 20 24 69 6e truct(array.$problems,.array.$in
397e0 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 3d 20 stalledMap).{.$this->problems.=.
39800 24 70 72 6f 62 6c 65 6d 73 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d $problems;.$this->installedMap.=
39820 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 .$installedMap;..parent::__const
39840 72 75 63 74 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a ruct($this->createMessage());.}.
39860 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 65 73 73 61 67 .protected.function.createMessag
39880 65 28 29 0a 7b 0a 24 74 65 78 74 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 e().{.$text.=."\n";.foreach.($th
398a0 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 61 73 20 24 69 20 3d 3e 20 24 70 72 6f 62 6c 65 6d 29 20 is->problems.as.$i.=>.$problem).
398c0 7b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 50 72 6f 62 6c 65 6d 20 22 2e 28 24 69 2b 31 29 2e 24 {.$text..=."..Problem.".($i+1).$
398e0 70 72 6f 62 6c 65 6d 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 74 68 69 73 2d 3e problem->getPrettyString($this->
39900 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f installedMap)."\n";.}..if.(strpo
39920 73 28 24 74 65 78 74 2c 20 27 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 27 29 20 7c s($text,.'could.not.be.found').|
39940 7c 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 |.strpos($text,.'no.matching.pac
39960 6b 61 67 65 20 66 6f 75 6e 64 27 29 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 5c 6e 50 6f 74 65 kage.found')).{.$text..=."\nPote
39980 6e 74 69 61 6c 20 63 61 75 73 65 73 3a 5c 6e 20 2d 20 41 20 74 79 70 6f 20 69 6e 20 74 68 65 20 ntial.causes:\n.-.A.typo.in.the.
399a0 70 61 63 6b 61 67 65 20 6e 61 6d 65 5c 6e 20 2d 20 54 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 package.name\n.-.The.package.is.
399c0 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 20 73 74 61 62 6c 65 2d 65 6e 6f 75 67 68 not.available.in.a.stable-enough
399e0 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 79 6f 75 72 20 6d 69 6e 69 6d .version.according.to.your.minim
39a00 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 73 65 74 74 69 6e 67 5c 6e 20 20 20 73 65 65 20 68 74 74 um-stability.setting\n...see.htt
39a20 70 73 3a 2f 2f 67 72 6f 75 70 73 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 64 2f 74 6f 70 69 63 2f 63 ps://groups.google.com/d/topic/c
39a40 6f 6d 70 6f 73 65 72 2d 64 65 76 2f 5f 67 33 41 53 65 49 46 6c 72 63 2f 64 69 73 63 75 73 73 69 omposer-dev/_g3ASeIFlrc/discussi
39a60 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 on.for.more.details.\n";.}..retu
39a80 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 rn.$text;.}..public.function.get
39aa0 50 72 6f 62 6c 65 6d 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 62 6c Problems().{.return.$this->probl
39ac0 65 6d 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ems;.}.}.<?php............namesp
39ae0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b ace.Composer\DependencyResolver;
39b00 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b ..use.Composer\Package\AliasPack
39b20 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f age;.use.Composer\DependencyReso
39b40 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 61 lver\Operation;.....class.Transa
39b60 63 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 ction.{.protected.$policy;.prote
39b80 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 cted.$pool;.protected.$installed
39ba0 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 65 Map;.protected.$decisions;.prote
39bc0 63 74 65 64 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 cted.$transaction;..public.funct
39be0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 ion.__construct($policy,.$pool,.
39c00 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 74 68 $installedMap,.$decisions).{.$th
39c20 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f is->policy.=.$policy;.$this->poo
39c40 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d l.=.$pool;.$this->installedMap.=
39c60 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 .$installedMap;.$this->decisions
39c80 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f .=.$decisions;.$this->transactio
39ca0 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 n.=.array();.}..public.function.
39cc0 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 getOperations().{.$installMeansU
39ce0 70 64 61 74 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 55 70 64 61 74 65 73 28 29 3b pdateMap.=.$this->findUpdates();
39d00 0a 0a 24 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c ..$updateMap.=.array();.$install
39d20 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 61 Map.=.array();.$uninstallMap.=.a
39d40 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f rray();..foreach.($this->decisio
39d60 6e 73 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 ns.as.$i.=>.$decision).{.$litera
39d80 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f l.=.$decision[Decisions::DECISIO
39da0 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b N_LITERAL];.$reason.=.$decision[
39dc0 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 0a 24 70 Decisions::DECISION_REASON];..$p
39de0 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 ackage.=.$this->pool->literalToP
39e00 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 0a 20 69 66 20 28 28 24 6c 69 74 65 72 ackage($literal);....if.(($liter
39e20 61 6c 20 3e 20 30 29 20 3d 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c al.>.0).==.(isset($this->install
39e40 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 29 20 7b 0a 63 6f edMap[$package->getId()]))).{.co
39e60 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 69 ntinue;.}..if.($literal.>.0).{.i
39e80 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b f.(isset($installMeansUpdateMap[
39ea0 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 20 26 26 20 21 24 70 61 63 6b 61 67 65 20 69 6e 73 abs($literal)]).&&.!$package.ins
39ec0 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 0a 24 73 6f 75 72 63 65 tanceof.AliasPackage).{..$source
39ee0 20 3d 20 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c .=.$installMeansUpdateMap[abs($l
39f00 69 74 65 72 61 6c 29 5d 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e iteral)];..$updateMap[$package->
39f20 67 65 74 49 64 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 getId()].=.array(.'package'.=>.$
39f40 70 61 63 6b 61 67 65 2c 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 73 6f 75 72 63 65 2c 0a 27 72 package,.'source'.=>.$source,.'r
39f60 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 0a 20 75 6e 73 65 74 28 24 eason'.=>.$reason,.);....unset($
39f80 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 installMeansUpdateMap[abs($liter
39fa0 61 6c 29 5d 29 3b 0a 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 73 6f 75 72 63 65 2d 3e 67 65 al)]);.$ignoreRemove[$source->ge
39fc0 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 73 74 61 6c 6c tId()].=.true;.}.else.{.$install
39fe0 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 61 72 72 61 79 28 0a Map[$package->getId()].=.array(.
3a000 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 72 65 61 73 6f 6e 27 20 'package'.=>.$package,.'reason'.
3a020 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 =>.$reason,.);.}.}.}..foreach.($
3a040 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 this->decisions.as.$i.=>.$decisi
3a060 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 on).{.$literal.=.$decision[Decis
3a080 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 24 70 61 63 6b 61 67 ions::DECISION_LITERAL];.$packag
3a0a0 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 e.=.$this->pool->literalToPackag
3a0c0 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 e($literal);..if.($literal.<=.0.
3a0e0 26 26 0a 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 &&.isset($this->installedMap[$pa
3a100 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 20 26 26 0a 21 69 73 73 65 74 28 24 69 67 6e 6f ckage->getId()]).&&.!isset($igno
3a120 72 65 52 65 6d 6f 76 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a reRemove[$package->getId()])).{.
3a140 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d $uninstallMap[$package->getId()]
3a160 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c .=.array(.'package'.=>.$package,
3a180 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 7d 0a 7d 0a 0a 24 .'reason'.=>.$reason,.);..}.}..$
3a1a0 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 28 24 69 6e 73 74 61 this->transactionFromMaps($insta
3a1c0 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 llMap,.$updateMap,.$uninstallMap
3a1e0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 7d );..return.$this->transaction;.}
3a200 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e ..protected.function.transaction
3a220 46 72 6f 6d 4d 61 70 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 FromMaps($installMap,.$updateMap
3a240 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 0a 7b 0a 24 71 75 65 75 65 20 3d 20 61 72 72 61 ,.$uninstallMap).{.$queue.=.arra
3a260 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 72 65 y_map(function.($operation).{.re
3a280 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 7d 2c 0a 24 turn.$operation['package'];.},.$
3a2a0 74 68 69 73 2d 3e 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e 73 74 61 6c 6c 4d this->findRootPackages($installM
3a2c0 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 29 3b 0a 0a 24 76 69 73 69 74 65 64 20 3d 20 61 ap,.$updateMap).);..$visited.=.a
3a2e0 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 rray();..while.(!empty($queue)).
3a300 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 29 3b 0a {.$package.=.array_pop($queue);.
3a320 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a $packageId.=.$package->getId();.
3a340 0a 69 66 20 28 21 69 73 73 65 74 28 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 49 64 5d .if.(!isset($visited[$packageId]
3a360 29 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 70 61 63 6b 61 67 65 )).{.array_push($queue,.$package
3a380 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 );..if.($package.instanceof.Alia
3a3a0 73 50 61 63 6b 61 67 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 sPackage).{.array_push($queue,.$
3a3c0 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b package->getAliasOf());.}.else.{
3a3e0 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 .foreach.($package->getRequires(
3a400 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 ).as.$link).{.$possibleRequires.
3a420 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e =.$this->pool->whatProvides($lin
3a440 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 k->getTarget(),.$link->getConstr
3a460 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 aint());..foreach.($possibleRequ
3a480 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 ires.as.$require).{.array_push($
3a4a0 71 75 65 75 65 2c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 76 69 73 69 74 65 queue,.$require);.}.}.}..$visite
3a4c0 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 d[$package->getId()].=.true;.}.e
3a4e0 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 lse.{.if.(isset($installMap[$pac
3a500 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 0a 24 69 6e 73 kageId])).{.$this->install(.$ins
3a520 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a tallMap[$packageId]['package'],.
3a540 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 $installMap[$packageId]['reason'
3a560 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 ].);.unset($installMap[$packageI
3a580 64 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 d]);.}.if.(isset($updateMap[$pac
3a5a0 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 28 0a 24 75 70 64 61 kageId])).{.$this->update(.$upda
3a5c0 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 73 6f 75 72 63 65 27 5d 2c 0a 24 75 70 teMap[$packageId]['source'],.$up
3a5e0 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a dateMap[$packageId]['package'],.
3a600 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d $updateMap[$packageId]['reason']
3a620 0a 29 3b 0a 75 6e 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d .);.unset($updateMap[$packageId]
3a640 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 );.}.}.}..foreach.($uninstallMap
3a660 20 61 73 20 24 75 6e 69 6e 73 74 61 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e 73 74 61 .as.$uninstall).{.$this->uninsta
3a680 6c 6c 28 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 75 6e 69 6e 73 ll($uninstall['package'],.$unins
3a6a0 74 61 6c 6c 5b 27 72 65 61 73 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 tall['reason']);.}.}..protected.
3a6c0 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e 73 74 61 function.findRootPackages($insta
3a6e0 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d llMap,.$updateMap).{.$packages.=
3a700 20 24 69 6e 73 74 61 6c 6c 4d 61 70 20 2b 20 24 75 70 64 61 74 65 4d 61 70 3b 0a 24 72 6f 6f 74 .$installMap.+.$updateMap;.$root
3a720 73 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 s.=.$packages;..foreach.($packag
3a740 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 es.as.$packageId.=>.$operation).
3a760 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 {.$package.=.$operation['package
3a780 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 6f 6f 74 73 5b 24 70 61 63 6b 61 67 65 49 '];..if.(!isset($roots[$packageI
3a7a0 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 d])).{.continue;.}..foreach.($pa
3a7c0 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b ckage->getRequires().as.$link).{
3a7e0 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c .$possibleRequires.=.$this->pool
3a800 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 ->whatProvides($link->getTarget(
3a820 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 ),.$link->getConstraint());..for
3a840 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 each.($possibleRequires.as.$requ
3a860 69 72 65 29 20 7b 0a 75 6e 73 65 74 28 24 72 6f 6f 74 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 ire).{.unset($roots[$require->ge
3a880 74 49 64 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 6f 6f 74 73 3b 0a 7d tId()]);.}.}.}..return.$roots;.}
3a8a0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 73 ..protected.function.findUpdates
3a8c0 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 20 3d 20 61 72 ().{.$installMeansUpdateMap.=.ar
3a8e0 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e ray();..foreach.($this->decision
3a900 73 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c s.as.$i.=>.$decision).{.$literal
3a920 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e .=.$decision[Decisions::DECISION
3a940 5f 4c 49 54 45 52 41 4c 5d 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f _LITERAL];.$package.=.$this->poo
3a960 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a l->literalToPackage($literal);..
3a980 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 if.($package.instanceof.AliasPac
3a9a0 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 69 74 65 kage).{.continue;.}....if.($lite
3a9c0 72 61 6c 20 3c 3d 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c ral.<=.0.&&.isset($this->install
3a9e0 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 75 70 edMap[$package->getId()])).{.$up
3aa00 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 66 69 6e 64 55 70 64 61 74 dates.=.$this->policy->findUpdat
3aa20 65 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e ePackages($this->pool,.$this->in
3aa40 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 6c 69 74 65 72 61 6c stalledMap,.$package);..$literal
3aa60 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 3b 0a 0a 66 s.=.array($package->getId());..f
3aa80 6f 72 65 61 63 68 20 28 24 75 70 64 61 74 65 73 20 61 73 20 24 75 70 64 61 74 65 29 20 7b 0a 24 oreach.($updates.as.$update).{.$
3aaa0 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 75 70 64 61 74 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d literals[].=.$update->getId();.}
3aac0 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 75 70 64 61 74 65 4c ..foreach.($literals.as.$updateL
3aae0 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 20 21 3d 3d iteral).{.if.($updateLiteral.!==
3ab00 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 .$literal).{.$installMeansUpdate
3ab20 4d 61 70 5b 61 62 73 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 29 5d 20 3d 20 24 70 61 63 6b Map[abs($updateLiteral)].=.$pack
3ab40 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 4d 65 61 age;.}.}.}.}..return.$installMea
3ab60 6e 73 55 70 64 61 74 65 4d 61 70 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 nsUpdateMap;.}..protected.functi
3ab80 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a on.install($package,.$reason).{.
3aba0 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 if.($package.instanceof.AliasPac
3abc0 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 6c 69 61 73 49 kage).{.return.$this->markAliasI
3abe0 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a nstalled($package,.$reason);.}..
3ac00 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 $this->transaction[].=.new.Opera
3ac20 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 tion\InstallOperation($package,.
3ac40 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 $reason);.}..protected.function.
3ac60 75 70 64 61 74 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 update($from,.$to,.$reason).{.$t
3ac80 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 his->transaction[].=.new.Operati
3aca0 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 on\UpdateOperation($from,.$to,.$
3acc0 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 reason);.}..protected.function.u
3ace0 6e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 ninstall($package,.$reason).{.if
3ad00 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 .($package.instanceof.AliasPacka
3ad20 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 6c 69 61 73 55 6e 69 ge).{.return.$this->markAliasUni
3ad40 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a nstalled($package,.$reason);.}..
3ad60 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 $this->transaction[].=.new.Opera
3ad80 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 tion\UninstallOperation($package
3ada0 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ,.$reason);.}..protected.functio
3adc0 6e 20 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 n.markAliasInstalled($package,.$
3ade0 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d reason).{.$this->transaction[].=
3ae00 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 .new.Operation\MarkAliasInstalle
3ae20 64 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d dOperation($package,.$reason);.}
3ae40 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 55 6e ..protected.function.markAliasUn
3ae60 69 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 installed($package,.$reason).{.$
3ae80 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 this->transaction[].=.new.Operat
3aea0 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f ion\MarkAliasUninstalledOperatio
3aec0 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a n($package,.$reason);.}.}.<?php.
3aee0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 ...........namespace.Composer\De
3af00 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 pendencyResolver\Operation;..use
3af20 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 .Composer\Package\PackageInterfa
3af40 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 ce;.......class.UninstallOperati
3af60 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f on.extends.SolverOperation.{.pro
3af80 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 tected.$package;........public.f
3afa0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 unction.__construct(PackageInter
3afc0 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b face.$package,.$reason.=.null).{
3afe0 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a .parent::__construct($reason);..
3b000 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a $this->package.=.$package;.}....
3b020 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a ...public.function.getPackage().
3b040 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a {.return.$this->package;.}......
3b060 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a .public.function.getJobType().{.
3b080 72 65 74 75 72 6e 20 27 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 return.'uninstall';.}.....public
3b0a0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.__toString().{.return.
3b0c0 27 55 6e 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 'Uninstalling.'.$this->package->
3b0e0 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d getPrettyName().'.('.$this->form
3b100 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d atVersion($this->package).')';.}
3b120 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
3b140 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 mposer\DependencyResolver\Operat
3b160 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 ion;..use.Composer\Package\Packa
3b180 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 4f geInterface;.......class.UpdateO
3b1a0 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e peration.extends.SolverOperation
3b1c0 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 70 72 .{.protected.$initialPackage;.pr
3b1e0 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a otected.$targetPackage;.........
3b200 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b public.function.__construct(Pack
3b220 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e ageInterface.$initial,.PackageIn
3b240 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 terface.$target,.$reason.=.null)
3b260 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b .{.parent::__construct($reason);
3b280 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 69 6e 69 74 69 ..$this->initialPackage.=.$initi
3b2a0 61 6c 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 20 3d 20 24 74 61 72 67 al;.$this->targetPackage.=.$targ
3b2c0 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 et;.}.......public.function.getI
3b2e0 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e nitialPackage().{.return.$this->
3b300 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 initialPackage;.}.......public.f
3b320 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 unction.getTargetPackage().{.ret
3b340 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a urn.$this->targetPackage;.}.....
3b360 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b ..public.function.getJobType().{
3b380 0a 72 65 74 75 72 6e 20 27 75 70 64 61 74 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .return.'update';.}.....public.f
3b3a0 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 55 unction.__toString().{.return.'U
3b3c0 70 64 61 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 2d pdating.'.$this->initialPackage-
3b3e0 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 >getPrettyName().'.('.$this->for
3b400 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 matVersion($this->initialPackage
3b420 29 2e 27 29 20 74 6f 20 27 2e 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 2d ).').to.'..$this->targetPackage-
3b440 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 20 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f >getPrettyName()..'.('.$this->fo
3b460 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 rmatVersion($this->targetPackage
3b480 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 ).')';.}.}.<?php............name
3b4a0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 space.Composer\DependencyResolve
3b4c0 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 r\Operation;..use.Composer\Packa
3b4e0 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 ge\AliasPackage;.......class.Mar
3b500 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 kAliasInstalledOperation.extends
3b520 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 .SolverOperation.{.protected.$pa
3b540 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ckage;........public.function.__
3b560 63 6f 6e 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 6b 61 67 65 2c construct(AliasPackage.$package,
3b580 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e .$reason.=.null).{.parent::__con
3b5a0 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 struct($reason);..$this->package
3b5c0 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .=.$package;.}.......public.func
3b5e0 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getPackage().{.return.$this
3b600 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->package;.}.......public.functi
3b620 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c on.getJobType().{.return.'markAl
3b640 69 61 73 49 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 iasInstalled';.}.....public.func
3b660 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 72 6b tion.__toString().{.return.'Mark
3b680 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e ing.'.$this->package->getPrettyN
3b6a0 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 ame().'.('.$this->formatVersion(
3b6c0 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 69 6e 73 74 61 6c 6c 65 64 2c $this->package).').as.installed,
3b6e0 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 .alias.of.'.$this->package->getA
3b700 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 liasOf()->getPrettyName().'.('.$
3b720 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 this->formatVersion($this->packa
3b740 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ge->getAliasOf()).')';.}.}.<?php
3b760 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
3b780 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 ependencyResolver\Operation;..us
3b7a0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 e.Composer\Package\PackageInterf
3b7c0 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f ace;.......class.InstallOperatio
3b7e0 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 n.extends.SolverOperation.{.prot
3b800 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ected.$package;........public.fu
3b820 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 nction.__construct(PackageInterf
3b840 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ace.$package,.$reason.=.null).{.
3b860 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 parent::__construct($reason);..$
3b880 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a this->package.=.$package;.}.....
3b8a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b ..public.function.getPackage().{
3b8c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .return.$this->package;.}.......
3b8e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 public.function.getJobType().{.r
3b900 65 74 75 72 6e 20 27 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 eturn.'install';.}.....public.fu
3b920 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 49 6e nction.__toString().{.return.'In
3b940 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 stalling.'.$this->package->getPr
3b960 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 ettyName().'.('.$this->formatVer
3b980 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f sion($this->package).')';.}.}.<?
3b9a0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
3b9c0 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a r\DependencyResolver\Operation;.
3b9e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 .use.Composer\Package\Version\Ve
3ba00 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 rsionParser;.use.Composer\Packag
3ba20 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 e\PackageInterface;.......abstra
3ba40 63 74 20 63 6c 61 73 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 ct.class.SolverOperation.impleme
3ba60 6e 74 73 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 nts.OperationInterface.{.protect
3ba80 65 64 20 24 72 65 61 73 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ed.$reason;.......public.functio
3baa0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a n.__construct($reason.=.null).{.
3bac0 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a $this->reason.=.$reason;.}......
3bae0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 .public.function.getReason().{.r
3bb00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 eturn.$this->reason;.}..protecte
3bb20 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 d.function.formatVersion(Package
3bb40 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 56 65 72 Interface.$package).{.return.Ver
3bb60 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 sionParser::formatVersion($packa
3bb80 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ge);.}.}.<?php............namesp
3bba0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c ace.Composer\DependencyResolver\
3bbc0 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 Operation;..use.Composer\Package
3bbe0 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 \AliasPackage;.......class.MarkA
3bc00 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 liasUninstalledOperation.extends
3bc20 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 .SolverOperation.{.protected.$pa
3bc40 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ckage;........public.function.__
3bc60 63 6f 6e 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 6b 61 67 65 2c construct(AliasPackage.$package,
3bc80 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e .$reason.=.null).{.parent::__con
3bca0 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 struct($reason);..$this->package
3bcc0 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .=.$package;.}.......public.func
3bce0 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getPackage().{.return.$this
3bd00 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->package;.}.......public.functi
3bd20 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c on.getJobType().{.return.'markAl
3bd40 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 iasUninstalled';.}.....public.fu
3bd60 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 nction.__toString().{.return.'Ma
3bd80 72 6b 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 rking.'.$this->package->getPrett
3bda0 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f yName().'.('.$this->formatVersio
3bdc0 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 75 6e 69 6e 73 74 61 6c n($this->package).').as.uninstal
3bde0 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e led,.alias.of.'.$this->package->
3be00 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 getAliasOf()->getPrettyName().'.
3be20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 ('.$this->formatVersion($this->p
3be40 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c ackage->getAliasOf()).')';.}.}.<
3be60 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
3be80 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b er\DependencyResolver\Operation;
3bea0 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 .......interface.OperationInterf
3bec0 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f ace.{......public.function.getJo
3bee0 62 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 bType();.......public.function.g
3bf00 65 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f etReason();.......public.functio
3bf20 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a n.__toString();.}.<?php.........
3bf40 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 ...namespace.Composer\Dependency
3bf60 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c Resolver;..use.Composer\Package\
3bf80 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 BasePackage;.use.Composer\Packag
3bfa0 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 e\LinkConstraint\LinkConstraintI
3bfc0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 nterface;.use.Composer\Repositor
3bfe0 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f y\RepositoryInterface;.use.Compo
3c000 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f ser\Repository\CompositeReposito
3c020 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 ry;.use.Composer\Repository\Inst
3c040 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f alledRepositoryInterface;.use.Co
3c060 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 mposer\Repository\PlatformReposi
3c080 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6f 6f 6c 0a 7b 0a 70 72 6f 74 65 63 tory;........class.Pool.{.protec
3c0a0 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f ted.$repositories.=.array();.pro
3c0c0 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 tected.$packages.=.array();.prot
3c0e0 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a ected.$packageByName.=.array();.
3c100 70 72 6f 74 65 63 74 65 64 20 24 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 protected.$acceptableStabilities
3c120 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 0a 70 75 ;.protected.$stabilityFlags;..pu
3c140 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 69 6e 69 6d blic.function.__construct($minim
3c160 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 61 72 72 61 79 20 24 73 umStability.=.'stable',.array.$s
3c180 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 74 61 62 tabilityFlags.=.array()).{.$stab
3c1a0 69 6c 69 74 69 65 73 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 ilities.=.BasePackage::$stabilit
3c1c0 69 65 73 3b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 ies;.$this->acceptableStabilitie
3c1e0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 s.=.array();.foreach.(BasePackag
3c200 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 20 61 73 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3e e::$stabilities.as.$stability.=>
3c220 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3c 3d 20 42 61 73 65 50 61 63 .$value).{.if.($value.<=.BasePac
3c240 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 kage::$stabilities[$minimumStabi
3c260 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c lity]).{.$this->acceptableStabil
3c280 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a ities[$stability].=.$value;.}.}.
3c2a0 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 $this->stabilityFlags.=.$stabili
3c2c0 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e tyFlags;.}.......public.function
3c2e0 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 .addRepository(RepositoryInterfa
3c300 63 65 20 24 72 65 70 6f 29 0a 7b 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 ce.$repo).{.if.($repo.instanceof
3c320 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 73 20 3d .CompositeRepository).{.$repos.=
3c340 20 24 72 65 70 6f 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 20 65 6c 73 .$repo->getRepositories();.}.els
3c360 65 20 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 0a 24 69 e.{.$repos.=.array($repo);.}..$i
3c380 64 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 2b 20 31 3b 0a d.=.count($this->packages).+.1;.
3c3a0 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 foreach.($repos.as.$repo).{.$thi
3c3c0 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 3b 0a 0a 24 65 78 65 s->repositories[].=.$repo;..$exe
3c3e0 6d 70 74 20 3d 20 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 mpt.=.$repo.instanceof.PlatformR
3c400 65 70 6f 73 69 74 6f 72 79 20 7c 7c 20 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e epository.||.$repo.instanceof.In
3c420 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 66 6f 72 65 stalledRepositoryInterface;.fore
3c440 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 ach.($repo->getPackages().as.$pa
3c460 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 ckage).{.$name.=.$package->getNa
3c480 6d 65 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 me();.$stability.=.$package->get
3c4a0 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 0a 0a 20 24 65 78 65 6d 70 74 0a 0a 20 7c 7c Stability();.if.(...$exempt...||
3c4c0 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 .(!isset($this->stabilityFlags[$
3c4e0 6e 61 6d 65 5d 29 0a 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c name]).&&.isset($this->acceptabl
3c500 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 29 29 0a 0a 20 7c 7c 20 eStabilities[$stability]))...||.
3c520 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 (isset($this->stabilityFlags[$na
3c540 6d 65 5d 29 0a 26 26 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 me]).&&.BasePackage::$stabilitie
3c560 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3c 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 s[$stability].<=.$this->stabilit
3c580 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 0a 29 0a 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 yFlags[$name].).).{.$package->se
3c5a0 74 49 64 28 24 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 tId($id++);.$this->packages[].=.
3c5c0 24 70 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 $package;..foreach.($package->ge
3c5e0 74 4e 61 6d 65 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b tNames().as.$name).{.$this->pack
3c600 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d ageByName[$name][].=.$package;.}
3c620 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 .}.}.}.}..public.function.getPri
3c640 6f 72 69 74 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 29 ority(RepositoryInterface.$repo)
3c660 0a 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 72 65 70 .{.$priority.=.array_search($rep
3c680 6f 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 0a o,.$this->repositories,.true);..
3c6a0 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 74 68 72 6f 77 if.(false.===.$priority).{.throw
3c6c0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f .new.\RuntimeException("Could.no
3c6e0 74 20 64 65 74 65 72 6d 69 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 20 70 72 69 6f 72 69 74 79 2e t.determine.repository.priority.
3c700 20 54 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 61 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 .The.repository.was.not.register
3c720 65 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 2d 24 70 ed.in.the.pool.");.}..return.-$p
3c740 72 69 6f 72 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f riority;.}........public.functio
3c760 6e 20 70 61 63 6b 61 67 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 n.packageById($id).{.return.$thi
3c780 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 s->packages[$id.-.1];.}.......pu
3c7a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 61 78 49 64 28 29 0a 7b 0a 72 65 74 75 72 blic.function.getMaxId().{.retur
3c7c0 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a n.count($this->packages);.}.....
3c7e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 65 .....public.function.whatProvide
3c800 73 28 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 s($name,.LinkConstraintInterface
3c820 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 .$constraint.=.null).{.if.(!isse
3c840 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 t($this->packageByName[$name])).
3c860 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 63 61 6e 64 69 64 61 74 65 73 {.return.array();.}..$candidates
3c880 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 3b 0a .=.$this->packageByName[$name];.
3c8a0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 72 65 74 .if.(null.===.$constraint).{.ret
3c8c0 75 72 6e 20 24 63 61 6e 64 69 64 61 74 65 73 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 urn.$candidates;.}..$matches.=.$
3c8e0 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d 65 4d provideMatches.=.array();.$nameM
3c900 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 atch.=.false;..foreach.($candida
3c920 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 63 61 tes.as.$candidate).{.switch.($ca
3c940 6e 64 69 64 61 74 65 2d 3e 6d 61 74 63 68 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 ndidate->matches($name,.$constra
3c960 69 6e 74 29 29 20 7b 0a 63 61 73 65 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 4d 41 54 43 48 5f int)).{.case.BasePackage::MATCH_
3c980 4e 4f 4e 45 3a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a NONE:.break;..case.BasePackage::
3c9a0 4d 41 54 43 48 5f 4e 41 4d 45 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 62 MATCH_NAME:.$nameMatch.=.true;.b
3c9c0 72 65 61 6b 3b 0a 0a 63 61 73 65 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 4d 41 54 43 48 3a 0a reak;..case.BasePackage::MATCH:.
3c9e0 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 $nameMatch.=.true;.$matches[].=.
3ca00 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 42 61 73 65 50 61 63 $candidate;.break;..case.BasePac
3ca20 6b 61 67 65 3a 3a 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 3a 0a 24 70 72 6f 76 69 64 65 4d 61 74 kage::MATCH_PROVIDE:.$provideMat
3ca40 63 68 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 ches[].=.$candidate;.break;..cas
3ca60 65 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3a 0a 24 6d e.BasePackage::MATCH_REPLACE:.$m
3ca80 61 74 63 68 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 64 atches[].=.$candidate;.break;..d
3caa0 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c efault:.throw.new.\UnexpectedVal
3cac0 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 64 20 6d 61 74 63 68 20 74 79 ueException('Unexpected.match.ty
3cae0 70 65 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e 61 6d 65 4d 61 74 63 68 29 20 7b 0a 72 pe');.}.}....if.($nameMatch).{.r
3cb00 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f eturn.$matches;.}..return.array_
3cb20 6d 65 72 67 65 28 24 6d 61 74 63 68 65 73 2c 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 29 merge($matches,.$provideMatches)
3cb40 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 61 ;.}..public.function.literalToPa
3cb60 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 ckage($literal).{.$packageId.=.a
3cb80 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 bs($literal);..return.$this->pac
3cba0 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 kageById($packageId);.}..public.
3cbc0 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 function.literalToString($litera
3cbe0 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 2b 27 20 l).{.return.($literal.>.0.?.'+'.
3cc00 3a 20 27 2d 27 29 20 2e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 :.'-')...$this->literalToPackage
3cc20 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c ($literal);.}..public.function.l
3cc40 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 iteralToPrettyString($literal,.$
3cc60 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 installedMap).{.$package.=.$this
3cc80 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 ->literalToPackage($literal);..i
3cca0 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d f.(isset($installedMap[$package-
3ccc0 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 >getId()])).{.$prefix.=.($litera
3cce0 6c 20 3e 20 30 20 3f 20 27 6b 65 65 70 27 20 3a 20 27 72 65 6d 6f 76 65 27 29 3b 0a 7d 20 65 6c l.>.0.?.'keep'.:.'remove');.}.el
3cd00 73 65 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 se.{.$prefix.=.($literal.>.0.?.'
3cd20 69 6e 73 74 61 6c 6c 27 20 3a 20 27 64 6f 6e 5c 27 74 20 69 6e 73 74 61 6c 6c 27 29 3b 0a 7d 0a install'.:.'don\'t.install');.}.
3cd40 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 27 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 .return.$prefix.'.'.$package->ge
3cd60 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a tPrettyString();.}.}.<?php......
3cd80 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 ......namespace.Composer\Depende
3cda0 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 0a 7b 0a 63 6f ncyResolver;.....class.Rule.{.co
3cdc0 6e 73 74 20 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 45 20 3d nst.RULE_INTERNAL_ALLOW_UPDATE.=
3cde0 20 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 20 3d 20 32 3b 0a .1;.const.RULE_JOB_INSTALL.=.2;.
3ce00 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 const.RULE_JOB_REMOVE.=.3;.const
3ce20 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 20 3d 20 36 3b 0a 63 6f 6e 73 .RULE_PACKAGE_CONFLICT.=.6;.cons
3ce40 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 20 3d 20 37 3b 0a 63 6f 6e t.RULE_PACKAGE_REQUIRES.=.7;.con
3ce60 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 38 3b 0a 63 st.RULE_PACKAGE_OBSOLETES.=.8;.c
3ce80 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f onst.RULE_INSTALLED_PACKAGE_OBSO
3cea0 4c 45 54 45 53 20 3d 20 39 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 LETES.=.9;.const.RULE_PACKAGE_SA
3cec0 4d 45 5f 4e 41 4d 45 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 ME_NAME.=.10;.const.RULE_PACKAGE
3cee0 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 31 31 3b 0a 63 6f 6e 73 74 20 _IMPLICIT_OBSOLETES.=.11;.const.
3cf00 52 55 4c 45 5f 4c 45 41 52 4e 45 44 20 3d 20 31 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 RULE_LEARNED.=.12;.const.RULE_PA
3cf20 43 4b 41 47 45 5f 41 4c 49 41 53 20 3d 20 31 33 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f CKAGE_ALIAS.=.13;..protected.$po
3cf40 6f 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 61 62 6c 65 64 3b 0a 70 72 6f 74 65 63 ol;..protected.$disabled;.protec
3cf60 74 65 64 20 24 6c 69 74 65 72 61 6c 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a ted.$literals;.protected.$type;.
3cf80 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 3b 0a protected.$id;..protected.$job;.
3cfa0 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 48 61 73 68 3b 0a 0a 70 75 62 6c 69 63 20 66 75 .protected.$ruleHash;..public.fu
3cfc0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 nction.__construct(Pool.$pool,.a
3cfe0 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e rray.$literals,.$reason,.$reason
3d000 44 61 74 61 2c 20 24 6a 6f 62 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c Data,.$job.=.null).{.$this->pool
3d020 20 3d 20 24 70 6f 6f 6c 3b 0a 0a 0a 20 73 6f 72 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 .=.$pool;....sort($literals);..$
3d040 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 3d 20 24 6c 69 74 65 72 61 6c 73 3b 0a 24 74 68 69 this->literals.=.$literals;.$thi
3d060 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 s->reason.=.$reason;.$this->reas
3d080 6f 6e 44 61 74 61 20 3d 20 24 72 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 24 74 68 69 73 2d 3e 64 69 onData.=.$reasonData;..$this->di
3d0a0 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 20 3d 20 24 6a sabled.=.false;..$this->job.=.$j
3d0c0 6f 62 3b 0a 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 2d 31 3b 0a 0a 24 74 68 69 73 2d 3e 72 ob;..$this->type.=.-1;..$this->r
3d0e0 75 6c 65 48 61 73 68 20 3d 20 73 75 62 73 74 72 28 6d 64 35 28 69 6d 70 6c 6f 64 65 28 27 2c 27 uleHash.=.substr(md5(implode(','
3d100 2c 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 29 2c 20 30 2c 20 35 29 3b 0a 7d 0a 0a 70 ,.$this->literals)),.0,.5);.}..p
3d120 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 61 73 68 28 29 0a 7b 0a 72 65 74 75 72 ublic.function.getHash().{.retur
3d140 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e n.$this->ruleHash;.}..public.fun
3d160 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 24 ction.setId($id).{.$this->id.=.$
3d180 69 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 28 29 0a 7b id;.}..public.function.getId().{
3d1a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e .return.$this->id;.}..public.fun
3d1c0 63 74 69 6f 6e 20 67 65 74 4a 6f 62 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a ction.getJob().{.return.$this->j
3d1e0 6f 62 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 ob;.}..........public.function.e
3d200 71 75 61 6c 73 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 quals(Rule.$rule).{.if.($this->r
3d220 75 6c 65 48 61 73 68 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 72 75 6c 65 48 61 73 68 29 20 7b 0a 72 uleHash.!==.$rule->ruleHash).{.r
3d240 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d eturn.false;.}..if.(count($this-
3d260 3e 6c 69 74 65 72 61 6c 73 29 20 21 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 >literals).!=.count($rule->liter
3d280 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 als)).{.return.false;.}..for.($i
3d2a0 20 3d 20 30 2c 20 24 6e 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 .=.0,.$n.=.count($this->literals
3d2c0 29 3b 20 24 69 20 3c 20 24 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c );.$i.<.$n;.$i++).{.if.($this->l
3d2e0 69 74 65 72 61 6c 73 5b 24 69 5d 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 5b iterals[$i].!==.$rule->literals[
3d300 24 69 5d 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e $i]).{.return.false;.}.}..return
3d320 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 .true;.}..public.function.setTyp
3d340 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a e($type).{.$this->type.=.$type;.
3d360 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 }..public.function.getType().{.r
3d380 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e eturn.$this->type;.}..public.fun
3d3a0 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 ction.disable().{.$this->disable
3d3c0 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 d.=.true;.}..public.function.ena
3d3e0 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b ble().{.$this->disabled.=.false;
3d400 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 73 61 62 6c 65 64 28 29 .}..public.function.isDisabled()
3d420 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 70 75 .{.return.$this->disabled;.}..pu
3d440 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 blic.function.isEnabled().{.retu
3d460 72 6e 20 21 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 rn.!$this->disabled;.}..public.f
3d480 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 74 65 72 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 unction.getLiterals().{.return.$
3d4a0 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 this->literals;.}..public.functi
3d4c0 6f 6e 20 69 73 41 73 73 65 72 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 31 20 3d 3d 3d 20 on.isAssertion().{.return.1.===.
3d4e0 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 count($this->literals);.}..publi
3d500 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 61 72 72 61 79 c.function.getPrettyString(array
3d520 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 72 75 6c .$installedMap.=.array()).{.$rul
3d540 65 54 65 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 eText.=.'';.foreach.($this->lite
3d560 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 rals.as.$i.=>.$literal).{.if.($i
3d580 20 21 3d 20 30 29 20 7b 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 75 .!=.0).{.$ruleText..=.'|';.}.$ru
3d5a0 6c 65 54 65 78 74 20 2e 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f leText..=.$this->pool->literalTo
3d5c0 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 PrettyString($literal,.$installe
3d5e0 64 4d 61 70 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 29 dMap);.}..switch.($this->reason)
3d600 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f .{.case.self::RULE_INTERNAL_ALLO
3d620 57 5f 55 50 44 41 54 45 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 0a 63 61 73 W_UPDATE:.return.$ruleText;..cas
3d640 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 72 65 74 75 72 6e e.self::RULE_JOB_INSTALL:.return
3d660 20 22 49 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 ."Install.command.rule.($ruleTex
3d680 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 t)";..case.self::RULE_JOB_REMOVE
3d6a0 3a 0a 72 65 74 75 72 6e 20 22 52 65 6d 6f 76 65 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 :.return."Remove.command.rule.($
3d6c0 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 ruleText)";..case.self::RULE_PAC
3d6e0 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 3a 0a 24 70 61 63 6b 61 67 65 31 20 3d 20 24 74 68 69 73 KAGE_CONFLICT:.$package1.=.$this
3d700 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e ->pool->literalToPackage($this->
3d720 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 70 61 63 6b 61 67 65 32 20 3d 20 24 74 68 69 73 2d literals[0]);.$package2.=.$this-
3d740 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c >pool->literalToPackage($this->l
3d760 69 74 65 72 61 6c 73 5b 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 31 2d 3e iterals[1]);..return.$package1->
3d780 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 getPrettyString().'.conflicts.wi
3d7a0 74 68 20 27 2e 24 70 61 63 6b 61 67 65 32 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 th.'.$package2->getPrettyString(
3d7c0 29 2e 27 2e 27 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f ).'.';..case.self::RULE_PACKAGE_
3d7e0 52 45 51 55 49 52 45 53 3a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 74 REQUIRES:.$literals.=.$this->lit
3d800 65 72 61 6c 73 3b 0a 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 20 3d 20 61 72 72 61 79 5f 73 68 erals;.$sourceLiteral.=.array_sh
3d820 69 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 20 3d ift($literals);.$sourcePackage.=
3d840 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 .$this->pool->literalToPackage($
3d860 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 29 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 sourceLiteral);..$requires.=.arr
3d880 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 ay();.foreach.($literals.as.$lit
3d8a0 65 72 61 6c 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f eral).{.$requires[].=.$this->poo
3d8c0 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d l->literalToPackage($literal);.}
3d8e0 0a 0a 24 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 ..$text.=.$this->reasonData->get
3d900 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 29 3b 0a 69 66 PrettyString($sourcePackage);.if
3d920 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 72 65 71 75 69 72 65 54 65 78 74 20 3d 20 61 72 .($requires).{.$requireText.=.ar
3d940 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 ray();.foreach.($requires.as.$re
3d960 71 75 69 72 65 29 20 7b 0a 24 72 65 71 75 69 72 65 54 65 78 74 5b 5d 20 3d 20 24 72 65 71 75 69 quire).{.$requireText[].=.$requi
3d980 72 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 24 74 65 78 74 20 2e re->getPrettyString();.}.$text..
3d9a0 3d 20 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 27 2e 69 6d 70 6c 6f 64 65 28 =.'.->.satisfiable.by.'.implode(
3d9c0 27 2c 20 27 2c 20 24 72 65 71 75 69 72 65 54 65 78 74 29 2e 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 ',.',.$requireText).'.';.}.else.
3d9e0 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b {.$text..=.'.->.no.matching.pack
3da00 61 67 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 0a 63 age.found.';.}..return.$text;..c
3da20 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 ase.self::RULE_PACKAGE_OBSOLETES
3da40 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 :.return.$ruleText;.case.self::R
3da60 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a ULE_INSTALLED_PACKAGE_OBSOLETES:
3da80 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 .return.$ruleText;.case.self::RU
3daa0 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 3a 0a 24 74 65 78 74 20 3d 20 22 43 LE_PACKAGE_SAME_NAME:.$text.=."C
3dac0 61 6e 20 6f 6e 6c 79 20 69 6e 73 74 61 6c 6c 20 6f 6e 65 20 6f 66 3a 20 22 3b 0a 0a 24 70 61 63 an.only.install.one.of:.";..$pac
3dae0 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d kages.=.array();.foreach.($this-
3db00 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 >literals.as.$i.=>.$literal).{.$
3db20 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 packages[].=.$this->pool->litera
3db40 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 2d 3e 67 65 74 50 72 65 74 74 79 53 lToPackage($literal)->getPrettyS
3db60 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 2e 69 6d 70 6c 6f 64 65 tring();.}..return.$text.implode
3db80 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 73 29 2e 27 2e 27 3b 0a 63 61 73 65 20 73 65 6c 66 (',.',.$packages).'.';.case.self
3dba0 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 ::RULE_PACKAGE_IMPLICIT_OBSOLETE
3dbc0 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a S:.return.$ruleText;.case.self::
3dbe0 52 55 4c 45 5f 4c 45 41 52 4e 45 44 3a 0a 72 65 74 75 72 6e 20 27 43 6f 6e 63 6c 75 73 69 6f 6e RULE_LEARNED:.return.'Conclusion
3dc00 3a 20 27 2e 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 :.'.$ruleText;.case.self::RULE_P
3dc20 41 43 4b 41 47 45 5f 41 4c 49 41 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a ACKAGE_ALIAS:.return.$ruleText;.
3dc40 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 }.}.......public.function.__toSt
3dc60 72 69 6e 67 28 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 28 24 74 68 69 73 2d 3e 69 73 44 69 73 ring().{.$result.=.($this->isDis
3dc80 61 62 6c 65 64 28 29 29 20 3f 20 27 64 69 73 61 62 6c 65 64 28 27 20 3a 20 27 28 27 3b 0a 0a 66 abled()).?.'disabled('.:.'(';..f
3dca0 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e oreach.($this->literals.as.$i.=>
3dcc0 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 20 30 29 20 7b 0a 24 72 65 73 .$literal).{.if.($i.!=.0).{.$res
3dce0 75 6c 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 74 68 69 73 2d 3e ult..=.'|';.}.$result..=.$this->
3dd00 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 3b pool->literalToString($literal);
3dd20 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 29 27 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 .}..$result..=.')';..return.$res
3dd40 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ult;.}.}.<?php............namesp
3dd60 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b ace.Composer\DependencyResolver;
3dd80 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e ..use.Composer\Package\PackageIn
3dda0 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c terface;.use.Composer\Package\Al
3ddc0 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 65 74 47 65 6e iasPackage;.....class.RuleSetGen
3dde0 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 erator.{.protected.$policy;.prot
3de00 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 ected.$pool;.protected.$rules;.p
3de20 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 rotected.$jobs;.protected.$insta
3de40 6c 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 lledMap;..public.function.__cons
3de60 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 truct(PolicyInterface.$policy,.P
3de80 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f ool.$pool).{.$this->policy.=.$po
3dea0 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a licy;.$this->pool.=.$pool;.}....
3dec0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 ............protected.function.c
3dee0 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 reateRequireRule(PackageInterfac
3df00 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 72 73 2c 20 24 72 e.$package,.array.$providers,.$r
3df20 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6c 69 eason,.$reasonData.=.null).{.$li
3df40 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 terals.=.array(-$package->getId(
3df60 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f ));..foreach.($providers.as.$pro
3df80 76 69 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 vider).{...if.($provider.===.$pa
3dfa0 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 24 6c 69 74 65 72 61 6c ckage).{.return.null;.}.$literal
3dfc0 73 5b 5d 20 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 72 65 74 s[].=.$provider->getId();.}..ret
3dfe0 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 urn.new.Rule($this->pool,.$liter
3e000 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a als,.$reason,.$reasonData);.}...
3e020 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 ...........protected.function.cr
3e040 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c 65 28 61 72 72 61 79 20 24 70 61 63 6b eateInstallOneOfRule(array.$pack
3e060 61 67 65 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 ages,.$reason,.$job).{.$literals
3e080 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 .=.array();.foreach.($packages.a
3e0a0 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 61 63 s.$package).{.$literals[].=.$pac
3e0c0 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c kage->getId();.}..return.new.Rul
3e0e0 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f e($this->pool,.$literals,.$reaso
3e100 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d n,.$job['packageName'],.$job);.}
3e120 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .............protected.function.
3e140 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 createRemoveRule(PackageInterfac
3e160 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 29 0a 7b 0a 72 65 74 e.$package,.$reason,.$job).{.ret
3e180 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 28 urn.new.Rule($this->pool,.array(
3e1a0 2d 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a -$package->getId()),.$reason,.$j
3e1c0 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a ob['packageName'],.$job);.}.....
3e1e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 ...........protected.function.cr
3e200 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 eateConflictRule(PackageInterfac
3e220 65 20 24 69 73 73 75 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f e.$issuer,.PackageInterface.$pro
3e240 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 vider,.$reason,.$reasonData.=.nu
3e260 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 69 73 73 75 65 72 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 ll).{...if.($issuer.===.$provide
3e280 72 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 r).{.return.null;.}..return.new.
3e2a0 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 28 2d 24 69 73 73 75 65 72 Rule($this->pool,.array(-$issuer
3e2c0 2d 3e 67 65 74 49 64 28 29 2c 20 2d 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 49 64 28 29 29 2c ->getId(),.-$provider->getId()),
3e2e0 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .$reason,.$reasonData);.}.......
3e300 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 24 74 79 ....private.function.addRule($ty
3e320 70 65 2c 20 52 75 6c 65 20 24 6e 65 77 52 75 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 pe,.Rule.$newRule.=.null).{.if.(
3e340 21 24 6e 65 77 52 75 6c 65 20 7c 7c 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 63 6f 6e 74 61 !$newRule.||.$this->rules->conta
3e360 69 6e 73 45 71 75 61 6c 28 24 6e 65 77 52 75 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a insEqual($newRule)).{.return;.}.
3e380 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 24 74 79 .$this->rules->add($newRule,.$ty
3e3a0 70 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 pe);.}..protected.function.addRu
3e3c0 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 lesForPackage(PackageInterface.$
3e3e0 70 61 63 6b 61 67 65 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c package).{.$workQueue.=.new.\Spl
3e400 51 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 61 63 6b Queue;.$workQueue->enqueue($pack
3e420 61 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e 69 73 45 6d 70 age);..while.(!$workQueue->isEmp
3e440 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 75 65 2d 3e 64 ty()).{.$package.=.$workQueue->d
3e460 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 64 64 65 64 equeue();.if.(isset($this->added
3e480 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 Map[$package->getId()])).{.conti
3e4a0 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 nue;.}..$this->addedMap[$package
3e4c0 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 ->getId()].=.true;..foreach.($pa
3e4e0 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b ckage->getRequires().as.$link).{
3e500 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c .$possibleRequires.=.$this->pool
3e520 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 ->whatProvides($link->getTarget(
3e540 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 24 74 68 ),.$link->getConstraint());..$th
3e560 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 is->addRule(RuleSet::TYPE_PACKAG
3e580 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 52 E,.$rule.=.$this->createRequireR
3e5a0 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 2c ule($package,.$possibleRequires,
3e5c0 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 2c 20 24 6c .Rule::RULE_PACKAGE_REQUIRES,.$l
3e5e0 69 6e 6b 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 ink));..foreach.($possibleRequir
3e600 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e es.as.$require).{.$workQueue->en
3e620 71 75 65 75 65 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 queue($require);.}.}..foreach.($
3e640 70 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 20 61 73 20 24 6c 69 6e 6b package->getConflicts().as.$link
3e660 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 73 20 3d 20 24 74 68 69 73 2d 3e ).{.$possibleConflicts.=.$this->
3e680 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 pool->whatProvides($link->getTar
3e6a0 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a get(),.$link->getConstraint());.
3e6c0 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 73 20 61 73 20 .foreach.($possibleConflicts.as.
3e6e0 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 $conflict).{.$this->addRule(Rule
3e700 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 Set::TYPE_PACKAGE,.$this->create
3e720 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 66 6c 69 63 74 ConflictRule($package,.$conflict
3e740 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 2c 20 24 ,.Rule::RULE_PACKAGE_CONFLICT,.$
3e760 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 69 73 49 6e 73 74 61 6c 6c 65 64 20 3d 20 28 69 link));.}.}....$isInstalled.=.(i
3e780 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 sset($this->installedMap[$packag
3e7a0 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 e->getId()]));..foreach.($packag
3e7c0 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f 62 e->getReplaces().as.$link).{.$ob
3e7e0 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 soleteProviders.=.$this->pool->w
3e800 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 hatProvides($link->getTarget(),.
3e820 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 $link->getConstraint());..foreac
3e840 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 h.($obsoleteProviders.as.$provid
3e860 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 er).{.if.($provider.===.$package
3e880 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 ).{.continue;.}..if.(!$this->obs
3e8a0 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 oleteImpossibleForAlias($package
3e8c0 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 69 73 49 6e ,.$provider)).{.$reason.=.($isIn
3e8e0 73 74 61 6c 6c 65 64 29 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f stalled).?.Rule::RULE_INSTALLED_
3e900 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 PACKAGE_OBSOLETES.:.Rule::RULE_P
3e920 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 ACKAGE_OBSOLETES;.$this->addRule
3e940 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 (RuleSet::TYPE_PACKAGE,.$this->c
3e960 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f reateConflictRule($package,.$pro
3e980 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a vider,.$reason,.$link));.}.}.}..
3e9a0 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c $obsoleteProviders.=.$this->pool
3e9c0 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 ->whatProvides($package->getName
3e9e0 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 (),.null);..foreach.($obsoletePr
3ea00 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f oviders.as.$provider).{.if.($pro
3ea20 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a vider.===.$package).{.continue;.
3ea40 7d 0a 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 }..if.(($package.instanceof.Alia
3ea60 73 50 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f sPackage).&&.$package->getAliasO
3ea80 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 f().===.$provider).{.$this->addR
3eaa0 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 ule(RuleSet::TYPE_PACKAGE,.$rule
3eac0 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 63 .=.$this->createRequireRule($pac
3eae0 6b 61 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f 76 69 64 65 72 29 2c 20 52 75 6c 65 3a 3a 52 55 kage,.array($provider),.Rule::RU
3eb00 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 LE_PACKAGE_ALIAS,.$package));.}.
3eb20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 elseif.(!$this->obsoleteImpossib
3eb40 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 29 leForAlias($package,.$provider))
3eb60 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 .{.$reason.=.($package->getName(
3eb80 29 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3f 20 52 75 6c ).==.$provider->getName()).?.Rul
3eba0 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 3a 20 52 75 6c 65 e::RULE_PACKAGE_SAME_NAME.:.Rule
3ebc0 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 ::RULE_PACKAGE_IMPLICIT_OBSOLETE
3ebe0 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f S;.$this->addRule(RuleSet::TYPE_
3ec00 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 6f PACKAGE,.$rule.=.$this->createCo
3ec20 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 nflictRule($package,.$provider,.
3ec40 24 72 65 61 73 6f 6e 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 $reason,.$package));.}.}.}.}..pr
3ec60 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 otected.function.obsoleteImpossi
3ec80 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 bleForAlias($package,.$provider)
3eca0 0a 7b 0a 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 20 69 6e .{.$packageIsAlias.=.$package.in
3ecc0 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 24 70 72 6f 76 69 64 65 72 stanceof.AliasPackage;.$provider
3ece0 49 73 41 6c 69 61 73 20 3d 20 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 IsAlias.=.$provider.instanceof.A
3ed00 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 24 69 6d 70 6f 73 73 69 62 6c 65 20 3d 20 28 0a 28 24 liasPackage;..$impossible.=.(.($
3ed20 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 packageIsAlias.&&.$package->getA
3ed40 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7c 7c 0a 28 24 70 72 6f liasOf().===.$provider).||.($pro
3ed60 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c viderIsAlias.&&.$provider->getAl
3ed80 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7c 7c 0a 28 24 70 61 63 6b 61 iasOf().===.$package).||.($packa
3eda0 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 geIsAlias.&&.$providerIsAlias.&&
3edc0 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 .$provider->getAliasOf().===.$pa
3ede0 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 ckage->getAliasOf()).);..return.
3ee00 24 69 6d 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 $impossible;.}.........private.f
3ee20 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 55 70 64 61 74 65 50 61 63 6b 61 67 65 unction.addRulesForUpdatePackage
3ee40 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 s(PackageInterface.$package).{.$
3ee60 75 70 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 66 69 6e 64 55 70 64 updates.=.$this->policy->findUpd
3ee80 61 74 65 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e atePackages($this->pool,.$this->
3eea0 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 66 6f 72 65 61 63 installedMap,.$package);..foreac
3eec0 68 20 28 24 75 70 64 61 74 65 73 20 61 73 20 24 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d h.($updates.as.$update).{.$this-
3eee0 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 75 70 64 61 74 65 29 3b 0a 7d 0a >addRulesForPackage($update);.}.
3ef00 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f }..protected.function.addRulesFo
3ef20 72 4a 6f 62 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 rJobs().{.foreach.($this->jobs.a
3ef40 73 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b s.$job).{.switch.($job['cmd']).{
3ef60 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 .case.'install':.if.($job['packa
3ef80 67 65 73 27 5d 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 ges']).{.foreach.($job['packages
3efa0 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 '].as.$package).{.if.(!isset($th
3efc0 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 is->installedMap[$package->getId
3efe0 28 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 ()])).{.$this->addRulesForPackag
3f000 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d e($package);.}.}..$rule.=.$this-
3f020 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c 65 28 24 6a 6f 62 5b 27 70 61 >createInstallOneOfRule($job['pa
3f040 63 6b 61 67 65 73 27 5d 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c ckages'],.Rule::RULE_JOB_INSTALL
3f060 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a ,.$job);.$this->addRule(RuleSet:
3f080 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 :TYPE_JOB,.$rule);.}.break;.case
3f0a0 20 27 72 65 6d 6f 76 65 27 3a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 .'remove':.....foreach.($job['pa
3f0c0 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 ckages'].as.$package).{.$rule.=.
3f0e0 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 $this->createRemoveRule($package
3f100 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 2c 20 24 6a 6f 62 29 3b 0a ,.Rule::RULE_JOB_REMOVE,.$job);.
3f120 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 $this->addRule(RuleSet::TYPE_JOB
3f140 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 ,.$rule);.}.break;.}.}.}..public
3f160 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 73 46 6f 72 28 24 6a 6f 62 73 2c 20 24 69 6e .function.getRulesFor($jobs,.$in
3f180 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 24 6a 6f 62 stalledMap).{.$this->jobs.=.$job
3f1a0 73 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 74 3b 0a 24 s;.$this->rules.=.new.RuleSet;.$
3f1c0 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d this->installedMap.=.$installedM
3f1e0 61 70 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 ap;..foreach.($this->installedMa
3f200 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 p.as.$package).{.$this->addRules
3f220 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 ForPackage($package);.$this->add
3f240 52 75 6c 65 73 46 6f 72 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 29 RulesForUpdatePackages($package)
3f260 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 29 3b 0a 0a ;.}..$this->addRulesForJobs();..
3f280 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a return.$this->rules;.}.}.<?php..
3f2a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ..........namespace.Composer\Dep
3f2c0 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 62 75 67 endencyResolver;.....class.Debug
3f2e0 53 6f 6c 76 65 72 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 Solver.extends.Solver.{.protecte
3f300 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 4d 61 70 28 29 0a 7b 0a d.function.printDecisionMap().{.
3f320 65 63 68 6f 20 22 5c 6e 44 65 63 69 73 69 6f 6e 4d 61 70 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 echo."\nDecisionMap:.\n";.foreac
3f340 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 h.($this->decisionMap.as.$packag
3f360 65 49 64 20 3d 3e 20 24 6c 65 76 65 6c 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 eId.=>.$level).{.if.($packageId.
3f380 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 ===.0).{.continue;.}.if.($level.
3f3a0 3e 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2b 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f >.0).{.echo.'....+'...$this->poo
3f3c0 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b l->packageById($packageId)."\n";
3f3e0 0a 7d 20 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 .}.elseif.($level.<.0).{.echo.'.
3f400 20 20 20 2d 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 ...-'...$this->pool->packageById
3f420 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 65 63 68 6f ($packageId)."\n";.}.else.{.echo
3f440 20 27 20 20 20 20 3f 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 .'....?'...$this->pool->packageB
3f460 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 0a 7d 0a 65 63 68 6f 20 22 yId($packageId)."\n";.}.}.echo."
3f480 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 \n";.}..protected.function.print
3f4a0 44 65 63 69 73 69 6f 6e 51 75 65 75 65 28 29 0a 7b 0a 65 63 68 6f 20 22 44 65 63 69 73 69 6f 6e DecisionQueue().{.echo."Decision
3f4c0 51 75 65 75 65 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 Queue:.\n";.foreach.($this->deci
3f4e0 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 65 sionQueue.as.$i.=>.$literal).{.e
3f500 63 68 6f 20 27 20 20 20 20 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 cho.'....'...$this->pool->litera
3f520 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 20 2e 20 27 20 27 20 2e 20 24 74 68 69 lToString($literal)...'.'...$thi
3f540 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 57 68 79 5b 24 69 5d 2e 22 20 6c 65 76 65 6c 20 s->decisionQueueWhy[$i].".level.
3f560 22 2e 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 ".$this->decisionMap[abs($litera
3f580 6c 29 5d 2e 22 5c 6e 22 3b 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 l)]."\n";.}.echo."\n";.}..protec
3f5a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 57 61 74 63 68 65 73 28 29 0a 7b 0a 65 63 ted.function.printWatches().{.ec
3f5c0 68 6f 20 22 5c 6e 57 61 74 63 68 65 73 3a 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ho."\nWatches:\n";.foreach.($thi
3f5e0 73 2d 3e 77 61 74 63 68 65 73 20 61 73 20 24 6c 69 74 65 72 61 6c 49 64 20 3d 3e 20 24 77 61 74 s->watches.as.$literalId.=>.$wat
3f600 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 20 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 ch).{.echo.'..'.$this->literalFr
3f620 6f 6d 49 64 28 24 6c 69 74 65 72 61 6c 49 64 29 2e 22 5c 6e 22 3b 0a 24 71 75 65 75 65 20 3d 20 omId($literalId)."\n";.$queue.=.
3f640 61 72 72 61 79 28 61 72 72 61 79 28 27 20 20 20 20 27 2c 20 24 77 61 74 63 68 29 29 3b 0a 0a 77 array(array('....',.$watch));..w
3f660 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 6c 69 73 74 28 24 69 6e hile.(!empty($queue)).{.list($in
3f680 64 65 6e 74 2c 20 24 77 61 74 63 68 29 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 dent,.$watch).=.array_pop($queue
3f6a0 29 3b 0a 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 24 77 61 74 63 68 3b 0a 0a 69 66 20 28 24 77 );..echo.$indent.$watch;..if.($w
3f6c0 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 5b 69 64 3d 27 2e 24 77 61 74 63 68 2d 3e 67 65 74 atch).{.echo.'.[id='.$watch->get
3f6e0 49 64 28 29 2e 27 2c 77 61 74 63 68 31 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 Id().',watch1='.$this->literalFr
3f700 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 31 29 2e 27 2c 77 61 74 63 68 32 3d 27 2e omId($watch->watch1).',watch2='.
3f720 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 $this->literalFromId($watch->wat
3f740 63 68 32 29 2e 22 5d 22 3b 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 0a 69 66 20 28 24 77 61 ch2)."]";.}..echo."\n";..if.($wa
3f760 74 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 20 tch.&&.($watch->next1.==.$watch.
3f780 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 29 20 7b 0a 69 ||.$watch->next2.==.$watch)).{.i
3f7a0 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 f.($watch->next1.==.$watch).{.ec
3f7c0 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 31 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a ho.$indent."....1.*RECURSION*";.
3f7e0 7d 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 20 7b }.if.($watch->next2.==.$watch).{
3f800 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 32 20 2a 52 45 43 55 52 53 49 4f 4e 2a .echo.$indent."....2.*RECURSION*
3f820 22 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 77 61 74 63 68 ";.}.}.elseif.($watch.&&.($watch
3f840 2d 3e 6e 65 78 74 31 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 20 7b 0a 24 69 6e ->next1.||.$watch->next2)).{.$in
3f860 64 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 31 27 2c 20 27 32 dent.=.str_replace(array('1',.'2
3f880 27 29 2c 20 27 20 27 2c 20 24 69 6e 64 65 6e 74 29 3b 0a 0a 61 72 72 61 79 5f 70 75 73 68 28 24 '),.'.',.$indent);..array_push($
3f8a0 71 75 65 75 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 32 20 27 2c 20 24 queue,.array($indent.'....2.',.$
3f8c0 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 3b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 watch->next2));.array_push($queu
3f8e0 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 31 20 27 2c 20 24 77 61 74 63 e,.array($indent.'....1.',.$watc
3f900 68 2d 3e 6e 65 78 74 31 29 29 3b 0a 7d 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a h->next1));.}.}..echo."\n";.}.}.
3f920 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
3f940 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c poser\DependencyResolver;.....cl
3f960 61 73 73 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c ass.RuleSetIterator.implements.\
3f980 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f Iterator.{.protected.$rules;.pro
3f9a0 74 65 63 74 65 64 20 24 74 79 70 65 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 tected.$types;..protected.$curre
3f9c0 6e 74 4f 66 66 73 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 ntOffset;.protected.$currentType
3f9e0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 3b 0a ;.protected.$currentTypeOffset;.
3fa00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 .public.function.__construct(arr
3fa20 61 79 20 24 72 75 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 72 75 6c ay.$rules).{.$this->rules.=.$rul
3fa40 65 73 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 es;.$this->types.=.array_keys($r
3fa60 75 6c 65 73 29 3b 0a 73 6f 72 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 29 3b 0a 0a 24 74 68 69 ules);.sort($this->types);..$thi
3fa80 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 s->rewind();.}..public.function.
3faa0 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b current().{.return.$this->rules[
3fac0 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 $this->currentType][$this->curre
3fae0 6e 74 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 ntOffset];.}..public.function.ke
3fb00 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 3b y().{.return.$this->currentType;
3fb20 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 24 74 68 .}..public.function.next().{.$th
3fb40 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 is->currentOffset++;..if.(!isset
3fb60 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 ($this->rules[$this->currentType
3fb80 5d 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 75 72 72 ])).{.return;.}..if.($this->curr
3fba0 65 6e 74 4f 66 66 73 65 74 20 3e 3d 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 entOffset.>=.sizeof($this->rules
3fbc0 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e [$this->currentType])).{.$this->
3fbe0 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e currentOffset.=.0;..do.{.$this->
3fc00 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 currentTypeOffset++;..if.(!isset
3fc20 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 ($this->types[$this->currentType
3fc40 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d Offset])).{.$this->currentType.=
3fc60 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 .-1;.break;.}..$this->currentTyp
3fc80 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 e.=.$this->types[$this->currentT
3fca0 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 ypeOffset];.}.while.(isset($this
3fcc0 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 ->types[$this->currentTypeOffset
3fce0 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 ]).&&.!sizeof($this->rules[$this
3fd00 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 ->currentType]));.}.}..public.fu
3fd20 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 nction.rewind().{.$this->current
3fd40 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f Offset.=.0;..$this->currentTypeO
3fd60 66 66 73 65 74 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d ffset.=.-1;.$this->currentType.=
3fd80 20 2d 31 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 .-1;..do.{.$this->currentTypeOff
3fda0 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b set++;..if.(!isset($this->types[
3fdc0 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 $this->currentTypeOffset])).{.$t
3fde0 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a his->currentType.=.-1;.break;.}.
3fe00 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 .$this->currentType.=.$this->typ
3fe20 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 es[$this->currentTypeOffset];.}.
3fe40 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d while.(isset($this->types[$this-
3fe60 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 >currentTypeOffset]).&&.!sizeof(
3fe80 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d $this->rules[$this->currentType]
3fea0 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b ));.}..public.function.valid().{
3fec0 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 .return.isset($this->rules[$this
3fee0 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 0a 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e ->currentType]).&&.isset($this->
3ff00 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d rules[$this->currentType][$this-
3ff20 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a >currentOffset]);.}.}.<?php.....
3ff40 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 .......namespace.Composer\Depend
3ff60 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c encyResolver;..........class.Rul
3ff80 65 57 61 74 63 68 43 68 61 69 6e 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 44 6f 75 62 6c 79 4c 69 eWatchChain.extends.\SplDoublyLi
3ffa0 6e 6b 65 64 4c 69 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 66 66 73 65 74 20 3d 20 30 nkedList.{.protected.$offset.=.0
3ffc0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 65 6b 28 24 6f 66 ;.......public.function.seek($of
3ffe0 66 73 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 66 6f 72 20 28 24 69 fset).{.$this->rewind();.for.($i
40000 20 3d 20 30 3b 20 24 69 20 3c 20 24 6f 66 66 73 65 74 3b 20 24 69 2b 2b 2c 20 24 74 68 69 73 2d .=.0;.$i.<.$offset;.$i++,.$this-
40020 3e 6e 65 78 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >next());.}..........public.func
40040 74 69 6f 6e 20 72 65 6d 6f 76 65 28 29 0a 7b 0a 24 6f 66 66 73 65 74 20 3d 20 24 74 68 69 73 2d tion.remove().{.$offset.=.$this-
40060 3e 6b 65 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 55 6e 73 65 74 28 24 6f 66 66 73 >key();.$this->offsetUnset($offs
40080 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 65 6b 28 24 6f 66 66 73 65 74 29 3b 0a 7d 0a 7d 0a 3c et);.$this->seek($offset);.}.}.<
400a0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
400c0 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 er\DependencyResolver;..use.Comp
400e0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 oser\Repository\RepositoryInterf
40100 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 0a 7b 0a 63 6f 6e 73 74 20 42 52 ace;.....class.Solver.{.const.BR
40120 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f ANCH_LITERALS.=.0;.const.BRANCH_
40140 4c 45 56 45 4c 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 LEVEL.=.1;..protected.$policy;.p
40160 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 rotected.$pool;.protected.$insta
40180 6c 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 lled;.protected.$rules;.protecte
401a0 64 20 24 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 d.$ruleSetGenerator;.protected.$
401c0 75 70 64 61 74 65 41 6c 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 65 64 4d 61 70 20 updateAll;..protected.$addedMap.
401e0 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 4d 61 70 20 =.array();.protected.$updateMap.
40200 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 47 72 61 70 68 =.array();.protected.$watchGraph
40220 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 ;.protected.$decisions;.protecte
40240 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f d.$installedMap;..protected.$pro
40260 70 61 67 61 74 65 49 6e 64 65 78 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 pagateIndex;.protected.$branches
40280 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 20 .=.array();.protected.$problems.
402a0 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 61 72 6e 65 64 50 6f 6f =.array();.protected.$learnedPoo
402c0 6c 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f l.=.array();..public.function.__
402e0 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 construct(PolicyInterface.$polic
40300 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 y,.Pool.$pool,.RepositoryInterfa
40320 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d ce.$installed).{.$this->policy.=
40340 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 .$policy;.$this->pool.=.$pool;.$
40360 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a 24 74 this->installed.=.$installed;.$t
40380 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 52 75 6c 65 his->ruleSetGenerator.=.new.Rule
403a0 53 65 74 47 65 6e 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 29 3b 0a 7d 0a SetGenerator($policy,.$pool);.}.
403c0 0a 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 41 73 73 65 72 74 69 6f ...private.function.makeAssertio
403e0 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 0a 7b 0a 24 64 65 63 69 73 69 6f 6e 53 74 61 72 nRuleDecisions().{.$decisionStar
40400 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 20 2d 20 31 3b t.=.count($this->decisions).-.1;
40420 0a 0a 66 6f 72 20 28 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 30 3b 20 24 72 75 6c 65 49 6e 64 65 ..for.($ruleIndex.=.0;.$ruleInde
40440 78 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b 20 24 72 75 6c 65 49 6e x.<.count($this->rules);.$ruleIn
40460 64 65 78 2b 2b 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 dex++).{.$rule.=.$this->rules->r
40480 75 6c 65 42 79 49 64 28 24 72 75 6c 65 49 6e 64 65 78 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 uleById($ruleIndex);..if.(!$rule
404a0 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 20 7c 7c 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 ->isAssertion().||.$rule->isDisa
404c0 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 74 65 72 61 6c 73 bled()).{.continue;.}..$literals
404e0 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 6c 69 74 65 72 61 .=.$rule->getLiterals();.$litera
40500 6c 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 l.=.$literals[0];..if.(!$this->d
40520 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 ecisions->decided(abs($literal))
40540 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 ).{.$this->decisions->decide($li
40560 74 65 72 61 6c 2c 20 31 2c 20 24 72 75 6c 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 teral,.1,.$rule);.continue;.}..i
40580 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 f.($this->decisions->satisfy($li
405a0 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 52 75 6c teral)).{.continue;.}....if.(Rul
405c0 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 eSet::TYPE_LEARNED.===.$rule->ge
405e0 74 54 79 70 65 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 63 6f 6e tType()).{.$rule->disable();.con
40600 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 tinue;.}..$conflict.=.$this->dec
40620 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a isions->decisionRule($literal);.
40640 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 20 26 26 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f .if.($conflict.&&.RuleSet::TYPE_
40660 50 41 43 4b 41 47 45 20 3d 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 2d 3e 67 65 74 54 79 70 65 28 29 PACKAGE.===.$conflict->getType()
40680 29 20 7b 0a 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 3b 0a 0a 24 70 ).{..$problem.=.new.Problem;..$p
406a0 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c 65 29 3b 0a 24 70 72 6f 62 6c 65 6d roblem->addRule($rule);.$problem
406c0 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 ->addRule($conflict);.$this->dis
406e0 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 75 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c ableProblem($rule);.$this->probl
40700 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a ems[].=.$problem;.continue;.}...
40720 20 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 3b 0a 24 70 72 6f 62 6c 65 .$problem.=.new.Problem;.$proble
40740 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c 65 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 m->addRule($rule);.$problem->add
40760 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 Rule($conflict);......foreach.($
40780 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 this->rules->getIteratorFor(Rule
407a0 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 20 61 73 20 24 61 73 73 65 72 74 52 75 6c 65 29 20 7b Set::TYPE_JOB).as.$assertRule).{
407c0 0a 69 66 20 28 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 7c .if.($assertRule->isDisabled().|
407e0 7c 20 21 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b |.!$assertRule->isAssertion()).{
40800 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c .continue;.}..$assertRuleLiteral
40820 73 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a s.=.$assertRule->getLiterals();.
40840 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 $assertRuleLiteral.=.$assertRule
40860 4c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 20 Literals[0];..if.(abs($literal).
40880 21 3d 3d 20 61 62 73 28 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 29 29 20 7b 0a 63 !==.abs($assertRuleLiteral)).{.c
408a0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 61 ontinue;.}..$problem->addRule($a
408c0 73 73 65 72 74 52 75 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 ssertRule);.$this->disableProble
408e0 6d 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d m($assertRule);.}.$this->problem
40900 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 54 6f 4f s[].=.$problem;..$this->resetToO
40920 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 53 74 61 72 74 29 3b 0a 24 72 75 6c 65 49 6e 64 65 ffset($decisionStart);.$ruleInde
40940 78 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 x.=.-1;.}.}..protected.function.
40960 73 65 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 setupInstalledMap().{.$this->ins
40980 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 talledMap.=.array();.foreach.($t
409a0 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 his->installed->getPackages().as
409c0 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 .$package).{.$this->installedMap
409e0 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a [$package->getId()].=.$package;.
40a00 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 }..foreach.($this->jobs.as.$job)
40a20 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 .{.switch.($job['cmd']).{.case.'
40a40 75 70 64 61 74 65 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 update':.foreach.($job['packages
40a60 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 '].as.$package).{.if.(isset($thi
40a80 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 s->installedMap[$package->getId(
40aa0 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 )])).{.$this->updateMap[$package
40ac0 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 ->getId()].=.true;.}.}.break;..c
40ae0 61 73 65 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ase.'update-all':.foreach.($this
40b00 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 ->installedMap.as.$package).{.$t
40b20 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 his->updateMap[$package->getId()
40b40 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e 73 74 61 6c ].=.true;.}.break;..case.'instal
40b60 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 24 70 72 l':.if.(!$job['packages']).{.$pr
40b80 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d oblem.=.new.Problem();.$problem-
40ba0 3e 61 64 64 52 75 6c 65 28 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 >addRule(new.Rule($this->pool,.a
40bc0 72 72 61 79 28 29 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 6a 6f 62 29 29 3b 0a 24 74 68 69 rray(),.null,.null,.$job));.$thi
40be0 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 7d 0a 62 72 65 61 s->problems[].=.$problem;.}.brea
40c00 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 6c 76 65 28 k;.}.}.}..public.function.solve(
40c20 52 65 71 75 65 73 74 20 24 72 65 71 75 65 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 Request.$request).{.$this->jobs.
40c40 3d 20 24 72 65 71 75 65 73 74 2d 3e 67 65 74 4a 6f 62 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 =.$request->getJobs();..$this->s
40c60 65 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 etupInstalledMap();..$this->deci
40c80 73 69 6f 6e 73 20 3d 20 6e 65 77 20 44 65 63 69 73 69 6f 6e 73 28 24 74 68 69 73 2d 3e 70 6f 6f sions.=.new.Decisions($this->poo
40ca0 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 53 l);..$this->rules.=.$this->ruleS
40cc0 65 74 47 65 6e 65 72 61 74 6f 72 2d 3e 67 65 74 52 75 6c 65 73 46 6f 72 28 24 74 68 69 73 2d 3e etGenerator->getRulesFor($this->
40ce0 6a 6f 62 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 24 74 68 69 jobs,.$this->installedMap);.$thi
40d00 73 2d 3e 77 61 74 63 68 47 72 61 70 68 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 47 72 61 s->watchGraph.=.new.RuleWatchGra
40d20 70 68 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 ph;..foreach.($this->rules.as.$r
40d40 75 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 69 6e 73 65 72 74 ule).{.$this->watchGraph->insert
40d60 28 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 72 75 6c 65 29 29 3b 0a 7d 0a 0a 0a (new.RuleWatchNode($rule));.}...
40d80 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e $this->makeAssertionRuleDecision
40da0 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 53 61 74 28 74 72 75 65 29 3b 0a 0a 0a 20 66 6f s();..$this->runSat(true);....fo
40dc0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 24 70 reach.($this->installedMap.as.$p
40de0 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e ackageId.=>.$void).{.if.($this->
40e00 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 70 61 63 6b 61 67 65 49 64 29 decisions->undecided($packageId)
40e20 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 2d 24 70 ).{.$this->decisions->decide(-$p
40e40 61 63 6b 61 67 65 49 64 2c 20 31 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 ackageId,.1,.null);.}.}..if.($th
40e60 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 is->problems).{.throw.new.Solver
40e80 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d ProblemsException($this->problem
40ea0 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 0a 24 74 72 61 s,.$this->installedMap);.}..$tra
40ec0 6e 73 61 63 74 69 6f 6e 20 3d 20 6e 65 77 20 54 72 61 6e 73 61 63 74 69 6f 6e 28 24 74 68 69 73 nsaction.=.new.Transaction($this
40ee0 2d 3e 70 6f 6c 69 63 79 2c 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e ->policy,.$this->pool,.$this->in
40f00 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 0a stalledMap,.$this->decisions);..
40f20 72 65 74 75 72 6e 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 2d 3e 67 65 74 4f 70 65 72 61 74 69 6f return.$transaction->getOperatio
40f40 6e 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 ns();.}..protected.function.lite
40f60 72 61 6c 46 72 6f 6d 49 64 28 24 69 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 ralFromId($id).{.$package.=.$thi
40f80 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 61 62 73 28 24 69 64 29 29 3b 0a s->pool->packageById(abs($id));.
40fa0 0a 72 65 74 75 72 6e 20 6e 65 77 20 4c 69 74 65 72 61 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 69 .return.new.Literal($package,.$i
40fc0 64 20 3e 20 30 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e d.>.0);.}..........protected.fun
40fe0 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 ction.propagate($level).{.while.
41000 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 76 61 6c 69 64 4f 66 66 73 65 74 28 24 ($this->decisions->validOffset($
41020 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 29 20 7b 0a 24 64 65 63 69 73 69 this->propagateIndex)).{.$decisi
41040 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 on.=.$this->decisions->atOffset(
41060 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 3b 0a 0a 24 63 6f 6e 66 6c 69 $this->propagateIndex);..$confli
41080 63 74 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 70 72 6f 70 61 67 61 74 ct.=.$this->watchGraph->propagat
410a0 65 4c 69 74 65 72 61 6c 28 0a 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 eLiteral(.$decision[Decisions::D
410c0 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 2c 0a 24 6c 65 76 65 6c 2c 0a 24 74 68 69 73 2d ECISION_LITERAL],.$level,.$this-
410e0 3e 64 65 63 69 73 69 6f 6e 73 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 >decisions.);..$this->propagateI
41100 6e 64 65 78 2b 2b 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 72 65 74 75 72 6e ndex++;..if.($conflict).{.return
41120 20 24 63 6f 6e 66 6c 69 63 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a .$conflict;.}.}..return.null;.}.
41140 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 76 65 72 74 28 24 6c 65 76 ....private.function.revert($lev
41160 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e el).{.while.(!$this->decisions->
41180 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 74 68 69 73 2d 3e 64 isEmpty()).{.$literal.=.$this->d
411a0 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 3b 0a 0a 69 66 20 28 24 74 ecisions->lastLiteral();..if.($t
411c0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 his->decisions->undecided($liter
411e0 61 6c 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 20 al)).{.break;.}..$decisionLevel.
41200 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 =.$this->decisions->decisionLeve
41220 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c l($literal);..if.($decisionLevel
41240 20 3c 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 .<=.$level).{.break;.}..$this->d
41260 65 63 69 73 69 6f 6e 73 2d 3e 72 65 76 65 72 74 4c 61 73 74 28 29 3b 0a 24 74 68 69 73 2d 3e 70 ecisions->revertLast();.$this->p
41280 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 ropagateIndex.=.count($this->dec
412a0 69 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d isions);.}..while.(!empty($this-
412c0 3e 62 72 61 6e 63 68 65 73 29 20 26 26 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 63 6f >branches).&&.$this->branches[co
412e0 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a unt($this->branches).-.1][self::
41300 42 52 41 4e 43 48 5f 4c 45 56 45 4c 5d 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 61 72 72 61 79 BRANCH_LEVEL].>=.$level).{.array
41320 5f 70 6f 70 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a _pop($this->branches);.}.}......
41340 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 ...........private.function.setP
41360 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 69 74 65 72 61 6c 2c 20 ropagateLearn($level,.$literal,.
41380 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 6c 65 $disableRules,.Rule.$rule).{.$le
413a0 76 65 6c 2b 2b 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 vel++;..$this->decisions->decide
413c0 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 3b 0a 0a 77 68 69 6c ($literal,.$level,.$rule);..whil
413e0 65 20 28 74 72 75 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 e.(true).{.$rule.=.$this->propag
41400 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 29 20 7b 0a 62 72 65 61 ate($level);..if.(!$rule).{.brea
41420 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 31 29 20 7b 0a 72 65 74 75 72 6e 20 k;.}..if.($level.==.1).{.return.
41440 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 72 75 6c 65 2c 20 $this->analyzeUnsolvable($rule,.
41460 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 3b 0a 7d 0a 0a 0a 20 6c 69 73 74 28 24 6c 65 61 72 6e $disableRules);.}....list($learn
41480 4c 69 74 65 72 61 6c 2c 20 24 6e 65 77 4c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 2c 20 24 77 Literal,.$newLevel,.$newRule,.$w
414a0 68 79 29 20 3d 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c 20 24 72 75 hy).=.$this->analyze($level,.$ru
414c0 6c 65 29 3b 0a 0a 69 66 20 28 24 6e 65 77 4c 65 76 65 6c 20 3c 3d 20 30 20 7c 7c 20 24 6e 65 77 le);..if.($newLevel.<=.0.||.$new
414e0 4c 65 76 65 6c 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c Level.>=.$level).{.throw.new.Sol
41500 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 20 74 6f 20 72 65 76 65 verBugException(."Trying.to.reve
41520 72 74 20 74 6f 20 69 6e 76 61 6c 69 64 20 6c 65 76 65 6c 20 22 2e 28 69 6e 74 29 20 24 6e 65 77 rt.to.invalid.level.".(int).$new
41540 4c 65 76 65 6c 2e 22 20 66 72 6f 6d 20 6c 65 76 65 6c 20 22 2e 28 69 6e 74 29 20 24 6c 65 76 65 Level.".from.level.".(int).$leve
41560 6c 2e 22 2e 22 0a 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 6e 65 77 52 75 6c 65 29 20 7b 0a l.".".);.}.elseif.(!$newRule).{.
41580 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 4e throw.new.SolverBugException(."N
415a0 6f 20 72 75 6c 65 20 77 61 73 20 6c 65 61 72 6e 65 64 20 66 72 6f 6d 20 61 6e 61 6c 79 7a 69 6e o.rule.was.learned.from.analyzin
415c0 67 20 24 72 75 6c 65 20 61 74 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c 2e 22 0a 29 3b 0a 7d 0a 0a g.$rule.at.level.$level.".);.}..
415e0 24 6c 65 76 65 6c 20 3d 20 24 6e 65 77 4c 65 76 65 6c 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 76 65 $level.=.$newLevel;..$this->reve
41600 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 rt($level);..$this->rules->add($
41620 6e 65 77 52 75 6c 65 2c 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 3b newRule,.RuleSet::TYPE_LEARNED);
41640 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 6e 65 77 52 75 6c 65 2d 3e 67 65 ..$this->learnedWhy[$newRule->ge
41660 74 49 64 28 29 5d 20 3d 20 24 77 68 79 3b 0a 0a 24 72 75 6c 65 4e 6f 64 65 20 3d 20 6e 65 77 20 tId()].=.$why;..$ruleNode.=.new.
41680 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 6e 65 77 52 75 6c 65 29 3b 0a 24 72 75 6c 65 4e 6f RuleWatchNode($newRule);.$ruleNo
416a0 64 65 2d 3e 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 de->watch2OnHighest($this->decis
416c0 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 69 6e 73 65 72 74 ions);.$this->watchGraph->insert
416e0 28 24 72 75 6c 65 4e 6f 64 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e ($ruleNode);..$this->decisions->
41700 64 65 63 69 64 65 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 6e decide($learnLiteral,.$level,.$n
41720 65 77 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 70 72 ewRule);.}..return.$level;.}..pr
41740 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c 28 ivate.function.selectAndInstall(
41760 24 6c 65 76 65 6c 2c 20 61 72 72 61 79 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 $level,.array.$decisionQueue,.$d
41780 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 0a 20 24 6c 69 isableRules,.Rule.$rule).{...$li
417a0 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 50 72 terals.=.$this->policy->selectPr
417c0 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 eferedPackages($this->pool,.$thi
417e0 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 s->installedMap,.$decisionQueue)
41800 3b 0a 0a 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 66 ;..$selectedLiteral.=.array_shif
41820 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 6c 69 74 65 t($literals);....if.(count($lite
41840 72 61 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 61 72 72 rals)).{.$this->branches[].=.arr
41860 61 79 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ay($literals,.$level);.}..return
41880 20 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c .$this->setPropagateLearn($level
418a0 2c 20 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 ,.$selectedLiteral,.$disableRule
418c0 73 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e s,.$rule);.}..protected.function
418e0 20 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 0a 7b 0a 24 61 6e 61 6c 79 .analyze($level,.$rule).{.$analy
41900 7a 65 64 52 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 24 72 75 6c 65 4c 65 76 65 6c 20 3d 20 31 3b zedRule.=.$rule;.$ruleLevel.=.1;
41920 0a 24 6e 75 6d 20 3d 20 30 3b 0a 24 6c 31 6e 75 6d 20 3d 20 30 3b 0a 24 73 65 65 6e 20 3d 20 61 .$num.=.0;.$l1num.=.0;.$seen.=.a
41940 72 72 61 79 28 29 3b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 rray();.$learnedLiterals.=.array
41960 28 6e 75 6c 6c 29 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 20 3d 20 63 6f 75 6e 74 28 24 74 68 (null);..$decisionId.=.count($th
41980 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 is->decisions);..$this->learnedP
419a0 6f 6f 6c 5b 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b ool[].=.array();..while.(true).{
419c0 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d .$this->learnedPool[count($this-
419e0 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 29 20 2d 20 31 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 0a 66 >learnedPool).-.1][].=.$rule;..f
41a00 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 20 61 73 20 oreach.($rule->getLiterals().as.
41a20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f $literal).{...if.($this->decisio
41a40 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 ns->satisfy($literal)).{.continu
41a60 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 e;.}..if.(isset($seen[abs($liter
41a80 61 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 al)])).{.continue;.}.$seen[abs($
41aa0 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 24 6c 20 3d 20 24 74 68 69 73 2d 3e 64 literal)].=.true;..$l.=.$this->d
41ac0 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c ecisions->decisionLevel($literal
41ae0 29 3b 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 29 20 7b 0a 24 6c 31 6e 75 6d 2b 2b 3b 0a 7d 20 );..if.(1.===.$l).{.$l1num++;.}.
41b00 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 3d 20 24 6c 29 20 7b 0a 24 6e 75 6d 2b 2b 3b elseif.($level.===.$l).{.$num++;
41b20 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 5d 20 3d .}.else.{...$learnedLiterals[].=
41b40 20 24 6c 69 74 65 72 61 6c 3b 0a 0a 69 66 20 28 24 6c 20 3e 20 24 72 75 6c 65 4c 65 76 65 6c 29 .$literal;..if.($l.>.$ruleLevel)
41b60 20 7b 0a 24 72 75 6c 65 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6c 31 72 65 .{.$ruleLevel.=.$l;.}.}.}..$l1re
41b80 74 72 79 20 3d 20 74 72 75 65 3b 0a 77 68 69 6c 65 20 28 24 6c 31 72 65 74 72 79 29 20 7b 0a 24 try.=.true;.while.($l1retry).{.$
41ba0 6c 31 72 65 74 72 79 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 28 21 24 6e 75 6d 20 26 26 20 21 l1retry.=.false;..if.(!$num.&&.!
41bc0 2d 2d 24 6c 31 6e 75 6d 29 20 7b 0a 0a 20 62 72 65 61 6b 20 32 3b 0a 7d 0a 0a 77 68 69 6c 65 20 --$l1num).{...break.2;.}..while.
41be0 28 74 72 75 65 29 20 7b 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 49 64 20 3c 3d 20 30 29 20 7b (true).{.if.($decisionId.<=.0).{
41c00 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 .throw.new.SolverBugException(."
41c20 52 65 61 63 68 65 64 20 69 6e 76 61 6c 69 64 20 64 65 63 69 73 69 6f 6e 20 69 64 20 24 64 65 63 Reached.invalid.decision.id.$dec
41c40 69 73 69 6f 6e 49 64 20 77 68 69 6c 65 20 6c 6f 6f 6b 69 6e 67 20 74 68 72 6f 75 67 68 20 24 72 isionId.while.looking.through.$r
41c60 75 6c 65 20 66 6f 72 20 61 20 6c 69 74 65 72 61 6c 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 ule.for.a.literal.present.in.the
41c80 20 61 6e 61 6c 79 7a 65 64 20 72 75 6c 65 20 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 2e 22 0a 29 .analyzed.rule.$analyzedRule.".)
41ca0 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 2d 2d 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 20 3d ;.}..$decisionId--;..$decision.=
41cc0 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 64 65 63 .$this->decisions->atOffset($dec
41ce0 69 73 69 6f 6e 49 64 29 3b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 isionId);.$literal.=.$decision[D
41d00 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 0a 69 66 ecisions::DECISION_LITERAL];..if
41d20 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b .(isset($seen[abs($literal)])).{
41d40 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 75 6e 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 .break;.}.}..unset($seen[abs($li
41d60 74 65 72 61 6c 29 5d 29 3b 0a 0a 69 66 20 28 24 6e 75 6d 20 26 26 20 30 20 3d 3d 3d 20 2d 2d 24 teral)]);..if.($num.&&.0.===.--$
41d80 6e 75 6d 29 20 7b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 20 3d 20 2d 61 62 num).{.$learnedLiterals[0].=.-ab
41da0 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 6c 31 6e 75 6d 29 20 7b 0a 62 72 65 s($literal);..if.(!$l1num).{.bre
41dc0 61 6b 20 32 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 ak.2;.}..foreach.($learnedLitera
41de0 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 20 7b 0a 69 ls.as.$i.=>.$learnedLiteral).{.i
41e00 66 20 28 24 69 20 21 3d 3d 20 30 29 20 7b 0a 75 6e 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 f.($i.!==.0).{.unset($seen[abs($
41e20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 5d 29 3b 0a 7d 0a 7d 0a 0a 20 24 6c 31 6e 75 6d 2b learnedLiteral)]);.}.}...$l1num+
41e40 2b 3b 0a 24 6c 31 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 64 65 63 69 73 69 +;.$l1retry.=.true;.}.}..$decisi
41e60 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 on.=.$this->decisions->atOffset(
41e80 24 64 65 63 69 73 69 6f 6e 49 64 29 3b 0a 24 72 75 6c 65 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b $decisionId);.$rule.=.$decision[
41ea0 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a Decisions::DECISION_REASON];.}..
41ec0 24 77 68 79 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 29 $why.=.count($this->learnedPool)
41ee0 20 2d 20 31 3b 0a 0a 69 66 20 28 21 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 29 .-.1;..if.(!$learnedLiterals[0])
41f00 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 .{.throw.new.SolverBugException(
41f20 0a 22 44 69 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 6c 65 61 72 6e 61 62 6c 65 20 6c 69 74 65 72 ."Did.not.find.a.learnable.liter
41f40 61 6c 20 69 6e 20 61 6e 61 6c 79 7a 65 64 20 72 75 6c 65 20 24 61 6e 61 6c 79 7a 65 64 52 75 6c al.in.analyzed.rule.$analyzedRul
41f60 65 2e 22 0a 29 3b 0a 7d 0a 0a 24 6e 65 77 52 75 6c 65 20 3d 20 6e 65 77 20 52 75 6c 65 28 24 74 e.".);.}..$newRule.=.new.Rule($t
41f80 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 2c 20 52 75 6c his->pool,.$learnedLiterals,.Rul
41fa0 65 3a 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 44 2c 20 24 77 68 79 29 3b 0a 0a 72 65 74 75 72 6e 20 e::RULE_LEARNED,.$why);..return.
41fc0 61 72 72 61 79 28 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 2c 20 24 72 75 6c 65 array($learnedLiterals[0],.$rule
41fe0 4c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 2c 20 24 77 68 79 29 3b 0a 7d 0a 0a 70 72 69 76 61 Level,.$newRule,.$why);.}..priva
42000 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c te.function.analyzeUnsolvableRul
42020 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 0a 7b 0a 24 77 68 e($problem,.$conflictRule).{.$wh
42040 79 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 49 64 28 29 3b 0a 0a 69 66 20 y.=.$conflictRule->getId();..if.
42060 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 20 52 75 6c ($conflictRule->getType().==.Rul
42080 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 7b 0a 24 6c 65 61 72 6e 65 64 57 68 eSet::TYPE_LEARNED).{.$learnedWh
420a0 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 77 68 79 5d 3b 0a 24 70 72 y.=.$this->learnedWhy[$why];.$pr
420c0 6f 62 6c 65 6d 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b oblemRules.=.$this->learnedPool[
420e0 24 6c 65 61 72 6e 65 64 57 68 79 5d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d $learnedWhy];..foreach.($problem
42100 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e Rules.as.$problemRule).{.$this->
42120 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 analyzeUnsolvableRule($problem,.
42140 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 $problemRule);.}..return;.}..if.
42160 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 20 52 75 6c ($conflictRule->getType().==.Rul
42180 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a eSet::TYPE_PACKAGE).{...return;.
421a0 7d 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 6e 65 78 74 53 65 63 74 69 6f 6e 28 29 3b 0a 24 70 72 6f }..$problem->nextSection();.$pro
421c0 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 7d 0a blem->addRule($conflictRule);.}.
421e0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 .private.function.analyzeUnsolva
42200 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 ble($conflictRule,.$disableRules
42220 29 0a 7b 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 3b 0a 24 70 72 6f ).{.$problem.=.new.Problem;.$pro
42240 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 blem->addRule($conflictRule);..$
42260 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f this->analyzeUnsolvableRule($pro
42280 62 6c 65 6d 2c 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 blem,.$conflictRule);..$this->pr
422a0 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 oblems[].=.$problem;..$seen.=.ar
422c0 72 61 79 28 29 3b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 ray();.$literals.=.$conflictRule
422e0 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 ->getLiterals();..foreach.($lite
42300 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d rals.as.$literal).{...if.($this-
42320 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b >decisions->satisfy($literal)).{
42340 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 .continue;.}.$seen[abs($literal)
42360 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 ].=.true;.}..foreach.($this->dec
42380 69 73 69 6f 6e 73 20 61 73 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 isions.as.$decision).{.$literal.
423a0 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f =.$decision[Decisions::DECISION_
423c0 4c 49 54 45 52 41 4c 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 LITERAL];....if.(!isset($seen[ab
423e0 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 77 s($literal)])).{.continue;.}..$w
42400 68 79 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 hy.=.$decision[Decisions::DECISI
42420 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 ON_REASON];..$problem->addRule($
42440 77 68 79 29 3b 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 why);.$this->analyzeUnsolvableRu
42460 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 77 68 79 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d le($problem,.$why);..$literals.=
42480 20 24 77 68 79 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 .$why->getLiterals();..foreach.(
424a0 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 $literals.as.$literal).{...if.($
424c0 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 this->decisions->satisfy($litera
424e0 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 l)).{.continue;.}.$seen[abs($lit
42500 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 eral)].=.true;.}.}..if.($disable
42520 52 75 6c 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d Rules).{.foreach.($this->problem
42540 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 2d 20 31 5d 20 61 73 s[count($this->problems).-.1].as
42560 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 .$reason).{.$this->disableProble
42580 6d 28 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 m($reason['rule']);.}..$this->re
425a0 73 65 74 53 6f 6c 76 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 setSolver();..return.1;.}..retur
425c0 6e 20 30 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 n.0;.}..private.function.disable
425e0 50 72 6f 62 6c 65 6d 28 24 77 68 79 29 0a 7b 0a 24 6a 6f 62 20 3d 20 24 77 68 79 2d 3e 67 65 74 Problem($why).{.$job.=.$why->get
42600 4a 6f 62 28 29 3b 0a 0a 69 66 20 28 21 24 6a 6f 62 29 20 7b 0a 24 77 68 79 2d 3e 64 69 73 61 62 Job();..if.(!$job).{.$why->disab
42620 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 le();..return;.}....foreach.($th
42640 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 6a 6f 62 20 3d is->rules.as.$rule).{.if.($job.=
42660 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4a 6f 62 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 ==.$rule->getJob()).{.$rule->dis
42680 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 able();.}.}.}..private.function.
426a0 72 65 73 65 74 53 6f 6c 76 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 resetSolver().{.$this->decisions
426c0 2d 3e 72 65 73 65 74 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 ->reset();..$this->propagateInde
426e0 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 x.=.0;.$this->branches.=.array()
42700 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 ;..$this->enableDisableLearnedRu
42720 6c 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 les();.$this->makeAssertionRuleD
42740 65 63 69 73 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 ecisions();.}.........private.fu
42760 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 nction.enableDisableLearnedRules
42780 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 ().{.foreach.($this->rules->getI
427a0 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 teratorFor(RuleSet::TYPE_LEARNED
427c0 29 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 ).as.$rule).{.$why.=.$this->lear
427e0 6e 65 64 57 68 79 5b 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 3b 0a 24 70 72 6f 62 6c 65 6d nedWhy[$rule->getId()];.$problem
42800 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 77 68 79 5d Rules.=.$this->learnedPool[$why]
42820 3b 0a 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 ;..$foundDisabled.=.false;.forea
42840 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c ch.($problemRules.as.$problemRul
42860 65 29 20 7b 0a 69 66 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 e).{.if.($problemRule->isDisable
42880 64 28 29 29 20 7b 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 62 72 d()).{.$foundDisabled.=.true;.br
428a0 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 eak;.}.}..if.($foundDisabled.&&.
428c0 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 $rule->isEnabled()).{.$rule->dis
428e0 61 62 6c 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 able();.}.elseif.(!$foundDisable
42900 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c d.&&.$rule->isDisabled()).{.$rul
42920 65 2d 3e 65 6e 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 e->enable();.}.}.}..private.func
42940 74 69 6f 6e 20 72 75 6e 53 61 74 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 74 72 75 65 tion.runSat($disableRules.=.true
42960 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 0a ).{.$this->propagateIndex.=.0;..
42980 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 ..................$decisionQueue
429a0 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 65 63 69 73 69 6f 6e 53 75 70 70 6c 65 6d 65 6e 74 51 .=.array();.$decisionSupplementQ
429c0 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 ueue.=.array();.$disableRules.=.
429e0 61 72 72 61 79 28 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 31 3b 0a 24 73 79 73 74 65 6d 4c 65 76 array();..$level.=.1;.$systemLev
42a00 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 50 6f 73 20 3d el.=.$level.+.1;.$installedPos.=
42a20 20 30 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 .0;..while.(true).{..if.(1.===.$
42a40 6c 65 76 65 6c 29 20 7b 0a 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e level).{.$conflictRule.=.$this->
42a60 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 propagate($level);.if.(null.!==.
42a80 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6e 61 6c $conflictRule).{.if.($this->anal
42aa0 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 64 69 yzeUnsolvable($conflictRule,.$di
42ac0 73 61 62 6c 65 52 75 6c 65 73 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 sableRules)).{.continue;.}..retu
42ae0 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c rn;.}.}....if.($level.<.$systemL
42b00 65 76 65 6c 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 evel).{.$iterator.=.$this->rules
42b20 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a ->getIteratorFor(RuleSet::TYPE_J
42b40 4f 42 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 72 75 6c 65 OB);.foreach.($iterator.as.$rule
42b60 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 64 ).{.if.($rule->isEnabled()).{.$d
42b80 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 6f 6e 65 53 61 74 ecisionQueue.=.array();.$noneSat
42ba0 69 73 66 69 65 64 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e isfied.=.true;..foreach.($rule->
42bc0 67 65 74 4c 69 74 65 72 61 6c 73 28 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 getLiterals().as.$literal).{.if.
42be0 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 ($this->decisions->satisfy($lite
42c00 72 61 6c 29 29 20 7b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 66 61 6c 73 65 3b 0a ral)).{.$noneSatisfied.=.false;.
42c20 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 74 68 break;.}.if.($literal.>.0.&&.$th
42c40 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 is->decisions->undecided($litera
42c60 6c 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 l)).{.$decisionQueue[].=.$litera
42c80 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 63 6f l;.}.}..if.($noneSatisfied.&&.co
42ca0 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 63 unt($decisionQueue)).{.....if.(c
42cc0 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 29 20 21 3d 20 63 6f 75 6e 74 28 ount($this->installed).!=.count(
42ce0 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 $this->updateMap)).{.$prunedQueu
42d00 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 63 69 73 69 6f 6e 51 e.=.array();.foreach.($decisionQ
42d20 75 65 75 65 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 ueue.as.$literal).{.if.(isset($t
42d40 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d his->installedMap[abs($literal)]
42d60 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a )).{.$prunedQueue[].=.$literal;.
42d80 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 if.(isset($this->updateMap[abs($
42da0 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 24 64 65 literal)])).{.$prunedQueue.=.$de
42dc0 63 69 73 69 6f 6e 51 75 65 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 24 64 65 63 69 73 cisionQueue;.break;.}.}.}.$decis
42de0 69 6f 6e 51 75 65 75 65 20 3d 20 24 70 72 75 6e 65 64 51 75 65 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 ionQueue.=.$prunedQueue;.}.}..if
42e00 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 63 69 73 .($noneSatisfied.&&.count($decis
42e20 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a ionQueue)).{..$oLevel.=.$level;.
42e40 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c $level.=.$this->selectAndInstall
42e60 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c ($level,.$decisionQueue,.$disabl
42e80 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 65 76 65 eRules,.$rule);..if.(0.===.$leve
42ea0 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 3d 20 24 6f 4c l).{.return;.}.if.($level.<=.$oL
42ec0 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 73 79 73 74 65 6d 4c evel).{.break;.}.}.}.}..$systemL
42ee0 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 0a 0a 20 24 69 74 65 72 61 74 6f 72 2d evel.=.$level.+.1;....$iterator-
42f00 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 >next();.if.($iterator->valid())
42f20 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 .{.continue;.}.}..if.($level.<.$
42f40 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c systemLevel).{.$systemLevel.=.$l
42f60 65 76 65 6c 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 30 3b 20 24 6e evel;.}..for.($i.=.0,.$n.=.0;.$n
42f80 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b 20 24 69 2b 2b 2c 20 24 6e .<.count($this->rules);.$i++,.$n
42fa0 2b 2b 29 20 7b 0a 69 66 20 28 24 69 20 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c ++).{.if.($i.==.count($this->rul
42fc0 65 73 29 29 20 7b 0a 24 69 20 3d 20 30 3b 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d es)).{.$i.=.0;.}..$rule.=.$this-
42fe0 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 49 64 28 24 69 29 3b 0a 24 6c 69 74 65 72 61 6c 73 20 >rules->ruleById($i);.$literals.
43000 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 69 66 20 28 24 72 75 =.$rule->getLiterals();..if.($ru
43020 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a le->isDisabled()).{.continue;.}.
43040 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 .$decisionQueue.=.array();......
43060 0a 20 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c ........foreach.($literals.as.$l
43080 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 29 20 7b 0a 69 iteral).{.if.($literal.<=.0).{.i
430a0 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 49 6e 73 f.(!$this->decisions->decidedIns
430c0 74 61 6c 6c 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 tall(abs($literal))).{.continue.
430e0 32 3b 20 0a 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 2;...}.}.else.{.if.($this->decis
43100 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 61 62 73 28 24 6c 69 74 65 72 61 ions->decidedInstall(abs($litera
43120 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 l))).{.continue.2;...}.if.($this
43140 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 ->decisions->undecided(abs($lite
43160 72 61 6c 29 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 ral))).{.$decisionQueue[].=.$lit
43180 65 72 61 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 64 65 63 69 73 69 eral;.}.}.}....if.(count($decisi
431a0 6f 6e 51 75 65 75 65 29 20 3c 20 32 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 4c onQueue).<.2).{.continue;.}..$oL
431c0 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 evel.=.$level;.$level.=.$this->s
431e0 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f electAndInstall($level,.$decisio
43200 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 0a nQueue,.$disableRules,.$rule);..
43220 69 66 20 28 30 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a if.(0.===.$level).{.return;.}...
43240 20 24 6e 20 3d 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 .$n.=.-1;.}..if.($level.<.$syste
43260 6d 4c 65 76 65 6c 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 mLevel).{.continue;.}....if.(cou
43280 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 0a 24 6c 61 73 74 4c 69 74 nt($this->branches)).{..$lastLit
432a0 65 72 61 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 6e 75 6c 6c 3b 0a eral.=.null;.$lastLevel.=.null;.
432c0 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 30 3b 0a 24 6c 61 73 74 42 72 61 6e 63 $lastBranchIndex.=.0;.$lastBranc
432e0 68 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 6c 20 3d 20 30 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 hOffset.=.0;.$l.=.0;..for.($i.=.
43300 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 3b 20 24 69 20 3e count($this->branches).-.1;.$i.>
43320 3d 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 6c 69 73 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 29 =.0;.$i--).{.list($literals,.$l)
43340 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 69 5d 3b 0a 0a 66 6f 72 65 61 63 68 .=.$this->branches[$i];..foreach
43360 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 6c 69 74 65 72 .($literals.as.$offset.=>.$liter
43380 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e al).{.if.($literal.&&.$literal.>
433a0 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e .0.&&.$this->decisions->decision
433c0 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 20 3e 20 24 6c 20 2b 20 31 29 20 7b 0a 24 6c 61 73 Level($literal).>.$l.+.1).{.$las
433e0 74 4c 69 74 65 72 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 tLiteral.=.$literal;.$lastBranch
43400 49 6e 64 65 78 20 3d 20 24 69 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 Index.=.$i;.$lastBranchOffset.=.
43420 24 6f 66 66 73 65 74 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a $offset;.$lastLevel.=.$l;.}.}.}.
43440 0a 69 66 20 28 24 6c 61 73 74 4c 69 74 65 72 61 6c 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 .if.($lastLiteral).{.unset($this
43460 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c ->branches[$lastBranchIndex][sel
43480 66 3a 3a 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 5b 24 6c 61 73 74 42 72 61 6e 63 68 4f f::BRANCH_LITERALS][$lastBranchO
434a0 66 66 73 65 74 5d 29 3b 0a 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 62 72 61 ffset]);.array_values($this->bra
434c0 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 nches[$lastBranchIndex][self::BR
434e0 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 73 74 ANCH_LITERALS]);..$level.=.$last
43500 4c 65 76 65 6c 3b 0a 24 74 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 Level;.$this->revert($level);..$
43520 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 52 65 61 73 why.=.$this->decisions->lastReas
43540 6f 6e 28 29 3b 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 on();..$oLevel.=.$level;.$level.
43560 3d 20 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 =.$this->setPropagateLearn($leve
43580 6c 2c 20 24 6c 61 73 74 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 l,.$lastLiteral,.$disableRules,.
435a0 24 77 68 79 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 $why);..if.($level.==.0).{.retur
435c0 6e 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a n;.}..continue;.}.}..break;.}.}.
435e0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
43600 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 poser\DependencyResolver;..use.C
43620 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c omposer\Package\LinkConstraint\L
43640 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 inkConstraintInterface;.....clas
43660 73 20 52 65 71 75 65 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f s.Request.{.protected.$jobs;.pro
43680 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f tected.$pool;..public.function._
436a0 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e _construct(Pool.$pool).{.$this->
436c0 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 72 61 pool.=.$pool;.$this->jobs.=.arra
436e0 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 y();.}..public.function.install(
43700 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 $packageName,.LinkConstraintInte
43720 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 rface.$constraint.=.null).{.$thi
43740 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c s->addJob($packageName,.'install
43760 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ',.$constraint);.}..public.funct
43780 69 6f 6e 20 75 70 64 61 74 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e ion.update($packageName,.LinkCon
437a0 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e straintInterface.$constraint.=.n
437c0 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d ull).{.$this->addJob($packageNam
437e0 65 2c 20 27 75 70 64 61 74 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 e,.'update',.$constraint);.}..pu
43800 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 4e 61 6d blic.function.remove($packageNam
43820 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 e,.LinkConstraintInterface.$cons
43840 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 traint.=.null).{.$this->addJob($
43860 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 72 65 6d 6f 76 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 packageName,.'remove',.$constrai
43880 6e 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f nt);.}..protected.function.addJo
438a0 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6d 64 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 b($packageName,.$cmd,.LinkConstr
438c0 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c aintInterface.$constraint.=.null
438e0 29 0a 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 ).{.$packageName.=.strtolower($p
43900 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e ackageName);.$packages.=.$this->
43920 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c pool->whatProvides($packageName,
43940 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 .$constraint);..$this->jobs[].=.
43960 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 2c 0a array(.'packages'.=>.$packages,.
43980 27 63 6d 64 27 20 3d 3e 20 24 63 6d 64 2c 0a 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 20 3d 3e 20 'cmd'.=>.$cmd,.'packageName'.=>.
439a0 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 27 63 6f 6e 73 74 72 61 69 6e 74 27 20 3d 3e 20 24 63 $packageName,.'constraint'.=>.$c
439c0 6f 6e 73 74 72 61 69 6e 74 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e onstraint,.);.}..public.function
439e0 20 75 70 64 61 74 65 41 6c 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 .updateAll().{.$this->jobs[].=.a
43a00 72 72 61 79 28 27 63 6d 64 27 20 3d 3e 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 2c 20 27 70 61 63 rray('cmd'.=>.'update-all',.'pac
43a20 6b 61 67 65 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 kages'.=>.array());.}..public.fu
43a40 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getJobs().{.return.$this-
43a60 3e 6a 6f 62 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 >jobs;.}.}.<?php............name
43a80 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 space.Composer\DependencyResolve
43aa0 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 62 6c 65 6d 0a 7b 0a 0a 0a 0a 0a 70 72 6f r;.......class.Problem.{.....pro
43ac0 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 53 65 65 6e 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 tected.$reasonSeen;......protect
43ae0 65 64 20 24 72 65 61 73 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 ed.$reasons.=.array();..protecte
43b00 64 20 24 73 65 63 74 69 6f 6e 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e d.$section.=.0;.......public.fun
43b20 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 ction.addRule(Rule.$rule).{.$thi
43b40 73 2d 3e 61 64 64 52 65 61 73 6f 6e 28 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 2c 20 61 72 72 s->addReason($rule->getId(),.arr
43b60 61 79 28 0a 27 72 75 6c 65 27 20 3d 3e 20 24 72 75 6c 65 2c 0a 27 6a 6f 62 27 20 3d 3e 20 24 72 ay(.'rule'.=>.$rule,.'job'.=>.$r
43b80 75 6c 65 2d 3e 67 65 74 4a 6f 62 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ule->getJob(),.));.}.......publi
43ba0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getReasons().{.return
43bc0 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$this->reasons;.}.......public.
43be0 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 61 72 72 61 79 20 24 function.getPrettyString(array.$
43c00 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 72 65 61 73 6f installedMap.=.array()).{.$reaso
43c20 6e 73 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 ns.=.call_user_func_array('array
43c40 5f 6d 65 72 67 65 27 2c 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 _merge',.array_reverse($this->re
43c60 61 73 6f 6e 73 29 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 72 65 61 73 6f 6e 73 29 20 3d 3d asons));..if.(count($reasons).==
43c80 3d 20 31 29 20 7b 0a 72 65 73 65 74 28 24 72 65 61 73 6f 6e 73 29 3b 0a 24 72 65 61 73 6f 6e 20 =.1).{.reset($reasons);.$reason.
43ca0 3d 20 63 75 72 72 65 6e 74 28 24 72 65 61 73 6f 6e 73 29 3b 0a 0a 24 72 75 6c 65 20 3d 20 24 72 =.current($reasons);..$rule.=.$r
43cc0 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 3b 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a eason['rule'];.$job.=.$reason['j
43ce0 6f 62 27 5d 3b 0a 0a 69 66 20 28 24 6a 6f 62 20 26 26 20 24 6a 6f 62 5b 27 63 6d 64 27 5d 20 3d ob'];..if.($job.&&.$job['cmd'].=
43d00 3d 3d 20 27 69 6e 73 74 61 6c 6c 27 20 26 26 20 65 6d 70 74 79 28 24 6a 6f 62 5b 27 70 61 63 6b ==.'install'.&&.empty($job['pack
43d20 61 67 65 73 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 ages'])).{...if.(0.===.stripos($
43d40 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 27 65 78 74 2d 27 29 29 20 7b 0a 24 job['packageName'],.'ext-')).{.$
43d60 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d ext.=.substr($job['packageName']
43d80 2c 20 34 29 3b 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 ,.4);.$error.=.extension_loaded(
43da0 24 65 78 74 29 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 28 $ext).?.'has.the.wrong.version.(
43dc0 27 2e 70 68 70 76 65 72 73 69 6f 6e 28 24 65 78 74 29 2e 27 29 20 69 6e 73 74 61 6c 6c 65 64 27 '.phpversion($ext).').installed'
43de0 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 27 .:.'is.missing.from.your.system'
43e00 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 ;..return."\n....-.The.requested
43e20 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 .PHP.extension.".$job['packageNa
43e40 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f me'].$this->constraintToText($jo
43e60 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b b['constraint']).'.'.$error.'.';
43e80 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 .}..return."\n....-.The.requeste
43ea0 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e d.package.".$job['packageName'].
43ec0 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f $this->constraintToText($job['co
43ee0 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 nstraint']).'.could.not.be.found
43f00 2e 27 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 .';.}.}..$messages.=.array();..f
43f20 6f 72 65 61 63 68 20 28 24 72 65 61 73 6f 6e 73 20 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 0a oreach.($reasons.as.$reason).{..
43f40 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 3b 0a 24 6a 6f 62 20 3d 20 $rule.=.$reason['rule'];.$job.=.
43f60 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d 3b 0a 0a 69 66 20 28 24 6a 6f 62 29 20 7b 0a 24 6d 65 $reason['job'];..if.($job).{.$me
43f80 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 ssages[].=.$this->jobToText($job
43fa0 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 20 );.}.elseif.($rule).{.if.($rule.
43fc0 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d instanceof.Rule).{.$messages[].=
43fe0 20 24 72 75 6c 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 69 6e 73 74 61 6c 6c .$rule->getPrettyString($install
44000 65 64 4d 61 70 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 22 edMap);.}.}.}..return."\n....-."
44020 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 2d 20 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b .implode("\n....-.",.$messages);
44040 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 .}........protected.function.add
44060 52 65 61 73 6f 6e 28 24 69 64 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 Reason($id,.$reason).{.if.(!isse
44080 74 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e 5b 24 69 64 5d 29 29 20 7b 0a 24 74 68 t($this->reasonSeen[$id])).{.$th
440a0 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e 5b 24 69 64 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 is->reasonSeen[$id].=.true;.$thi
440c0 73 2d 3e 72 65 61 73 6f 6e 73 5b 24 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 5d 5b 5d 20 3d 20 24 s->reasons[$this->section][].=.$
440e0 72 65 61 73 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 reason;.}.}..public.function.nex
44100 74 53 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 2b 2b 3b 0a 7d tSection().{.$this->section++;.}
44120 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 62 54 6f ........protected.function.jobTo
44140 54 65 78 74 28 24 6a 6f 62 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d Text($job).{.switch.($job['cmd']
44160 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 ).{.case.'install':.if.(!$job['p
44180 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 4e 6f 20 70 61 63 6b 61 67 65 20 ackages']).{.return.'No.package.
441a0 66 6f 75 6e 64 20 74 6f 20 73 61 74 69 73 66 79 20 69 6e 73 74 61 6c 6c 20 72 65 71 75 65 73 74 found.to.satisfy.install.request
441c0 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 .for.'.$job['packageName'].$this
441e0 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 ->constraintToText($job['constra
44200 69 6e 74 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 int']);.}..return.'Installation.
44220 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 request.for.'.$job['packageName'
44240 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 ].$this->constraintToText($job['
44260 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 constraint']).'.->.satisfiable.b
44280 79 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 6a 6f 62 5b 27 y.'.$this->getPackageList($job['
442a0 70 61 63 6b 61 67 65 73 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 75 70 64 61 74 65 27 3a 0a packages']).'.';.case.'update':.
442c0 72 65 74 75 72 6e 20 27 55 70 64 61 74 65 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f return.'Update.request.for.'.$jo
442e0 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 b['packageName'].$this->constrai
44300 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 2e 27 ntToText($job['constraint']).'.'
44320 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 72 65 74 75 72 6e 20 27 52 65 6d 6f 76 61 6c ;.case.'remove':.return.'Removal
44340 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 .request.for.'.$job['packageName
44360 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b '].$this->constraintToText($job[
44380 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 4a 6f 'constraint']).'';.}..return.'Jo
443a0 62 28 63 6d 64 3d 27 2e 24 6a 6f 62 5b 27 63 6d 64 27 5d 2e 27 2c 20 74 61 72 67 65 74 3d 27 2e b(cmd='.$job['cmd'].',.target='.
443c0 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 2c 20 70 61 63 6b 61 67 65 73 3d $job['packageName'].',.packages=
443e0 5b 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 6a 6f 62 5b 27 70 ['.$this->getPackageList($job['p
44400 61 63 6b 61 67 65 73 27 5d 29 2e 27 5d 29 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ackages']).'])';.}..protected.fu
44420 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 nction.getPackageList($packages)
44440 0a 7b 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 75 6e .{.return.implode(',.',.array_un
44460 69 71 75 65 28 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 63 6b 61 67 ique(array_map(function.($packag
44480 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 e).{.return.$package->getPrettyS
444a0 74 72 69 6e 67 28 29 3b 0a 7d 2c 0a 24 70 61 63 6b 61 67 65 73 0a 29 29 29 3b 0a 7d 0a 0a 0a 0a tring();.},.$packages.)));.}....
444c0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e ....protected.function.constrain
444e0 74 54 6f 54 65 78 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 tToText($constraint).{.return.($
44500 63 6f 6e 73 74 72 61 69 6e 74 29 20 3f 20 27 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 constraint).?.'.'.$constraint->g
44520 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 20 3a 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 etPrettyString().:.'';.}.}.<?php
44540 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
44560 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c ependencyResolver;............cl
44580 61 73 73 20 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 ass.RuleWatchGraph.{.protected.$
445a0 77 61 74 63 68 43 68 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a watchChains.=.array();..........
445c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 28 52 75 6c 65 57 ....public.function.insert(RuleW
445e0 61 74 63 68 4e 6f 64 65 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 24 6e 6f 64 65 2d 3e 67 65 74 atchNode.$node).{.if.($node->get
44600 52 75 6c 65 28 29 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b Rule()->isAssertion()).{.return;
44620 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 24 6e 6f 64 65 2d 3e 77 61 74 63 68 31 .}..foreach.(array($node->watch1
44640 2c 20 24 6e 6f 64 65 2d 3e 77 61 74 63 68 32 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a ,.$node->watch2).as.$literal).{.
44660 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c if.(!isset($this->watchChains[$l
44680 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 iteral])).{.$this->watchChains[$
446a0 6c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d literal].=.new.RuleWatchChain;.}
446c0 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 2d 3e ..$this->watchChains[$literal]->
446e0 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a unshift($node);.}.}.............
44700 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 ............public.function.prop
44720 61 67 61 74 65 4c 69 74 65 72 61 6c 28 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 2c 20 24 6c agateLiteral($decidedLiteral,.$l
44740 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 0a 20 0a 20 0a 20 24 6c 69 74 65 72 evel,.$decisions).{.......$liter
44760 61 6c 20 3d 20 2d 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 3b 0a 0a 69 66 20 28 21 69 73 73 al.=.-$decidedLiteral;..if.(!iss
44780 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 et($this->watchChains[$literal])
447a0 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 63 68 61 69 6e 20 3d 20 24 74 68 ).{.return.null;.}..$chain.=.$th
447c0 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 3b 0a 0a 24 63 68 61 is->watchChains[$literal];..$cha
447e0 69 6e 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 77 68 69 6c 65 20 28 24 63 68 61 69 6e 2d 3e 76 61 6c in->rewind();.while.($chain->val
44800 69 64 28 29 29 20 7b 0a 24 6e 6f 64 65 20 3d 20 24 63 68 61 69 6e 2d 3e 63 75 72 72 65 6e 74 28 id()).{.$node.=.$chain->current(
44820 29 3b 0a 24 6f 74 68 65 72 57 61 74 63 68 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 4f 74 68 65 72 );.$otherWatch.=.$node->getOther
44840 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 6e 6f 64 65 2d 3e 67 65 Watch($literal);..if.(!$node->ge
44860 74 52 75 6c 65 28 29 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 26 26 20 21 24 64 65 63 69 73 tRule()->isDisabled().&&.!$decis
44880 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 24 72 ions->satisfy($otherWatch)).{.$r
448a0 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e uleLiterals.=.$node->getRule()->
448c0 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 getLiterals();..$alternativeLite
448e0 72 61 6c 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 72 75 6c 65 4c 69 74 65 72 61 6c rals.=.array_filter($ruleLiteral
44900 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 20 75 73 65 20 28 s,.function.($ruleLiteral).use.(
44920 24 6c 69 74 65 72 61 6c 2c 20 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 64 65 63 69 73 69 6f 6e $literal,.$otherWatch,.$decision
44940 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 20 21 3d 3d 20 24 72 75 6c 65 4c 69 s).{.return.$literal.!==.$ruleLi
44960 74 65 72 61 6c 20 26 26 0a 24 6f 74 68 65 72 57 61 74 63 68 20 21 3d 3d 20 24 72 75 6c 65 4c 69 teral.&&.$otherWatch.!==.$ruleLi
44980 74 65 72 61 6c 20 26 26 0a 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 teral.&&.!$decisions->conflict($
449a0 72 75 6c 65 4c 69 74 65 72 61 6c 29 3b 0a 7d 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 ruleLiteral);.});..if.($alternat
449c0 69 76 65 4c 69 74 65 72 61 6c 73 29 20 7b 0a 72 65 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 76 iveLiterals).{.reset($alternativ
449e0 65 4c 69 74 65 72 61 6c 73 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 6c 69 eLiterals);.$this->moveWatch($li
44a00 74 65 72 61 6c 2c 20 63 75 72 72 65 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 teral,.current($alternativeLiter
44a20 61 6c 73 29 2c 20 24 6e 6f 64 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 als),.$node);.continue;.}..if.($
44a40 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 6f 74 68 65 72 57 61 74 63 68 29 decisions->conflict($otherWatch)
44a60 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 3b 0a 7d 0a 0a ).{.return.$node->getRule();.}..
44a80 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6f 74 68 65 72 57 61 74 63 68 2c 20 $decisions->decide($otherWatch,.
44aa0 24 6c 65 76 65 6c 2c 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 29 3b 0a 7d 0a 0a 24 63 $level,.$node->getRule());.}..$c
44ac0 68 61 69 6e 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a hain->next();.}..return.null;.}.
44ae0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 ..........protected.function.mov
44b00 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 2c eWatch($fromLiteral,.$toLiteral,
44b20 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 .$node).{.if.(!isset($this->watc
44b40 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 hChains[$toLiteral])).{.$this->w
44b60 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c atchChains[$toLiteral].=.new.Rul
44b80 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d 0a 0a 24 6e 6f 64 65 2d 3e 6d 6f 76 65 57 61 74 63 68 eWatchChain;.}..$node->moveWatch
44ba0 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 29 3b 0a 24 74 68 69 ($fromLiteral,.$toLiteral);.$thi
44bc0 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 66 72 6f 6d 4c 69 74 65 72 61 6c 5d 2d 3e 72 65 s->watchChains[$fromLiteral]->re
44be0 6d 6f 76 65 28 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 move();.$this->watchChains[$toLi
44c00 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 teral]->unshift($node);.}.}.<?ph
44c20 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b p............namespace.Composer;
44c40 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 ..use.Composer\Json\JsonFile;.us
44c60 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 e.Composer\IO\IOInterface;.use.C
44c80 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 omposer\Repository\ComposerRepos
44ca0 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 itory;.use.Composer\Repository\R
44cc0 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 epositoryManager;.use.Composer\U
44ce0 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 til\ProcessExecutor;.use.Compose
44d00 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a r\Util\RemoteFilesystem;........
44d20 0a 63 6c 61 73 73 20 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 .class.Factory.{....public.stati
44d40 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 0a 7b 0a 0a 20 69 66 c.function.createConfig().{...if
44d60 20 28 21 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 .(!$home.=.getenv('COMPOSER_HOME
44d80 27 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 ')).{.if.(defined('PHP_WINDOWS_V
44da0 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 ERSION_MAJOR')).{.$home.=.getenv
44dc0 28 27 41 50 50 44 41 54 41 27 29 20 2e 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a 7d 20 65 6c 73 ('APPDATA')...'/Composer';.}.els
44de0 65 20 7b 0a 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 20 2e 20 27 2f 2e e.{.$home.=.getenv('HOME')...'/.
44e00 63 6f 6d 70 6f 73 65 72 27 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 composer';.}.}....if.(!file_exis
44e20 74 73 28 24 68 6f 6d 65 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 29 29 20 7b 0a 69 66 20 28 ts($home...'/.htaccess')).{.if.(
44e40 21 69 73 5f 64 69 72 28 24 68 6f 6d 65 29 29 20 7b 0a 40 6d 6b 64 69 72 28 24 68 6f 6d 65 2c 20 !is_dir($home)).{.@mkdir($home,.
44e60 30 37 37 37 2c 20 74 72 75 65 29 3b 0a 7d 0a 40 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 0777,.true);.}.@file_put_content
44e80 73 28 24 68 6f 6d 65 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 2c 20 27 44 65 6e 79 20 66 72 s($home...'/.htaccess',.'Deny.fr
44ea0 6f 6d 20 61 6c 6c 27 29 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 6e 65 77 20 43 6f 6e 66 69 om.all');.}..$config.=.new.Confi
44ec0 67 28 29 3b 0a 0a 0a 20 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f g();....$config->merge(array('co
44ee0 6e 66 69 67 27 20 3d 3e 20 61 72 72 61 79 28 27 68 6f 6d 65 27 20 3d 3e 20 24 68 6f 6d 65 29 29 nfig'.=>.array('home'.=>.$home))
44f00 29 3b 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 68 6f 6d 65 2e 27 );..$file.=.new.JsonFile($home.'
44f20 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 3b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 65 78 69 73 74 /config.json');.if.($file->exist
44f40 73 28 29 29 20 7b 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 66 69 6c 65 2d 3e 72 65 61 s()).{.$config->merge($file->rea
44f60 64 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c d());.}..return.$config;.}..publ
44f80 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 0a 7b 0a ic.function.getComposerFile().{.
44fa0 72 65 74 75 72 6e 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 27 29 20 3f 3a 20 27 63 6f return.getenv('COMPOSER').?:.'co
44fc0 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 mposer.json';.}..public.static.f
44fe0 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 unction.createDefaultRepositorie
45000 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 2c 20 43 6f 6e 66 69 67 s(IOInterface.$io.=.null,.Config
45020 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 .$config.=.null,.RepositoryManag
45040 65 72 20 24 72 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 er.$rm.=.null).{.$repos.=.array(
45060 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 73 74 );..if.(!$config).{.$config.=.st
45080 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 7d 0a 69 66 20 28 21 24 72 6d atic::createConfig();.}.if.(!$rm
450a0 29 20 7b 0a 69 66 20 28 21 24 69 6f 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c ).{.if.(!$io).{.throw.new.\Inval
450c0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 66 75 6e 63 74 69 idArgumentException('This.functi
450e0 6f 6e 20 72 65 71 75 69 72 65 73 20 65 69 74 68 65 72 20 61 6e 20 49 4f 49 6e 74 65 72 66 61 63 on.requires.either.an.IOInterfac
45100 65 20 6f 72 20 61 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 27 29 3b 0a 7d 0a 24 66 e.or.a.RepositoryManager');.}.$f
45120 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 73 74 61 74 69 63 3b 0a 24 72 6d 20 3d 20 24 66 61 63 74 actory.=.new.static;.$rm.=.$fact
45140 6f 72 79 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f ory->createRepositoryManager($io
45160 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 2d ,.$config);.}..foreach.($config-
45180 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 >getRepositories().as.$index.=>.
451a0 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 29 29 20 7b $repo).{.if.(!is_array($repo)).{
451c0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 .throw.new.\UnexpectedValueExcep
451e0 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 69 6e 64 65 78 2e 27 20 28 27 2e 6a tion('Repository.'.$index.'.('.j
45200 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f 29 2e 27 29 20 73 68 6f 75 6c 64 20 62 65 20 61 son_encode($repo).').should.be.a
45220 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 72 65 70 6f 29 2e 27 20 67 69 76 65 n.array,.'.gettype($repo).'.give
45240 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 70 6f 5b 27 74 79 70 65 27 5d 29 n');.}.if.(!isset($repo['type'])
45260 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 ).{.throw.new.\UnexpectedValueEx
45280 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 69 6e 64 65 78 2e 27 20 28 ception('Repository.'.$index.'.(
452a0 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f 29 2e 27 29 20 6d 75 73 74 20 68 61 76 '.json_encode($repo).').must.hav
452c0 65 20 61 20 74 79 70 65 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 24 6e 61 6d 65 20 3d 20 69 73 e.a.type.defined');.}.$name.=.is
452e0 5f 69 6e 74 28 24 69 6e 64 65 78 29 20 26 26 20 69 73 73 65 74 28 24 72 65 70 6f 5b 27 75 72 6c _int($index).&&.isset($repo['url
45300 27 5d 29 20 3f 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d ']).?.preg_replace('{^https?://}
45320 69 27 2c 20 27 27 2c 20 24 72 65 70 6f 5b 27 75 72 6c 27 5d 29 20 3a 20 24 69 6e 64 65 78 3b 0a i',.'',.$repo['url']).:.$index;.
45340 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 72 65 70 6f 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 while.(isset($repos[$name])).{.$
45360 6e 61 6d 65 20 2e 3d 20 27 32 27 3b 0a 7d 0a 24 72 65 70 6f 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 name..=.'2';.}.$repos[$name].=.$
45380 72 6d 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 5b 27 74 79 70 65 rm->createRepository($repo['type
453a0 27 5d 2c 20 24 72 65 70 6f 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 73 3b 0a 7d 0a '],.$repo);.}..return.$repos;.}.
453c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 ..........public.function.create
453e0 43 6f 6d 70 6f 73 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 6c 6f 63 61 6c Composer(IOInterface.$io,.$local
45400 43 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 Config.=.null).{...if.(null.===.
45420 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 20 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 24 $localConfig).{.$localConfig.=.$
45440 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 this->getComposerFile();.}..if.(
45460 69 73 5f 73 74 72 69 6e 67 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 29 20 7b 0a 24 63 6f 6d 70 is_string($localConfig)).{.$comp
45480 6f 73 65 72 46 69 6c 65 20 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 24 66 69 6c 65 20 3d oserFile.=.$localConfig;.$file.=
454a0 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 2c 20 6e 65 77 20 .new.JsonFile($localConfig,.new.
454c0 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 3b 0a 0a 69 66 20 28 21 24 66 RemoteFilesystem($io));..if.(!$f
454e0 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 ile->exists()).{.if.($localConfi
45500 67 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 20 7b 0a 24 6d 65 73 73 61 67 g.===.'composer.json').{.$messag
45520 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 63 e.=.'Composer.could.not.find.a.c
45540 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 6e 20 27 2e 67 65 74 63 77 64 28 29 3b omposer.json.file.in.'.getcwd();
45560 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 20 63 .}.else.{.$message.=.'Composer.c
45580 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 74 68 65 20 63 6f 6e 66 69 67 20 66 69 6c 65 3a 20 27 ould.not.find.the.config.file:.'
455a0 2e 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 7d 0a 24 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 3d .$localConfig;.}.$instructions.=
455c0 20 27 54 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 70 72 6f 6a 65 63 74 2c 20 70 6c 65 61 73 .'To.initialize.a.project,.pleas
455e0 65 20 63 72 65 61 74 65 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 61 73 e.create.a.composer.json.file.as
45600 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 .described.in.the.http://getcomp
45620 6f 73 65 72 2e 6f 72 67 2f 20 22 47 65 74 74 69 6e 67 20 53 74 61 72 74 65 64 22 20 73 65 63 74 oser.org/."Getting.Started".sect
45640 69 6f 6e 27 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 ion';.throw.new.\InvalidArgument
45660 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2e 50 48 50 5f 45 4f 4c 2e 24 69 6e 73 74 Exception($message.PHP_EOL.$inst
45680 72 75 63 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 ructions);.}..$file->validateSch
456a0 65 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 6f 63 61 ema(JsonFile::LAX_SCHEMA);.$loca
456c0 6c 43 6f 6e 66 69 67 20 3d 20 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 20 24 63 lConfig.=.$file->read();.}....$c
456e0 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a onfig.=.static::createConfig();.
45700 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 0a 24 $config->merge($localConfig);..$
45720 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 vendorDir.=.$config->get('vendor
45740 2d 64 69 72 27 29 3b 0a 24 62 69 6e 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 -dir');.$binDir.=.$config->get('
45760 62 69 6e 2d 64 69 72 27 29 3b 0a 0a 0a 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 73 bin-dir');....ProcessExecutor::s
45780 65 74 54 69 6d 65 6f 75 74 28 28 69 6e 74 29 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 etTimeout((int).$config->get('pr
457a0 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 29 29 3b 0a 0a 0a 20 24 72 6d 20 3d 20 24 74 68 69 73 ocess-timeout'));....$rm.=.$this
457c0 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 ->createRepositoryManager($io,.$
457e0 63 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 config);....$this->addLocalRepos
45800 69 74 6f 72 79 28 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 0a 20 24 6c 6f 61 64 itory($rm,.$vendorDir);....$load
45820 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 52 6f 6f 74 50 61 63 6b er.=.new.Package\Loader\RootPack
45840 61 67 65 4c 6f 61 64 65 72 28 24 72 6d 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 70 61 63 6b 61 67 ageLoader($rm,.$config);.$packag
45860 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b e.=.$loader->load($localConfig);
45880 0a 0a 0a 20 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d ....$dm.=.$this->createDownloadM
458a0 61 6e 61 67 65 72 28 24 69 6f 29 3b 0a 0a 0a 20 24 69 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 anager($io);....$im.=.$this->cre
458c0 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 63 6f 6e 66 69 67 29 3b ateInstallationManager($config);
458e0 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 28 29 3b 0a ....$composer.=.new.Composer();.
45900 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 43 6f 6e 66 69 67 28 24 63 6f 6e 66 69 67 29 3b 0a 24 $composer->setConfig($config);.$
45920 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a composer->setPackage($package);.
45940 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 $composer->setRepositoryManager(
45960 24 72 6d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 $rm);.$composer->setDownloadMana
45980 67 65 72 28 24 64 6d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 ger($dm);.$composer->setInstalla
459a0 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 69 6d 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 72 65 61 tionManager($im);....$this->crea
459c0 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 24 69 6d 2c 20 24 63 6f 6d 70 6f 73 teDefaultInstallers($im,.$compos
459e0 65 72 2c 20 24 69 6f 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 75 72 67 65 50 61 63 6b 61 67 65 er,.$io);....$this->purgePackage
45a00 73 28 24 72 6d 2c 20 24 69 6d 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 6f s($rm,.$im);....if.(isset($compo
45a20 73 65 72 46 69 6c 65 29 29 20 7b 0a 24 6c 6f 63 6b 46 69 6c 65 20 3d 20 22 6a 73 6f 6e 22 20 3d serFile)).{.$lockFile.=."json".=
45a40 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 2c 20 50 41 54 48 49 ==.pathinfo($composerFile,.PATHI
45a60 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 0a 3f 20 73 75 62 73 74 72 28 24 63 6f 6d 70 6f 73 65 NFO_EXTENSION).?.substr($compose
45a80 72 46 69 6c 65 2c 20 30 2c 20 2d 34 29 2e 27 6c 6f 63 6b 27 0a 3a 20 24 63 6f 6d 70 6f 73 65 72 rFile,.0,.-4).'lock'.:.$composer
45aa0 46 69 6c 65 20 2e 20 27 2e 6c 6f 63 6b 27 3b 0a 24 6c 6f 63 6b 65 72 20 3d 20 6e 65 77 20 50 61 File...'.lock';.$locker.=.new.Pa
45ac0 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 6b 46 ckage\Locker(new.JsonFile($lockF
45ae0 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 2c ile,.new.RemoteFilesystem($io)),
45b00 20 24 72 6d 2c 20 24 69 6d 2c 20 6d 64 35 5f 66 69 6c 65 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c .$rm,.$im,.md5_file($composerFil
45b20 65 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 4c 6f 63 6b 65 72 28 24 6c 6f 63 6b 65 e));.$composer->setLocker($locke
45b40 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a r);.}..return.$composer;.}......
45b60 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 70 6f 73 69 .protected.function.createReposi
45b80 74 6f 72 79 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e toryManager(IOInterface.$io,.Con
45ba0 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 72 6d 20 3d 20 6e 65 77 20 52 65 70 6f 73 69 74 fig.$config).{.$rm.=.new.Reposit
45bc0 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 72 6d 2d 3e 73 oryManager($io,.$config);.$rm->s
45be0 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 63 6f 6d 70 6f 73 65 72 27 2c 20 27 43 etRepositoryClass('composer',.'C
45c00 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 omposer\Repository\ComposerRepos
45c20 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 itory');.$rm->setRepositoryClass
45c40 28 27 76 63 73 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 ('vcs',.'Composer\Repository\Vcs
45c60 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 Repository');.$rm->setRepository
45c80 43 6c 61 73 73 28 27 70 61 63 6b 61 67 65 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 Class('package',.'Composer\Repos
45ca0 69 74 6f 72 79 5c 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e itory\PackageRepository');.$rm->
45cc0 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 65 61 72 27 2c 20 27 43 6f 6d 70 setRepositoryClass('pear',.'Comp
45ce0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 27 29 oser\Repository\PearRepository')
45d00 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 67 69 74 27 2c ;.$rm->setRepositoryClass('git',
45d20 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 .'Composer\Repository\VcsReposit
45d40 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 ory');.$rm->setRepositoryClass('
45d60 73 76 6e 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 svn',.'Composer\Repository\VcsRe
45d80 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c pository');.$rm->setRepositoryCl
45da0 61 73 73 28 27 68 67 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 ass('hg',.'Composer\Repository\V
45dc0 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 6d 3b 0a 7d 0a 0a csRepository');..return.$rm;.}..
45de0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 63 61 6c 52 ....protected.function.addLocalR
45e00 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c epository(RepositoryManager.$rm,
45e20 20 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f .$vendorDir).{.$rm->setLocalRepo
45e40 73 69 74 6f 72 79 28 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 sitory(new.Repository\InstalledF
45e60 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 ilesystemRepository(new.JsonFile
45e80 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 ($vendorDir.'/composer/installed
45ea0 2e 6a 73 6f 6e 27 29 29 29 3b 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 .json')));.$rm->setLocalDevRepos
45ec0 69 74 6f 72 79 28 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 itory(new.Repository\InstalledFi
45ee0 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 lesystemRepository(new.JsonFile(
45f00 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 5f $vendorDir.'/composer/installed_
45f20 64 65 76 2e 6a 73 6f 6e 27 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 dev.json')));.}......public.func
45f40 74 69 6f 6e 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 tion.createDownloadManager(IOInt
45f60 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 erface.$io).{.$dm.=.new.Download
45f80 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f er\DownloadManager();.$dm->setDo
45fa0 77 6e 6c 6f 61 64 65 72 28 27 67 69 74 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 wnloader('git',.new.Downloader\G
45fc0 69 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e itDownloader($io));.$dm->setDown
45fe0 6c 6f 61 64 65 72 28 27 73 76 6e 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 53 76 6e loader('svn',.new.Downloader\Svn
46000 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f Downloader($io));.$dm->setDownlo
46020 61 64 65 72 28 27 68 67 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 48 67 44 6f 77 6e ader('hg',.new.Downloader\HgDown
46040 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 loader($io));.$dm->setDownloader
46060 28 27 7a 69 70 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 5a 69 70 44 6f 77 6e 6c 6f ('zip',.new.Downloader\ZipDownlo
46080 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 ader($io));.$dm->setDownloader('
460a0 74 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 61 72 44 6f 77 6e 6c 6f 61 64 tar',.new.Downloader\TarDownload
460c0 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 70 68 er($io));.$dm->setDownloader('ph
460e0 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 68 61 72 44 6f 77 6e 6c 6f 61 64 ar',.new.Downloader\PharDownload
46100 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 66 69 er($io));.$dm->setDownloader('fi
46120 6c 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 le',.new.Downloader\FileDownload
46140 65 72 28 24 69 6f 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 er($io));..return.$dm;.}......pr
46160 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 otected.function.createInstallat
46180 69 6f 6e 4d 61 6e 61 67 65 72 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 ionManager(Config.$config).{.ret
461a0 75 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 urn.new.Installer\InstallationMa
461c0 6e 61 67 65 72 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 nager($config->get('vendor-dir')
461e0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 );.}.......protected.function.cr
46200 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 49 6e 73 74 61 6c 6c 65 72 5c eateDefaultInstallers(Installer\
46220 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 2c 20 43 6f 6d 70 6f 73 65 InstallationManager.$im,.Compose
46240 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a r.$composer,.IOInterface.$io).{.
46260 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c $im->addInstaller(new.Installer\
46280 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c LibraryInstaller($io,.$composer,
462a0 20 6e 75 6c 6c 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 .null));.$im->addInstaller(new.I
462c0 6e 73 74 61 6c 6c 65 72 5c 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d nstaller\PearInstaller($io,.$com
462e0 70 6f 73 65 72 2c 20 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 29 3b 0a 24 69 6d 2d 3e 61 64 poser,.'pear-library'));.$im->ad
46300 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c dInstaller(new.Installer\Install
46320 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 69 erInstaller($io,.$composer));.$i
46340 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 4d 65 m->addInstaller(new.Installer\Me
46360 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 29 29 3b 0a 7d 0a 0a 0a 0a 0a tapackageInstaller($io));.}.....
46380 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 75 72 67 65 50 61 63 6b 61 67 65 .protected.function.purgePackage
463a0 73 28 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 s(Repository\RepositoryManager.$
463c0 72 6d 2c 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 rm,.Installer\InstallationManage
463e0 72 20 24 69 6d 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 r.$im).{.foreach.($rm->getLocalR
46400 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 0a 66 6f 72 65 61 epositories().as.$repo).{..forea
46420 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 ch.($repo->getPackages().as.$pac
46440 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 24 69 6d 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 kage).{.if.(!$im->isPackageInsta
46460 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e lled($repo,.$package)).{.$repo->
46480 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d removePackage($package);.}.}.}.}
464a0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 ........public.static.function.c
464c0 72 65 61 74 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 20 3d reate(IOInterface.$io,.$config.=
464e0 20 6e 75 6c 6c 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 73 74 61 74 69 63 28 29 .null).{.$factory.=.new.static()
46500 3b 0a 0a 72 65 74 75 72 6e 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 43 6f 6d 70 6f 73 ;..return.$factory->createCompos
46520 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a er($io,.$config);.}.}.<?php.....
46540 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a .......namespace.Composer\Util;.
46560 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 75 62 6c 69 63 20 66 75 ....class.Filesystem.{.public.fu
46580 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 nction.removeDirectory($director
465a0 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a y).{.if.(!is_dir($directory)).{.
465c0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 return.true;.}..if.(defined('PHP
465e0 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6d 64 _WINDOWS_VERSION_BUILD')).{.$cmd
46600 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 64 69 72 20 2f 53 20 2f 51 20 25 73 27 2c 20 65 73 63 .=.sprintf('rmdir./S./Q.%s',.esc
46620 61 70 65 73 68 65 6c 6c 61 72 67 28 72 65 61 6c 70 61 74 68 28 24 64 69 72 65 63 74 6f 72 79 29 apeshellarg(realpath($directory)
46640 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 20 ));.}.else.{.$cmd.=.sprintf('rm.
46660 2d 72 66 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 64 69 72 65 63 74 6f -rf.%s',.escapeshellarg($directo
46680 72 79 29 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f ry));.}..$result.=.$this->getPro
466a0 63 65 73 73 28 29 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 29 20 3d 3d 3d 20 30 3b 0a 0a 0a 20 cess()->execute($cmd).===.0;....
466c0 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c clearstatcache();..return.$resul
466e0 74 20 26 26 20 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 t.&&.!is_dir($directory);.}..pub
46700 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 lic.function.ensureDirectoryExis
46720 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 ts($directory).{.if.(!is_dir($di
46740 72 65 63 74 6f 72 79 29 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 rectory)).{.if.(file_exists($dir
46760 65 63 74 6f 72 79 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 ectory)).{.throw.new.\RuntimeExc
46780 65 70 74 69 6f 6e 28 0a 24 64 69 72 65 63 74 6f 72 79 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 eption(.$directory.'.exists.and.
467a0 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 6d is.not.a.directory.'.);.}.if.(!m
467c0 6b 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a kdir($directory,.0777,.true)).{.
467e0 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 throw.new.\RuntimeException(.$di
46800 72 65 63 74 6f 72 79 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 20 63 6f 75 rectory.'.does.not.exist.and.cou
46820 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a ld.not.be.created.'.);.}.}.}....
46840 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 ......public.function.findShorte
46860 73 74 50 61 74 68 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 stPath($from,.$to,.$directories.
46880 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 =.false).{.if.(!$this->isAbsolut
468a0 65 50 61 74 68 28 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 ePath($from).||.!$this->isAbsolu
468c0 74 65 50 61 74 68 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 tePath($to)).{.throw.new.\Invali
468e0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f dArgumentException(sprintf('$fro
46900 6d 20 28 25 73 29 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f m.(%s).and.$to.(%s).must.be.abso
46920 6c 75 74 65 20 70 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 lute.paths.',.$from,.$to));.}..$
46940 66 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 72 74 72 69 6d 28 73 74 72 74 72 28 24 66 72 6f 6d from.=.lcfirst(rtrim(strtr($from
46960 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 ,.'\\',.'/'),.'/'));.$to.=.lcfir
46980 73 74 28 72 74 72 69 6d 28 73 74 72 74 72 28 24 74 6f 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 st(rtrim(strtr($to,.'\\',.'/'),.
469a0 27 2f 27 29 29 3b 0a 0a 69 66 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 29 20 7b 0a 24 66 72 6f '/'));..if.($directories).{.$fro
469c0 6d 20 2e 3d 20 27 2f 64 75 6d 6d 79 5f 66 69 6c 65 27 3b 0a 7d 0a 0a 69 66 20 28 64 69 72 6e 61 m..=.'/dummy_file';.}..if.(dirna
469e0 6d 65 28 24 66 72 6f 6d 29 20 3d 3d 3d 20 64 69 72 6e 61 6d 65 28 24 74 6f 29 29 20 7b 0a 72 65 me($from).===.dirname($to)).{.re
46a00 74 75 72 6e 20 27 2e 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 74 6f 29 3b 0a 7d 0a 0a 24 63 6f 6d turn.'./'.basename($to);.}..$com
46a20 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 monPath.=.$to;.while.(strpos($fr
46a40 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 21 3d 3d 20 30 20 26 26 20 27 2f 27 20 21 3d om,.$commonPath).!==.0.&&.'/'.!=
46a60 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e =.$commonPath.&&.!preg_match('{^
46a80 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 26 26 20 27 2e [a-z]:/?$}i',.$commonPath).&&.'.
46aa0 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 '.!==.$commonPath).{.$commonPath
46ac0 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c 20 27 .=.strtr(dirname($commonPath),.'
46ae0 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 \\',.'/');.}..if.(0.!==.strpos($
46b00 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 from,.$commonPath).||.'/'.===.$c
46b20 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 27 2e 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 ommonPath.||.'.'.===.$commonPath
46b40 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d ).{.return.$to;.}..$commonPath.=
46b60 20 72 74 72 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a .rtrim($commonPath,.'/')...'/';.
46b80 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 $sourcePathDepth.=.substr_count(
46ba0 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 substr($from,.strlen($commonPath
46bc0 29 29 2c 20 27 2f 27 29 3b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f )),.'/');.$commonPathCode.=.str_
46be0 72 65 70 65 61 74 28 27 2e 2e 2f 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b repeat('../',.$sourcePathDepth);
46c00 0a 0a 72 65 74 75 72 6e 20 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 2e 20 73 75 62 73 ..return.($commonPathCode...subs
46c20 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 29 20 3f 3a tr($to,.strlen($commonPath))).?:
46c40 20 27 2e 2f 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .'./';.}..........public.functio
46c60 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 66 72 6f 6d 2c 20 24 74 n.findShortestPathCode($from,.$t
46c80 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 o,.$directories.=.false).{.if.(!
46ca0 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 66 72 6f 6d 29 20 7c 7c 20 $this->isAbsolutePath($from).||.
46cc0 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 74 6f 29 29 20 7b 0a 74 !$this->isAbsolutePath($to)).{.t
46ce0 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
46d00 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f 6d 20 28 25 73 29 20 61 6e 64 20 24 74 6f 20 28 on(sprintf('$from.(%s).and.$to.(
46d20 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 73 2e 27 2c 20 24 66 %s).must.be.absolute.paths.',.$f
46d40 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 73 rom,.$to));.}..$from.=.lcfirst(s
46d60 74 72 74 72 28 24 66 72 6f 6d 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 3b 0a 24 74 6f 20 3d 20 6c trtr($from,.'\\',.'/'));.$to.=.l
46d80 63 66 69 72 73 74 28 73 74 72 74 72 28 24 74 6f 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 3b 0a 0a cfirst(strtr($to,.'\\',.'/'));..
46da0 69 66 20 28 24 66 72 6f 6d 20 3d 3d 3d 20 24 74 6f 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 if.($from.===.$to).{.return.$dir
46dc0 65 63 74 6f 72 69 65 73 20 3f 20 27 5f 5f 44 49 52 5f 5f 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f ectories.?.'__DIR__'.:.'__FILE__
46de0 27 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 ';.}..$commonPath.=.$to;.while.(
46e00 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 21 3d 3d 20 30 strpos($from,.$commonPath).!==.0
46e20 20 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 .&&.'/'.!==.$commonPath.&&.!preg
46e40 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 _match('{^[a-z]:/?$}i',.$commonP
46e60 61 74 68 29 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 24 ath).&&.'.'.!==.$commonPath).{.$
46e80 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d commonPath.=.strtr(dirname($comm
46ea0 6f 6e 50 61 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d onPath),.'\\',.'/');.}..if.(0.!=
46ec0 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 =.strpos($from,.$commonPath).||.
46ee0 27 2f 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 27 2e 27 20 3d 3d 3d 20 24 '/'.===.$commonPath.||.'.'.===.$
46f00 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 commonPath).{.return.var_export(
46f20 24 74 6f 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 $to,.true);.}..$commonPath.=.rtr
46f40 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 im($commonPath,.'/')...'/';.if.(
46f60 73 74 72 70 6f 73 28 24 74 6f 2c 20 24 66 72 6f 6d 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a strpos($to,.$from.'/').===.0).{.
46f80 72 65 74 75 72 6e 20 27 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 73 return.'__DIR__...'.var_export(s
46fa0 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 66 72 6f 6d 29 29 2c 20 74 72 75 65 29 ubstr($to,.strlen($from)),.true)
46fc0 3b 0a 7d 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 74 72 5f 63 6f ;.}.$sourcePathDepth.=.substr_co
46fe0 75 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e unt(substr($from,.strlen($common
47000 50 61 74 68 29 29 2c 20 27 2f 27 29 20 2b 20 24 64 69 72 65 63 74 6f 72 69 65 73 3b 0a 24 63 6f Path)),.'/').+.$directories;.$co
47020 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 64 69 72 6e 61 mmonPathCode.=.str_repeat('dirna
47040 6d 65 28 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 2e 27 5f 5f 44 49 52 5f 5f me(',.$sourcePathDepth).'__DIR__
47060 27 2e 73 74 72 5f 72 65 70 65 61 74 28 27 29 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 '.str_repeat(')',.$sourcePathDep
47080 74 68 29 3b 0a 24 72 65 6c 54 61 72 67 65 74 20 3d 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 th);.$relTarget.=.substr($to,.st
470a0 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d rlen($commonPath));..return.$com
470c0 6d 6f 6e 50 61 74 68 43 6f 64 65 20 2e 20 28 73 74 72 6c 65 6e 28 24 72 65 6c 54 61 72 67 65 74 monPathCode...(strlen($relTarget
470e0 29 20 3f 20 27 2e 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f 27 20 2e 20 24 72 65 6c 54 ).?.'.'...var_export('/'...$relT
47100 61 72 67 65 74 2c 20 74 72 75 65 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 arget,.true).:.'');.}........pub
47120 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 lic.function.isAbsolutePath($pat
47140 68 29 0a 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 h).{.return.substr($path,.0,.1).
47160 3d 3d 3d 20 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 31 29 20 3d ===.'/'.||.substr($path,.1,.1).=
47180 3d 3d 20 27 3a 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 ==.':';.}..protected.function.ge
471a0 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 65 73 73 45 tProcess().{.return.new.ProcessE
471c0 78 65 63 75 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 xecutor;.}.}.<?php............na
471e0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 53 79 6d 66 mespace.Composer\Util;..use.Symf
47200 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a ony\Component\Process\Process;..
47220 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 0a 7b 0a 70 72 6f 74 65 ...class.ProcessExecutor.{.prote
47240 63 74 65 64 20 73 74 61 74 69 63 20 24 74 69 6d 65 6f 75 74 20 3d 20 33 30 30 3b 0a 0a 70 72 6f cted.static.$timeout.=.300;..pro
47260 74 65 63 74 65 64 20 24 63 61 70 74 75 72 65 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 tected.$captureOutput;.protected
47280 20 24 65 72 72 6f 72 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$errorOutput;...........public.
472a0 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 26 24 6f 75 74 function.execute($command,.&$out
472c0 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 put.=.null,.$cwd.=.null).{.$this
472e0 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 3d 20 63 6f 75 6e 74 28 66 75 6e 63 5f 67 65 74 ->captureOutput.=.count(func_get
47300 5f 61 72 67 73 28 29 29 20 3e 20 31 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 _args()).>.1;.$this->errorOutput
47320 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 .=.null;.$process.=.new.Process(
47340 24 63 6f 6d 6d 61 6e 64 2c 20 24 63 77 64 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 $command,.$cwd,.null,.null,.stat
47360 69 63 3a 3a 67 65 74 54 69 6d 65 6f 75 74 28 29 29 3b 0a 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 ic::getTimeout());..$callback.=.
47380 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 20 3f 20 24 6f 75 74 70 75 74 20 3a is_callable($output).?.$output.:
473a0 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 27 29 3b 0a .array($this,.'outputHandler');.
473c0 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 24 $process->run($callback);..if.($
473e0 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 26 26 20 21 69 73 5f 63 61 6c 6c 61 this->captureOutput.&&.!is_calla
47400 62 6c 65 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 ble($output)).{.$output.=.$proce
47420 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 ss->getOutput();.}..$this->error
47440 4f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 Output.=.$process->getErrorOutpu
47460 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f t();..return.$process->getExitCo
47480 64 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 70 6c 69 74 4c 69 de();.}..public.function.splitLi
474a0 6e 65 73 28 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 28 73 74 72 69 6e 67 29 20 nes($output).{.return.((string).
474c0 24 6f 75 74 70 75 74 20 3d 3d 3d 20 27 27 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 70 72 65 67 $output.===.'').?.array().:.preg
474e0 5f 73 70 6c 69 74 28 27 7b 5c 72 3f 5c 6e 7d 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a _split('{\r?\n}',.$output);.}...
47500 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 ....public.function.getErrorOutp
47520 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 ut().{.return.$this->errorOutput
47540 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 48 61 6e 64 6c ;.}..public.function.outputHandl
47560 65 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e er($type,.$buffer).{.if.($this->
47580 63 61 70 74 75 72 65 4f 75 74 70 75 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 65 63 68 6f captureOutput).{.return;.}..echo
475a0 20 24 62 75 66 66 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 .$buffer;.}..public.static.funct
475c0 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 61 74 69 63 ion.getTimeout().{.return.static
475e0 3a 3a 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e ::$timeout;.}..public.static.fun
47600 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 73 74 61 ction.setTimeout($timeout).{.sta
47620 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 7d 0a 3c 3f tic::$timeout.=.$timeout;.}.}.<?
47640 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
47660 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a r\Util;..use.Composer\Composer;.
47680 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 use.Composer\IO\IOInterface;.use
476a0 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 .Composer\Downloader\TransportEx
476c0 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 ception;.....class.RemoteFilesys
476e0 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 66 69 72 73 tem.{.private.$io;.private.$firs
47700 74 43 61 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 62 79 74 65 73 4d 61 78 3b 0a 70 72 69 76 61 74 tCall;.private.$bytesMax;.privat
47720 65 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 55 72 6c 3b 0a e.$originUrl;.private.$fileUrl;.
47740 70 72 69 76 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 73 75 private.$fileName;.private.$resu
47760 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 lt;.private.$progress;.private.$
47780 6c 61 73 74 50 72 6f 67 72 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 lastProgress;.......public.funct
477a0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 ion.__construct(IOInterface.$io)
477c0 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .{.$this->io.=.$io;.}...........
477e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 28 24 6f 72 69 67 69 6e 55 72 6c .public.function.copy($originUrl
47800 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 72 65 73 73 ,.$fileUrl,.$fileName,.$progress
47820 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c .=.true).{.$this->get($originUrl
47840 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 72 65 73 73 ,.$fileUrl,.$fileName,.$progress
47860 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a );..return.$this->result;.}.....
47880 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 ......public.function.getContent
478a0 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 70 72 6f 67 72 65 73 s($originUrl,.$fileUrl,.$progres
478c0 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 s.=.true).{.$this->get($originUr
478e0 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 0a l,.$fileUrl,.null,.$progress);..
47900 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a return.$this->result;.}.........
47920 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6f 72 69 67 69 ...protected.function.get($origi
47940 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 6e 75 6c 6c nUrl,.$fileUrl,.$fileName.=.null
47960 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 79 74 ,.$progress.=.true).{.$this->byt
47980 65 73 4d 61 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 20 3d 20 6e 75 6c 6c 3b esMax.=.0;.$this->result.=.null;
479a0 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a .$this->originUrl.=.$originUrl;.
479c0 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 3d 20 24 66 69 6c 65 55 72 6c 3b 0a 24 74 68 69 73 $this->fileUrl.=.$fileUrl;.$this
479e0 2d 3e 66 69 6c 65 4e 61 6d 65 20 3d 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 ->fileName.=.$fileName;.$this->p
47a00 72 6f 67 72 65 73 73 20 3d 20 24 70 72 6f 67 72 65 73 73 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 rogress.=.$progress;.$this->last
47a20 50 72 6f 67 72 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 Progress.=.null;..$options.=.$th
47a40 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 72 6c 29 is->getOptionsForUrl($originUrl)
47a60 3b 0a 24 63 74 78 20 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 ;.$ctx.=.StreamContextFactory::g
47a80 65 74 43 6f 6e 74 65 78 74 28 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 6e 6f 74 69 66 etContext($options,.array('notif
47aa0 69 63 61 74 69 6f 6e 27 20 3d 3e 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 63 61 6c 6c 62 61 ication'.=>.array($this,.'callba
47ac0 63 6b 47 65 74 27 29 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 ckGet')));..if.($this->progress)
47ae0 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 .{.$this->io->write("....Downloa
47b00 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2e 2e 2e 3c 2f 63 6f ding:.<comment>connection...</co
47b20 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 40 66 mment>",.false);.}..$result.=.@f
47b40 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 55 72 6c 2c 20 66 61 6c 73 65 ile_get_contents($fileUrl,.false
47b60 2c 20 24 63 74 78 29 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 ,.$ctx);....if.(!empty($http_res
47b80 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 ponse_header[0]).&&.preg_match('
47ba0 7b 5e 48 54 54 50 2f 5c 53 2b 20 34 30 34 7d 69 27 2c 20 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 {^HTTP/\S+.404}i',.$http_respons
47bc0 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b e_header[0])).{.$result.=.false;
47be0 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 72 65 73 75 6c 74 20 26 26 20 65 .}....if.(false.!==.$result.&&.e
47c00 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 20 26 26 20 73 75 62 73 74 xtension_loaded('zlib').&&.subst
47c20 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c 20 34 29 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a r($fileUrl,.0,.4).===.'http').{.
47c40 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 68 74 74 70 5f $decode.=.false;.foreach.($http_
47c60 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 69 66 response_header.as.$header).{.if
47c80 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6e 74 65 6e 74 2d 65 6e 63 6f 64 69 6e 67 .(preg_match('{^content-encoding
47ca0 3a 20 2a 67 7a 69 70 20 2a 24 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f :.*gzip.*$}i',.$header)).{.$deco
47cc0 64 65 20 3d 20 74 72 75 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 de.=.true;.continue;.}.elseif.(p
47ce0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 reg_match('{^HTTP/}i',.$header))
47d00 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 .{.$decode.=.false;.}.}..if.($de
47d20 63 6f 64 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f code).{.if.(version_compare(PHP_
47d40 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 2e 30 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 72 65 73 75 VERSION,.'5.4.0',.'>=')).{.$resu
47d60 6c 74 20 3d 20 7a 6c 69 62 5f 64 65 63 6f 64 65 28 24 72 65 73 75 6c 74 29 3b 0a 7d 20 65 6c 73 lt.=.zlib_decode($result);.}.els
47d80 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 e.{...$result.=.file_get_content
47da0 73 28 27 63 6f 6d 70 72 65 73 73 2e 7a 6c 69 62 3a 2f 2f 64 61 74 61 3a 61 70 70 6c 69 63 61 74 s('compress.zlib://data:applicat
47dc0 69 6f 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 3b 62 61 73 65 36 34 2c 27 2e 62 61 73 65 36 34 ion/octet-stream;base64,'.base64
47de0 5f 65 6e 63 6f 64 65 28 24 72 65 73 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 _encode($result));.}.}.}..if.($t
47e00 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 his->progress).{.$this->io->over
47e20 77 72 69 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 write("....Downloading:.<comment
47e40 3e 31 30 30 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 >100%</comment>");.}....if.(fals
47e60 65 20 21 3d 3d 20 24 72 65 73 75 6c 74 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 66 69 6c 65 4e e.!==.$result.&&.null.!==.$fileN
47e80 61 6d 65 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 28 62 6f 6f 6c 29 20 40 66 69 6c 65 5f 70 75 ame).{.$result.=.(bool).@file_pu
47ea0 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 72 65 73 75 6c 74 29 3b 0a t_contents($fileName,.$result);.
47ec0 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e if.(false.===.$result).{.throw.n
47ee0 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 66 ew.TransportException('The."'.$f
47f00 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 ileUrl.'".file.could.not.be.writ
47f20 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 ten.to.'.$fileName);.}.}....if.(
47f40 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d null.===.$this->result).{.$this-
47f60 3e 72 65 73 75 6c 74 20 3d 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 >result.=.$result;.}..if.(false.
47f80 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 ===.$this->result).{.throw.new.T
47fa0 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 66 69 6c 65 55 ransportException('The."'.$fileU
47fc0 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 rl.'".file.could.not.be.download
47fe0 65 64 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ed');.}.}............protected.f
48000 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 62 61 63 6b 47 65 74 28 24 6e 6f 74 69 66 69 63 61 74 69 6f unction.callbackGet($notificatio
48020 6e 43 6f 64 65 2c 20 24 73 65 76 65 72 69 74 79 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 6d 65 73 nCode,.$severity,.$message,.$mes
48040 73 61 67 65 43 6f 64 65 2c 20 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 2c 20 24 62 79 sageCode,.$bytesTransferred,.$by
48060 74 65 73 4d 61 78 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 tesMax).{.switch.($notificationC
48080 6f 64 65 29 20 7b 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 41 49 4c 55 52 ode).{.case.STREAM_NOTIFY_FAILUR
480a0 45 3a 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 E:.throw.new.TransportException(
480c0 27 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 'The."'.$this->fileUrl.'".file.c
480e0 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 28 27 2e 74 72 69 6d 28 24 ould.not.be.downloaded.('.trim($
48100 6d 65 73 73 61 67 65 29 2e 27 29 27 2c 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 3b 0a 62 72 65 message).')',.$messageCode);.bre
48120 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 51 ak;..case.STREAM_NOTIFY_AUTH_REQ
48140 55 49 52 45 44 3a 0a 69 66 20 28 34 30 31 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 UIRED:.if.(401.===.$messageCode)
48160 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 .{.if.(!$this->io->isInteractive
48180 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 ()).{.$message.=."The.'"...$this
481a0 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 72 65 71 75 69 72 65 64 20 61 75 74 68 ->fileUrl..."'.URL.required.auth
481c0 65 6e 74 69 63 61 74 69 6f 6e 2e 5c 6e 59 6f 75 20 6d 75 73 74 20 62 65 20 75 73 69 6e 67 20 74 entication.\nYou.must.be.using.t
481e0 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6e 73 6f 6c 65 22 3b 0a 0a 74 68 72 6f 77 20 he.interactive.console";..throw.
48200 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c new.TransportException($message,
48220 20 34 30 31 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 .401);.}..$this->io->overwrite('
48240 20 20 20 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c 69 6e ....Authentication.required.(<in
48260 66 6f 3e 27 2e 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 50 fo>'.parse_url($this->fileUrl,.P
48280 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f 69 6e 66 6f 3e 29 3a 27 29 3b 0a 24 75 73 65 72 HP_URL_HOST).'</info>):');.$user
482a0 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 73 65 name.=.$this->io->ask('......Use
482c0 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f rname:.');.$password.=.$this->io
482e0 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 20 20 20 20 20 20 50 61 73 73 77 6f ->askAndHideAnswer('......Passwo
48300 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 rd:.');.$this->io->setAuthorizat
48320 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 6d 65 2c ion($this->originUrl,.$username,
48340 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e .$password);..$this->get($this->
48360 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 24 74 68 69 73 originUrl,.$this->fileUrl,.$this
48380 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a ->fileName,.$this->progress);.}.
483a0 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 49 4c 45 5f break;..case.STREAM_NOTIFY_FILE_
483c0 53 49 5a 45 5f 49 53 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3c 20 24 SIZE_IS:.if.($this->bytesMax.<.$
483e0 62 79 74 65 73 4d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 24 62 bytesMax).{.$this->bytesMax.=.$b
48400 79 74 65 73 4d 61 78 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e ytesMax;.}.break;..case.STREAM_N
48420 4f 54 49 46 59 5f 50 52 4f 47 52 45 53 53 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 OTIFY_PROGRESS:.if.($this->bytes
48440 4d 61 78 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 70 Max.>.0.&&.$this->progress).{.$p
48460 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 30 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 rogression.=.0;..if.($this->byte
48480 73 4d 61 78 20 3e 20 30 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 72 6f 75 6e 64 sMax.>.0).{.$progression.=.round
484a0 28 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 20 2f 20 24 74 68 69 73 2d 3e 62 79 74 65 ($bytesTransferred./.$this->byte
484c0 73 4d 61 78 20 2a 20 31 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 28 30 20 3d 3d 3d 20 24 70 72 6f 67 sMax.*.100);.}..if.((0.===.$prog
484e0 72 65 73 73 69 6f 6e 20 25 20 35 29 20 26 26 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 21 3d 3d ression.%.5).&&.$progression.!==
48500 20 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 6c .$this->lastProgress).{.$this->l
48520 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 3b 0a 24 74 68 69 astProgress.=.$progression;.$thi
48540 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e s->io->overwrite("....Downloadin
48560 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 24 70 72 6f 67 72 65 73 73 69 6f 6e 25 3c 2f 63 6f 6d 6d 65 g:.<comment>$progression%</comme
48580 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c nt>",.false);.}.}.break;..defaul
485a0 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f t:.break;.}.}..protected.functio
485c0 6e 20 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 72 6c 29 0a 7b n.getOptionsForUrl($originUrl).{
485e0 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 73 70 .$options['http']['header'].=.sp
48600 72 69 6e 74 66 28 0a 22 55 73 65 72 2d 41 67 65 6e 74 3a 20 43 6f 6d 70 6f 73 65 72 2f 25 73 20 rintf(."User-Agent:.Composer/%s.
48620 28 25 73 3b 20 25 73 3b 20 50 48 50 20 25 73 2e 25 73 2e 25 73 29 5c 72 5c 6e 22 2c 0a 43 6f 6d (%s;.%s;.PHP.%s.%s.%s)\r\n",.Com
48640 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 2c 0a 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 2c 0a poser::VERSION,.php_uname('s'),.
48660 70 68 70 5f 75 6e 61 6d 65 28 27 72 27 29 2c 0a 50 48 50 5f 4d 41 4a 4f 52 5f 56 45 52 53 49 4f php_uname('r'),.PHP_MAJOR_VERSIO
48680 4e 2c 0a 50 48 50 5f 4d 49 4e 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 48 50 5f 52 45 4c 45 41 53 N,.PHP_MINOR_VERSION,.PHP_RELEAS
486a0 45 5f 56 45 52 53 49 4f 4e 0a 29 3b 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 E_VERSION.);.if.(extension_loade
486c0 64 28 27 7a 6c 69 62 27 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 d('zlib')).{.$options['http']['h
486e0 65 61 64 65 72 27 5d 20 2e 3d 20 27 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 eader']..=.'Accept-Encoding:.gzi
48700 70 27 2e 22 5c 72 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 p'."\r\n";.}..if.($this->io->has
48720 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 24 61 75 Authorization($originUrl)).{.$au
48740 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e th.=.$this->io->getAuthorization
48760 28 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 24 61 75 74 68 53 74 72 20 3d 20 62 61 73 65 36 34 5f ($originUrl);.$authStr.=.base64_
48780 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 2e 20 27 3a 27 20 2e encode($auth['username']...':'..
487a0 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 .$auth['password']);.$options['h
487c0 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 2e 3d 20 22 41 75 74 68 6f 72 69 7a 61 74 69 6f ttp']['header']..=."Authorizatio
487e0 6e 3a 20 42 61 73 69 63 20 24 61 75 74 68 53 74 72 5c 72 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 n:.Basic.$authStr\r\n";.}..retur
48800 6e 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a n.$options;.}.}.<?php...........
48820 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a .namespace.Composer\Util;.......
48840 66 69 6e 61 6c 20 63 6c 61 73 73 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 final.class.StreamContextFactory
48860 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f .{.........public.static.functio
48880 6e 20 67 65 74 43 6f 6e 74 65 78 74 28 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f n.getContext(array.$defaultOptio
488a0 6e 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 50 61 72 61 ns.=.array(),.array.$defaultPara
488c0 6d 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 ms.=.array()).{.$options.=.array
488e0 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 ('http'.=>.array());....if.(!emp
48900 74 79 28 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 20 7c 7c 20 21 65 ty($_SERVER['HTTP_PROXY']).||.!e
48920 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 29 20 7b 0a mpty($_SERVER['http_proxy'])).{.
48940 0a 20 24 70 72 6f 78 79 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 21 65 6d 70 74 79 28 24 5f 53 45 ..$proxy.=.parse_url(!empty($_SE
48960 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 20 3f 20 24 5f 53 45 52 56 45 52 5b 27 RVER['http_proxy']).?.$_SERVER['
48980 68 74 74 70 5f 70 72 6f 78 79 27 5d 20 3a 20 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 http_proxy'].:.$_SERVER['HTTP_PR
489a0 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 72 6f 78 79 29 29 20 7b OXY']);.}..if.(!empty($proxy)).{
489c0 0a 24 70 72 6f 78 79 55 52 4c 20 3d 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 73 63 68 65 .$proxyURL.=.(isset($proxy['sche
489e0 6d 65 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 20 3a 20 27 27 29 20 2e me']).?.$proxy['scheme'].:.'')..
48a00 20 27 3a 2f 2f 27 3b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 69 73 73 65 74 28 24 70 72 6f 78 .'://';.$proxyURL..=.isset($prox
48a20 79 5b 27 68 6f 73 74 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 20 3a 20 27 27 y['host']).?.$proxy['host'].:.''
48a40 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 29 29 20 7b 0a ;..if.(isset($proxy['port'])).{.
48a60 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 22 20 2e 20 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 $proxyURL..=.":"...$proxy['port'
48a80 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 74 70 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 ];.}.elseif.('http://'.==.substr
48aa0 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 37 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e ($proxyURL,.0,.7)).{.$proxyURL..
48ac0 3d 20 22 3a 38 30 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 74 70 73 3a 2f 2f 27 20 3d 3d =.":80";.}.elseif.('https://'.==
48ae0 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 38 29 29 20 7b 0a 24 70 72 6f .substr($proxyURL,.0,.8)).{.$pro
48b00 78 79 55 52 4c 20 2e 3d 20 22 3a 34 34 33 22 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 78 79 55 52 4c 20 xyURL..=.":443";.}....$proxyURL.
48b20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 68 74 74 70 3a 2f 2f 27 2c 20 27 =.str_replace(array('http://',.'
48b40 68 74 74 70 73 3a 2f 2f 27 29 2c 20 61 72 72 61 79 28 27 74 63 70 3a 2f 2f 27 2c 20 27 73 73 6c https://'),.array('tcp://',.'ssl
48b60 3a 2f 2f 27 29 2c 20 24 70 72 6f 78 79 55 52 4c 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 ://'),.$proxyURL);..if.(0.===.st
48b80 72 70 6f 73 28 24 70 72 6f 78 79 55 52 4c 2c 20 27 73 73 6c 3a 27 29 20 26 26 20 21 65 78 74 65 rpos($proxyURL,.'ssl:').&&.!exte
48ba0 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 74 68 72 6f 77 nsion_loaded('openssl')).{.throw
48bc0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 .new.\RuntimeException('You.must
48be0 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f .enable.the.openssl.extension.to
48c00 20 75 73 65 20 61 20 70 72 6f 78 79 20 6f 76 65 72 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 24 6f .use.a.proxy.over.https');.}..$o
48c20 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 78 79 27 20 ptions['http'].=.array(.'proxy'.
48c40 3d 3e 20 24 70 72 6f 78 79 55 52 4c 2c 0a 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 20 =>.$proxyURL,.'request_fulluri'.
48c60 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 75 =>.true,.);..if.(isset($proxy['u
48c80 73 65 72 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d ser'])).{.$auth.=.$proxy['user']
48ca0 3b 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 ;.if.(isset($proxy['pass'])).{.$
48cc0 61 75 74 68 20 2e 3d 20 27 3a 27 20 2e 20 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 3b 0a 7d 0a auth..=.':'...$proxy['pass'];.}.
48ce0 24 61 75 74 68 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 29 3b 0a 0a 0a $auth.=.base64_encode($auth);...
48d00 20 69 66 20 28 69 73 73 65 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 .if.(isset($defaultOptions['http
48d20 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 ']['header'])).{.$defaultOptions
48d40 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 2e 3d 20 22 50 72 6f 78 79 2d 41 75 74 ['http']['header']..=."Proxy-Aut
48d60 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 68 7d 5c 72 5c 6e 22 3b 0a horization:.Basic.{$auth}\r\n";.
48d80 7d 20 65 6c 73 65 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 }.else.{.$options['http']['heade
48da0 72 27 5d 20 3d 20 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 r'].=."Proxy-Authorization:.Basi
48dc0 63 20 7b 24 61 75 74 68 7d 5c 72 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 c.{$auth}\r\n";.}.}.}..$options.
48de0 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 6f 70 74 69 6f =.array_replace_recursive($optio
48e00 6e 73 2c 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 ns,.$defaultOptions);..return.st
48e20 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 ream_context_create($options,.$d
48e40 65 66 61 75 6c 74 50 61 72 61 6d 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a efaultParams);.}.}.<?php........
48e60 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a ....namespace.Composer\Util;....
48e80 0a 0a 0a 63 6c 61 73 73 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a ...class.ErrorHandler.{.........
48ea0 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 ...public.static.function.handle
48ec0 28 24 6c 65 76 65 6c 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 ($level,.$message,.$file,.$line)
48ee0 0a 7b 0a 0a 20 69 66 20 28 21 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 29 29 20 7b 0a 72 .{...if.(!error_reporting()).{.r
48f00 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 78 64 65 62 75 67 2e 73 63 eturn;.}..if.(ini_get('xdebug.sc
48f20 72 65 61 6d 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 57 61 72 6e 69 ream')).{.$message..=."\n\nWarni
48f40 6e 67 3a 20 59 6f 75 20 68 61 76 65 20 78 64 65 62 75 67 2e 73 63 72 65 61 6d 20 65 6e 61 62 6c ng:.You.have.xdebug.scream.enabl
48f60 65 64 2c 20 74 68 65 20 77 61 72 6e 69 6e 67 20 61 62 6f 76 65 20 6d 61 79 20 62 65 22 2e 0a 22 ed,.the.warning.above.may.be".."
48f80 5c 6e 61 20 6c 65 67 69 74 69 6d 61 74 65 6c 79 20 73 75 70 70 72 65 73 73 65 64 20 65 72 72 6f \na.legitimately.suppressed.erro
48fa0 72 20 74 68 61 74 20 79 6f 75 20 77 65 72 65 20 6e 6f 74 20 73 75 70 70 6f 73 65 64 20 74 6f 20 r.that.you.were.not.supposed.to.
48fc0 73 65 65 2e 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 see.";.}..throw.new.\ErrorExcept
48fe0 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 30 2c 20 24 6c 65 76 65 6c 2c 20 24 66 69 6c 65 2c 20 ion($message,.0,.$level,.$file,.
49000 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 $line);.}.......public.static.fu
49020 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 29 0a 7b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 nction.register().{.set_error_ha
49040 6e 64 6c 65 72 28 61 72 72 61 79 28 5f 5f 43 4c 41 53 53 5f 5f 2c 20 27 68 61 6e 64 6c 65 27 29 ndler(array(__CLASS__,.'handle')
49060 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 );.}.}.<?php............namespac
49080 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a e.Composer\Util;..use.Composer\J
490a0 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 64 78 4c son\JsonFile;........class.SpdxL
490c0 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 icenseIdentifier.{....private.$i
490e0 64 65 6e 74 69 66 69 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 dentifiers;..public.function.__c
49100 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 49 64 65 6e 74 69 66 69 onstruct().{.$this->initIdentifi
49120 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ers();.}........public.function.
49140 76 61 6c 69 64 61 74 65 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 validate($license).{.if.(is_arra
49160 79 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 6c y($license)).{.$count.=.count($l
49180 69 63 65 6e 73 65 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 20 21 3d 3d 20 63 6f 75 6e 74 28 61 72 icense);.if.($count.!==.count(ar
491a0 72 61 79 5f 66 69 6c 74 65 72 28 24 6c 69 63 65 6e 73 65 2c 20 27 69 73 5f 73 74 72 69 6e 67 27 ray_filter($license,.'is_string'
491c0 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 ))).{.throw.new.\InvalidArgument
491e0 45 78 63 65 70 74 69 6f 6e 28 27 41 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 20 65 78 70 65 Exception('Array.of.strings.expe
49200 63 74 65 64 2e 27 29 3b 0a 7d 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 63 6f 75 6e 74 20 3e 20 31 cted.');.}.$license.=.$count.>.1
49220 20 3f 20 27 28 27 2e 69 6d 70 6c 6f 64 65 28 27 20 6f 72 20 27 2c 20 24 6c 69 63 65 6e 73 65 29 .?.'('.implode('.or.',.$license)
49240 2e 27 29 27 20 3a 20 28 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 6c 69 63 65 6e 73 65 29 3b .')'.:.(string).reset($license);
49260 0a 7d 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 74 .}.if.(!is_string($license)).{.t
49280 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
492a0 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 41 72 72 61 79 20 6f 72 20 53 74 72 69 6e 67 20 65 78 70 on(sprintf(.'Array.or.String.exp
492c0 65 63 74 65 64 2c 20 25 73 20 67 69 76 65 6e 2e 27 2c 20 67 65 74 74 79 70 65 28 24 6c 69 63 65 ected,.%s.given.',.gettype($lice
492e0 6e 73 65 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 nse).));.}..return.$this->isVali
49300 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a dLicenseString($license);.}.....
49320 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 49 64 65 6e 74 69 66 69 65 72 73 private.function.initIdentifiers
49340 28 29 0a 7b 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 5f 5f ().{.$jsonFile.=.new.JsonFile(__
49360 44 49 52 5f 5f 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 73 70 64 78 2d 69 64 65 6e DIR__...'/../../../res/spdx-iden
49380 74 69 66 69 65 72 2e 6a 73 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 64 65 6e 74 69 66 69 65 72 tifier.json');.$this->identifier
493a0 73 20 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 s.=.$jsonFile->read();.}.......p
493c0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 49 64 rivate.function.isValidLicenseId
493e0 65 6e 74 69 66 69 65 72 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 69 entifier($identifier).{.return.i
49400 6e 5f 61 72 72 61 79 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 69 64 65 6e n_array($identifier,.$this->iden
49420 74 69 66 69 65 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 tifiers);.}........private.funct
49440 69 6f 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 ion.isValidLicenseString($licens
49460 65 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 70 6f 27 20 3d 3e 20 27 5c e).{.$tokens.=.array(.'po'.=>.'\
49480 28 27 2c 0a 27 70 63 27 20 3d 3e 20 27 5c 29 27 2c 0a 27 6f 70 27 20 3d 3e 20 27 28 3f 3a 6f 72 (',.'pc'.=>.'\)',.'op'.=>.'(?:or
494a0 7c 61 6e 64 29 27 2c 0a 27 6c 69 78 27 20 3d 3e 20 27 28 3f 3a 4e 4f 4e 45 7c 4e 4f 41 53 53 45 |and)',.'lix'.=>.'(?:NONE|NOASSE
494c0 52 54 49 4f 4e 29 27 2c 0a 27 6c 69 72 27 20 3d 3e 20 27 4c 69 63 65 6e 73 65 52 65 66 2d 5c 64 RTION)',.'lir'.=>.'LicenseRef-\d
494e0 2b 27 2c 0a 27 6c 69 63 27 20 3d 3e 20 27 5b 2d 2b 5f 2e 61 2d 7a 41 2d 5a 30 2d 39 5d 7b 33 2c +',.'lic'.=>.'[-+_.a-zA-Z0-9]{3,
49500 7d 27 2c 0a 27 77 73 27 20 3d 3e 20 27 5c 73 2b 27 2c 0a 27 5f 27 20 3d 3e 20 27 2e 27 2c 0a 29 }',.'ws'.=>.'\s+',.'_'.=>.'.',.)
49520 3b 0a 0a 24 6e 65 78 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 75 73 65 20 28 24 6c 69 63 ;..$next.=.function.().use.($lic
49540 65 6e 73 65 2c 20 24 74 6f 6b 65 6e 73 29 20 7b 0a 73 74 61 74 69 63 20 24 6f 66 66 73 65 74 20 ense,.$tokens).{.static.$offset.
49560 3d 20 30 3b 0a 0a 69 66 20 28 24 6f 66 66 73 65 74 20 3e 3d 20 73 74 72 6c 65 6e 28 24 6c 69 63 =.0;..if.($offset.>=.strlen($lic
49580 65 6e 73 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 ense)).{.return.null;.}..foreach
495a0 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a .($tokens.as.$name.=>.$token).{.
495c0 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 20 3d 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b if.(false.===.$r.=.preg_match('{
495e0 27 20 2e 20 24 74 6f 6b 65 6e 20 2e 20 27 7d 27 2c 20 24 6c 69 63 65 6e 73 65 2c 20 24 6d 61 74 '...$token...'}',.$license,.$mat
49600 63 68 65 73 2c 20 50 52 45 47 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 52 45 2c 20 24 6f 66 66 73 ches,.PREG_OFFSET_CAPTURE,.$offs
49620 65 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 et)).{.throw.new.\RuntimeExcepti
49640 6f 6e 28 27 50 61 74 74 65 72 6e 20 66 6f 72 20 74 6f 6b 65 6e 20 25 73 20 66 61 69 6c 65 64 20 on('Pattern.for.token.%s.failed.
49660 28 72 65 67 65 78 20 65 72 72 6f 72 29 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 69 66 20 28 24 (regex.error).',.$name);.}.if.($
49680 72 20 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6d 61 74 63 r.===.0).{.continue;.}.if.($matc
496a0 68 65 73 5b 30 5d 5b 31 5d 20 21 3d 3d 20 24 6f 66 66 73 65 74 29 20 7b 0a 63 6f 6e 74 69 6e 75 hes[0][1].!==.$offset).{.continu
496c0 65 3b 0a 7d 0a 24 6f 66 66 73 65 74 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 65 73 5b e;.}.$offset.+=.strlen($matches[
496e0 30 5d 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 24 6d 61 0][0]);..return.array($name,.$ma
49700 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 tches[0][0]);.}..throw.new.\Runt
49720 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 74 20 6c 65 61 73 74 20 74 68 65 20 6c 61 73 74 20 imeException('At.least.the.last.
49740 70 61 74 74 65 72 6e 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 2c 20 62 75 74 20 69 74 20 64 pattern.needs.to.match,.but.it.d
49760 69 64 20 6e 6f 74 20 28 64 6f 74 2d 6d 61 74 63 68 2d 61 6c 6c 20 69 73 20 6d 69 73 73 69 6e 67 id.not.(dot-match-all.is.missing
49780 3f 29 2e 27 29 3b 0a 7d 3b 0a 0a 24 6f 70 65 6e 20 3d 20 30 3b 0a 24 72 65 71 75 69 72 65 20 3d ?).');.};..$open.=.0;.$require.=
497a0 20 31 3b 0a 24 6c 61 73 74 6f 70 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 20 28 6c 69 73 74 .1;.$lastop.=.null;..while.(list
497c0 28 24 74 6f 6b 65 6e 2c 20 24 73 74 72 69 6e 67 29 20 3d 20 24 6e 65 78 74 28 29 29 20 7b 0a 73 ($token,.$string).=.$next()).{.s
497e0 77 69 74 63 68 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 63 61 73 65 20 27 70 6f 27 3a 0a 69 66 20 28 witch.($token).{.case.'po':.if.(
49800 24 6f 70 65 6e 20 7c 7c 20 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c $open.||.!$require).{.return.fal
49820 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 63 se;.}.$open.=.1;.break;.case.'pc
49840 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 21 3d 3d 20 31 20 7c 7c 20 24 72 65 71 75 69 72 65 20 7c ':.if.($open.!==.1.||.$require.|
49860 7c 20 21 24 6c 61 73 74 6f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6f |.!$lastop).{.return.false;.}.$o
49880 70 65 6e 20 3d 20 32 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 70 27 3a 0a 69 66 20 28 24 pen.=.2;.break;.case.'op':.if.($
498a0 72 65 71 75 69 72 65 20 7c 7c 20 21 24 6f 70 65 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 require.||.!$open).{.return.fals
498c0 65 3b 0a 7d 0a 24 6c 61 73 74 6f 70 20 7c 7c 20 24 6c 61 73 74 6f 70 20 3d 20 24 73 74 72 69 6e e;.}.$lastop.||.$lastop.=.$strin
498e0 67 3b 0a 69 66 20 28 24 6c 61 73 74 6f 70 20 21 3d 3d 20 24 73 74 72 69 6e 67 29 20 7b 0a 72 65 g;.if.($lastop.!==.$string).{.re
49900 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 3d 20 31 3b 0a 62 72 65 61 turn.false;.}.$require.=.1;.brea
49920 6b 3b 0a 63 61 73 65 20 27 6c 69 78 27 3a 0a 69 66 20 28 24 6f 70 65 6e 29 20 7b 0a 72 65 74 75 k;.case.'lix':.if.($open).{.retu
49940 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 67 6f 74 6f 20 6c 69 72 3b 0a 63 61 73 65 20 27 6c 69 63 27 rn.false;.}.goto.lir;.case.'lic'
49960 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 49 64 65 6e :.if.(!$this->isValidLicenseIden
49980 74 69 66 69 65 72 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b tifier($string)).{.return.false;
499a0 0a 7d 0a 0a 20 63 61 73 65 20 27 6c 69 72 27 3a 0a 6c 69 72 3a 0a 69 66 20 28 21 24 72 65 71 75 .}...case.'lir':.lir:.if.(!$requ
499c0 69 72 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 ire).{.return.false;.}.$require.
499e0 3d 20 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 77 73 27 3a 0a 62 72 65 61 6b 3b 0a 63 61 =.0;.break;.case.'ws':.break;.ca
49a00 73 65 20 27 5f 27 3a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 se.'_':.return.false;.default:.t
49a20 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e hrow.new.\RuntimeException(sprin
49a40 74 66 28 27 55 6e 70 61 72 73 65 64 20 74 6f 6b 65 6e 3a 20 25 73 2e 27 2c 20 70 72 69 6e 74 5f tf('Unparsed.token:.%s.',.print_
49a60 72 28 24 74 6f 6b 65 6e 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 r($token,.true)));.}.}..return.!
49a80 28 24 6f 70 65 6e 20 25 20 32 20 7c 7c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 ($open.%.2.||.$require);.}.}.<?p
49aa0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
49ac0 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 \Util;..use.Composer\IO\IOInterf
49ae0 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 ace;......class.Svn.{....protect
49b00 65 64 20 24 63 72 65 64 65 6e 74 69 61 6c 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 ed.$credentials;.....protected.$
49b20 68 61 73 41 75 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a hasAuth;.....protected.$io;.....
49b40 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 protected.$url;.....protected.$c
49b60 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 acheCredentials.=.true;.....prot
49b80 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ected.$process;.......public.fun
49ba0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 75 72 6c 2c 20 49 4f 49 6e 74 65 72 66 ction.__construct($url,.IOInterf
49bc0 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 ace.$io,.ProcessExecutor.$proces
49be0 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 75 72 6c 3b 0a 24 s.=.null).{.$this->url.=.$url;.$
49c00 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d this->io.=.$io;.$this->process.=
49c20 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 .$process.?:.new.ProcessExecutor
49c40 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ;.}................public.functi
49c60 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 on.execute($command,.$url,.$cwd.
49c80 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 62 6f 73 65 20 3d =.null,.$path.=.null,.$verbose.=
49ca0 20 66 61 6c 73 65 29 0a 7b 0a 24 73 76 6e 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 .false).{.$svnCommand.=.$this->g
49cc0 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 29 etCommand($command,.$url,.$path)
49ce0 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 ;.$output.=.null;.$io.=.$this->i
49d00 6f 3b 0a 24 68 61 6e 64 6c 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 o;.$handler.=.function.($type,.$
49d20 62 75 66 66 65 72 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 2c 20 24 69 6f 2c 20 24 76 65 72 buffer).use.(&$output,.$io,.$ver
49d40 62 6f 73 65 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 27 6f 75 74 27 29 20 7b 0a 72 bose).{.if.($type.!==.'out').{.r
49d60 65 74 75 72 6e 3b 0a 7d 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 62 75 66 66 65 72 3b 0a 69 66 20 eturn;.}.$output..=.$buffer;.if.
49d80 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 24 62 75 66 66 65 72 2c ($verbose).{.$io->write($buffer,
49da0 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 3b 0a 24 73 74 61 74 75 73 20 3d 20 24 74 68 69 73 2d 3e 70 .false);.}.};.$status.=.$this->p
49dc0 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 73 76 6e 43 6f 6d 6d 61 6e 64 2c 20 24 68 61 rocess->execute($svnCommand,.$ha
49de0 6e 64 6c 65 72 2c 20 24 63 77 64 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 73 74 61 74 75 73 29 ndler,.$cwd);.if.(0.===.$status)
49e00 20 7b 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 .{.return.$output;.}..if.(empty(
49e20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f $output)).{.$output.=.$this->pro
49e40 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 cess->getErrorOutput();.}....if.
49e60 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 43 6f 75 (false.===.stripos($output,.'Cou
49e80 6c 64 20 6e 6f 74 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 74 6f 20 73 65 72 76 65 72 3a 27 29 ld.not.authenticate.to.server:')
49ea0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
49ec0 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 $output);.}....if.(!$this->io->i
49ee0 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e sInteractive()).{.throw.new.\Run
49f00 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 63 61 6e 20 6e 6f 74 20 61 73 6b 20 66 6f 72 20 timeException(.'can.not.ask.for.
49f20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 69 6e 20 6e 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 authentication.in.non.interactiv
49f40 65 20 6d 6f 64 65 20 28 27 2e 24 6f 75 74 70 75 74 2e 27 29 27 0a 29 3b 0a 7d 0a 0a 0a 20 0a 0a e.mode.('.$output.')'.);.}......
49f60 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 28 29 29 20 7b 0a 24 74 68 69 73 ..if.(!$this->hasAuth()).{.$this
49f80 2d 3e 64 6f 41 75 74 68 44 61 6e 63 65 28 29 3b 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 ->doAuthDance();....return.$this
49fa0 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 ->execute($command,.$url,.$cwd,.
49fc0 24 70 61 74 68 2c 20 24 76 65 72 62 6f 73 65 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c $path,.$verbose);.}..throw.new.\
49fe0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 77 72 6f 6e 67 20 63 72 65 64 65 6e 74 RuntimeException(.'wrong.credent
4a000 69 61 6c 73 20 70 72 6f 76 69 64 65 64 20 28 27 2e 24 6f 75 74 70 75 74 2e 27 29 27 0a 29 3b 0a ials.provided.('.$output.')'.);.
4a020 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 41 75 74 }.......protected.function.doAut
4a040 68 44 61 6e 63 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 54 68 65 hDance().{.$this->io->write("The
4a060 20 53 75 62 76 65 72 73 69 6f 6e 20 73 65 72 76 65 72 20 28 7b 24 74 68 69 73 2d 3e 75 72 6c 7d .Subversion.server.({$this->url}
4a080 29 20 72 65 71 75 65 73 74 65 64 20 63 72 65 64 65 6e 74 69 61 6c 73 3a 22 29 3b 0a 0a 24 74 68 ).requested.credentials:");..$th
4a0a0 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 is->hasAuth.=.true;.$this->crede
4a0c0 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e ntials['username'].=.$this->io->
4a0e0 61 73 6b 28 22 55 73 65 72 6e 61 6d 65 3a 20 22 29 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e ask("Username:.");.$this->creden
4a100 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 tials['password'].=.$this->io->a
4a120 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 22 50 61 73 73 77 6f 72 64 3a 20 22 29 3b 0a 0a skAndHideAnswer("Password:.");..
4a140 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 24 74 68 69 73 2d $this->cacheCredentials.=.$this-
4a160 3e 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 22 53 68 6f 75 6c 64 20 53 75 62 >io->askConfirmation("Should.Sub
4a180 76 65 72 73 69 6f 6e 20 63 61 63 68 65 20 74 68 65 73 65 20 63 72 65 64 65 6e 74 69 61 6c 73 3f version.cache.these.credentials?
4a1a0 20 28 79 65 73 2f 6e 6f 29 20 22 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 .(yes/no).",.true);..return.$thi
4a1c0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f s;.}...........protected.functio
4a1e0 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6d 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 20 3d n.getCommand($cmd,.$url,.$path.=
4a200 20 6e 75 6c 6c 29 0a 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 25 73 .null).{.$cmd.=.sprintf('%s.%s%s
4a220 20 25 73 27 2c 0a 24 63 6d 64 2c 0a 27 2d 2d 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 27 .%s',.$cmd,.'--non-interactive.'
4a240 2c 0a 24 74 68 69 73 2d 3e 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 2c 0a ,.$this->getCredentialString(),.
4a260 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 0a 29 3b 0a 0a 69 66 20 28 24 70 61 escapeshellarg($url).);..if.($pa
4a280 74 68 29 20 7b 0a 24 63 6d 64 20 2e 3d 20 27 20 27 20 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 th).{.$cmd..=.'.'...escapeshella
4a2a0 72 67 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6d 64 3b 0a 7d 0a 0a 0a 0a rg($path);.}..return.$cmd;.}....
4a2c0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 72 65 64 65 .....protected.function.getCrede
4a2e0 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 ntialString().{.if.(!$this->hasA
4a300 75 74 68 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 uth()).{.return.'';.}..return.sp
4a320 72 69 6e 74 66 28 0a 27 20 25 73 2d 2d 75 73 65 72 6e 61 6d 65 20 25 73 20 2d 2d 70 61 73 73 77 rintf(.'.%s--username.%s.--passw
4a340 6f 72 64 20 25 73 20 27 2c 0a 24 74 68 69 73 2d 3e 67 65 74 41 75 74 68 43 61 63 68 65 28 29 2c ord.%s.',.$this->getAuthCache(),
4a360 0a 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 6e 61 .escapeshellarg($this->getUserna
4a380 6d 65 28 29 29 2c 0a 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 67 65 74 me()),.escapeshellarg($this->get
4a3a0 50 61 73 73 77 6f 72 64 28 29 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 Password()).);.}........protecte
4a3c0 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 73 73 77 6f 72 64 28 29 0a 7b 0a 69 66 20 28 24 d.function.getPassword().{.if.($
4a3e0 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 74 68 this->credentials.===.null).{.th
4a400 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 6e 20 row.new.\LogicException("No.svn.
4a420 61 75 74 68 20 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 auth.detected.");.}..return.isse
4a440 74 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d t($this->credentials['password']
4a460 29 20 3f 20 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 ).?.$this->credentials['password
4a480 27 5d 20 3a 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 '].:.'';.}........protected.func
4a4a0 74 69 6f 6e 20 67 65 74 55 73 65 72 6e 61 6d 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e tion.getUsername().{.if.($this->
4a4c0 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 credentials.===.null).{.throw.ne
4a4e0 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 6e 20 61 75 74 68 20 64 w.\LogicException("No.svn.auth.d
4a500 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 65 etected.");.}..return.$this->cre
4a520 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a dentials['username'];.}.........
4a540 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 28 29 0a 7b 0a 69 protected.function.hasAuth().{.i
4a560 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 29 20 7b 0a 72 65 f.(null.!==.$this->hasAuth).{.re
4a580 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 3b 0a 7d 0a 0a 24 75 72 69 20 3d 20 70 turn.$this->hasAuth;.}..$uri.=.p
4a5a0 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 arse_url($this->url);.if.(empty(
4a5c0 24 75 72 69 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 $uri['user'])).{.return.$this->h
4a5e0 61 73 41 75 74 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e asAuth.=.false;.}..$this->creden
4a600 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 75 72 69 5b 27 75 73 65 72 27 5d tials['username'].=.$uri['user']
4a620 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 75 72 69 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 74 ;.if.(!empty($uri['pass'])).{.$t
4a640 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 his->credentials['password'].=.$
4a660 75 72 69 5b 27 70 61 73 73 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 uri['pass'];.}..return.$this->ha
4a680 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 sAuth.=.true;.}.......protected.
4a6a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 43 61 63 68 65 28 29 0a 7b 0a 72 65 74 75 72 6e function.getAuthCache().{.return
4a6c0 20 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3f 20 27 27 20 3a 20 .$this->cacheCredentials.?.''.:.
4a6e0 27 2d 2d 6e 6f 2d 61 75 74 68 2d 63 61 63 68 65 20 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a '--no-auth-cache.';.}.}.<?php...
4a700 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 .........namespace.Composer;..us
4a720 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 e.Composer\Package\PackageInterf
4a740 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 ace;.use.Composer\Package\Locker
4a760 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 ;.use.Composer\Repository\Reposi
4a780 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c toryManager;.use.Composer\Instal
4a7a0 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d ler\InstallationManager;.use.Com
4a7c0 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 poser\Downloader\DownloadManager
4a7e0 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 56 45 ;......class.Composer.{.const.VE
4a800 52 53 49 4f 4e 20 3d 20 27 39 38 37 34 33 62 61 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 RSION.=.'98743ba';.....private.$
4a820 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a package;.....private.$locker;...
4a840 0a 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a ..private.$repositoryManager;...
4a860 0a 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a ..private.$downloadManager;.....
4a880 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a private.$installationManager;...
4a8a0 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ..private.$config;......public.f
4a8c0 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 unction.setPackage(PackageInterf
4a8e0 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d ace.$package).{.$this->package.=
4a900 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$package;.}.....public.function
4a920 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 .getPackage().{.return.$this->pa
4a940 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ckage;.}.....public.function.set
4a960 43 6f 6e 66 69 67 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e Config(Config.$config).{.$this->
4a980 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 config.=.$config;.}.....public.f
4a9a0 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 69 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 unction.getConfig().{.return.$th
4a9c0 69 73 2d 3e 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f is->config;.}.....public.functio
4a9e0 6e 20 73 65 74 4c 6f 63 6b 65 72 28 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 29 0a 7b 0a 24 74 n.setLocker(Locker.$locker).{.$t
4aa00 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 his->locker.=.$locker;.}.....pub
4aa20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 72 28 29 0a 7b 0a 72 65 74 75 72 lic.function.getLocker().{.retur
4aa40 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 n.$this->locker;.}.....public.fu
4aa60 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 52 65 70 6f nction.setRepositoryManager(Repo
4aa80 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d sitoryManager.$manager).{.$this-
4aaa0 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d >repositoryManager.=.$manager;.}
4aac0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f .....public.function.getReposito
4aae0 72 79 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f ryManager().{.return.$this->repo
4ab00 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 sitoryManager;.}.....public.func
4ab20 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 44 6f 77 6e 6c 6f 61 64 tion.setDownloadManager(Download
4ab40 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c Manager.$manager).{.$this->downl
4ab60 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 oadManager.=.$manager;.}.....pub
4ab80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 lic.function.getDownloadManager(
4aba0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 ).{.return.$this->downloadManage
4abc0 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 r;.}.....public.function.setInst
4abe0 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 allationManager(InstallationMana
4ac00 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 ger.$manager).{.$this->installat
4ac20 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ionManager.=.$manager;.}.....pub
4ac40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 lic.function.getInstallationMana
4ac60 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 ger().{.return.$this->installati
4ac80 6f 6e 4d 61 6e 61 67 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a onManager;.}.}.<?php............
4aca0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 namespace.Composer\Json;.....cla
4acc0 73 73 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f ss.JsonManipulator.{.private.$co
4ace0 6e 74 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 6e 65 77 6c 69 6e 65 3b 0a 70 72 69 76 61 74 ntents;.private.$newline;.privat
4ad00 65 20 24 69 6e 64 65 6e 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f e.$indent;..public.function.__co
4ad20 6e 73 74 72 75 63 74 28 24 63 6f 6e 74 65 6e 74 73 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d nstruct($contents).{.$contents.=
4ad40 20 74 72 69 6d 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 .trim($contents);.if.(!preg_matc
4ad60 68 28 27 23 5e 5c 7b 28 2e 2a 29 5c 7d 24 23 73 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b h('#^\{(.*)\}$#s',.$contents)).{
4ad80 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
4ada0 74 69 6f 6e 28 27 54 68 65 20 6a 73 6f 6e 20 66 69 6c 65 20 6d 75 73 74 20 62 65 20 61 6e 20 6f tion('The.json.file.must.be.an.o
4adc0 62 6a 65 63 74 20 28 7b 7d 29 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 3d bject.({})');.}.$this->newline.=
4ade0 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 22 5c 72 5c 6e 22 2c 20 24 63 6f 6e 74 65 .false.!==.strpos("\r\n",.$conte
4ae00 6e 74 73 29 20 3f 20 22 5c 72 5c 6e 22 3a 20 22 5c 6e 22 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 nts).?."\r\n":."\n";.$this->cont
4ae20 65 6e 74 73 20 3d 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 24 74 68 69 73 2d 3e 64 65 74 65 63 74 49 ents.=.$contents;.$this->detectI
4ae40 6e 64 65 6e 74 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ndenting();.}..public.function.g
4ae60 65 74 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e etContents().{.return.$this->con
4ae80 74 65 6e 74 73 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 tents...$this->newline;.}..publi
4aea0 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 c.function.addLink($type,.$packa
4aec0 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d ge,.$constraint).{...if.(!preg_m
4aee0 61 74 63 68 28 27 23 22 27 2e 24 74 79 70 65 2e 27 22 3a 5c 73 2a 5c 7b 23 27 2c 20 24 74 68 69 atch('#"'.$type.'":\s*\{#',.$thi
4af00 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 s->contents)).{.$this->addMainKe
4af20 79 28 24 74 79 70 65 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 61 72 72 61 79 28 24 70 61 y($type,.$this->format(array($pa
4af40 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 29 3b 0a 0a 72 65 74 75 72 6e ckage.=>.$constraint)));..return
4af60 20 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 74 .true;.}..$linksRegex.=.'#("'.$t
4af80 79 70 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 5b 5e 7d 5d 2b 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 ype.'":\s*\{)([^}]+)(\})#s';.if.
4afa0 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 6c 69 6e 6b 73 52 65 67 65 78 2c 20 24 74 68 69 73 2d (!preg_match($linksRegex,.$this-
4afc0 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c >contents,.$match)).{.return.fal
4afe0 73 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 70 61 63 6b se;.}..$links.=.$match[2];.$pack
4b000 61 67 65 52 65 67 65 78 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5c 5c 5c ageRegex.=.str_replace('/',.'\\\
4b020 5c 3f 2f 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 0a 0a 20 \?/',.preg_quote($package));....
4b040 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 if.(preg_match('{"'.$packageRege
4b060 78 2e 27 22 5c 73 2a 3a 7d 69 27 2c 20 24 6c 69 6e 6b 73 29 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d x.'"\s*:}i',.$links)).{.$links.=
4b080 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 78 .preg_replace('{"'.$packageRegex
4b0a0 2e 27 22 28 5c 73 2a 3a 5c 73 2a 29 22 5b 5e 22 5d 2b 22 7d 69 27 2c 20 4a 73 6f 6e 46 69 6c 65 .'"(\s*:\s*)"[^"]+"}i',.JsonFile
4b0c0 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 24 31 22 27 2e 24 63 6f 6e 73 74 72 ::encode($package).'$1"'.$constr
4b0e0 61 69 6e 74 2e 27 22 27 2c 20 24 6c 69 6e 6b 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 aint.'"',.$links);.}.elseif.(pre
4b100 67 5f 6d 61 74 63 68 28 27 23 5b 5e 5c 73 5d 28 5c 73 2a 29 24 23 27 2c 20 24 6c 69 6e 6b 73 2c g_match('#[^\s](\s*)$#',.$links,
4b120 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c .$match)).{...$links.=.preg_repl
4b140 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 24 23 27 2c 0a 27 2c 27 20 2e 20 24 ace(.'#'.$match[1].'$#',.','...$
4b160 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 this->newline...$this->indent...
4b180 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 $this->indent...JsonFile::encode
4b1a0 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 ($package).':.'.JsonFile::encode
4b1c0 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6d 61 74 63 68 5b 31 5d 2c 0a 24 6c 69 6e 6b ($constraint)...$match[1],.$link
4b1e0 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 2d 3e s.);.}.else.{...$links.=.$this->
4b200 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d newline...$this->indent...$this-
4b220 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b >indent...JsonFile::encode($pack
4b240 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 age).':.'.JsonFile::encode($cons
4b260 74 72 61 69 6e 74 29 20 2e 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 traint)...$links;.}..$this->cont
4b280 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6c 69 6e 6b 73 52 65 67 65 78 2c ents.=.preg_replace($linksRegex,
4b2a0 20 27 24 31 27 2e 24 6c 69 6e 6b 73 2e 27 24 33 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e .'$1'.$links.'$3',.$this->conten
4b2c0 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ts);..return.true;.}..public.fun
4b2e0 63 74 69 6f 6e 20 61 64 64 4d 61 69 6e 4b 65 79 28 24 6b 65 79 2c 20 24 63 6f 6e 74 65 6e 74 29 ction.addMainKey($key,.$content)
4b300 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 7b 5c 73 5d 28 5c 73 2a 29 5c .{.if.(preg_match('#[^{\s](\s*)\
4b320 7d 24 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 }$#',.$this->contents,.$match)).
4b340 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 {.$this->contents.=.preg_replace
4b360 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 5c 7d 24 23 27 2c 0a 27 2c 27 20 2e 20 24 74 (.'#'.$match[1].'\}$#',.','...$t
4b380 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a his->newline...$this->indent...J
4b3a0 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 20 24 63 6f sonFile::encode($key)..':.'..$co
4b3c0 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 0a 24 74 ntent...$this->newline...'}',.$t
4b3e0 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d his->contents.);.}.else.{.$this-
4b400 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5c 7d 24 23 >contents.=.preg_replace(.'#\}$#
4b420 27 2c 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 ',.$this->indent...JsonFile::enc
4b440 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 ode($key)..':.'.$content...$this
4b460 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 ->newline...'}',.$this->contents
4b480 0a 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d .);.}.}..protected.function.form
4b4a0 61 74 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 at($data).{.if.(is_array($data))
4b4c0 20 7b 0a 72 65 73 65 74 28 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 .{.reset($data);..if.(is_numeric
4b4e0 28 6b 65 79 28 24 64 61 74 61 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f (key($data))).{.return.'['.implo
4b500 64 65 28 27 2c 20 27 2c 20 24 64 61 74 61 29 2e 27 5d 27 3b 0a 7d 0a 0a 24 6f 75 74 20 3d 20 27 de(',.',.$data).']';.}..$out.=.'
4b520 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 {'...$this->newline;.foreach.($d
4b540 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 65 6c 65 6d 73 5b 5d 20 ata.as.$key.=>.$val).{.$elems[].
4b560 3d 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 =.$this->indent...$this->indent.
4b580 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 ..JsonFile::encode($key)..':.'.$
4b5a0 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f this->format($val);.}..return.$o
4b5c0 75 74 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2c ut...implode(','.$this->newline,
4b5e0 20 24 65 6c 65 6d 73 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 .$elems)...$this->newline...$thi
4b600 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 27 7d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 4a 73 6f 6e 46 s->indent...'}';.}..return.JsonF
4b620 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 ile::encode($data);.}..protected
4b640 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 0a 7b 0a 69 66 .function.detectIndenting().{.if
4b660 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5c 73 2b 29 22 7d 27 2c 20 24 74 68 69 73 2d .(preg_match('{^(\s+)"}',.$this-
4b680 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 >contents,.$match)).{.$this->ind
4b6a0 65 6e 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ent.=.$match[1];.}.else.{.$this-
4b6c0 3e 69 6e 64 65 6e 74 20 3d 20 27 20 20 20 20 27 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a >indent.=.'....';.}.}.}.<?php...
4b6e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e .........namespace.Composer\Json
4b700 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 4a 73 ;..use.Composer\Composer;.use.Js
4b720 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f onSchema\Validator;.use.Seld\Jso
4b740 6e 4c 69 6e 74 5c 4a 73 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c nLint\JsonParser;.use.Seld\JsonL
4b760 69 6e 74 5c 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 int\ParsingException;.use.Compos
4b780 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f er\Util\RemoteFilesystem;.use.Co
4b7a0 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 mposer\Downloader\TransportExcep
4b7c0 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 46 69 6c 65 0a 7b 0a 63 6f tion;........class.JsonFile.{.co
4b7e0 6e 73 74 20 4c 41 58 5f 53 43 48 45 4d 41 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 52 49 43 54 nst.LAX_SCHEMA.=.1;.const.STRICT
4b800 5f 53 43 48 45 4d 41 20 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 _SCHEMA.=.2;..const.JSON_UNESCAP
4b820 45 44 5f 53 4c 41 53 48 45 53 20 3d 20 36 34 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 50 52 45 54 ED_SLASHES.=.64;.const.JSON_PRET
4b840 54 59 5f 50 52 49 4e 54 20 3d 20 31 32 38 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 43 TY_PRINT.=.128;.const.JSON_UNESC
4b860 41 50 45 44 5f 55 4e 49 43 4f 44 45 20 3d 20 32 35 36 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 61 APED_UNICODE.=.256;..private.$pa
4b880 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 th;.private.$rfs;........public.
4b8a0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 52 65 6d 6f function.__construct($path,.Remo
4b8c0 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 teFilesystem.$rfs.=.null).{.$thi
4b8e0 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 s->path.=.$path;..if.(null.===.$
4b900 72 66 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 rfs.&&.preg_match('{^https?://}i
4b920 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ',.$path)).{.throw.new.\InvalidA
4b940 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 68 74 74 70 20 75 72 6c 73 20 72 65 71 75 rgumentException('http.urls.requ
4b960 69 72 65 20 61 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 69 6e 73 74 61 6e 63 65 20 ire.a.RemoteFilesystem.instance.
4b980 74 6f 20 62 65 20 70 61 73 73 65 64 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 to.be.passed');.}.$this->rfs.=.$
4b9a0 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 rfs;.}.....public.function.getPa
4b9c0 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a 7d 0a 0a 0a 0a th().{.return.$this->path;.}....
4b9e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 69 73 74 73 28 29 0a 7b 0a 72 65 ...public.function.exists().{.re
4ba00 74 75 72 6e 20 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a turn.is_file($this->path);.}....
4ba20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 29 0a 7b 0a 74 72 79 20 ...public.function.read().{.try.
4ba40 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 66 73 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 {.if.($this->rfs).{.$json.=.$thi
4ba60 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 2c s->rfs->getContents($this->path,
4ba80 20 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 .$this->path,.false);.}.else.{.$
4baa0 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e json.=.file_get_contents($this->
4bac0 70 61 74 68 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 path);.}.}.catch.(TransportExcep
4bae0 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 tion.$e).{.throw.new.\RuntimeExc
4bb00 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 27 2e 24 74 68 69 73 2d 3e eption('Could.not.read.'.$this->
4bb20 70 61 74 68 2e 27 2c 20 65 69 74 68 65 72 20 79 6f 75 20 6f 72 20 74 68 65 20 72 65 6d 6f 74 65 path.',.either.you.or.the.remote
4bb40 20 68 6f 73 74 20 69 73 20 70 72 6f 62 61 62 6c 79 20 6f 66 66 6c 69 6e 65 27 2e 22 5c 6e 5c 6e .host.is.probably.offline'."\n\n
4bb60 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 ".$e->getMessage());.}.catch.(\E
4bb80 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d xception.$e).{.throw.new.\Runtim
4bba0 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 27 2e 24 74 68 eException('Could.not.read.'.$th
4bbc0 69 73 2d 3e 70 61 74 68 2e 22 5c 6e 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 is->path."\n\n".$e->getMessage()
4bbe0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 61 74 69 63 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 );.}..return.static::parseJson($
4bc00 6a 73 6f 6e 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 json,.$this->path);.}........pub
4bc20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 61 72 72 61 79 20 24 68 61 73 68 2c 20 lic.function.write(array.$hash,.
4bc40 24 6f 70 74 69 6f 6e 73 20 3d 20 34 34 38 29 0a 7b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 $options.=.448).{.$dir.=.dirname
4bc60 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 ($this->path);.if.(!is_dir($dir)
4bc80 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 29 29 20 7b 0a 74 68 72 ).{.if.(file_exists($dir)).{.thr
4bca0 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e ow.new.\UnexpectedValueException
4bcc0 28 0a 24 64 69 72 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 69 72 (.$dir.'.exists.and.is.not.a.dir
4bce0 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 ectory.'.);.}.if.(!mkdir($dir,.0
4bd00 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 777,.true)).{.throw.new.\Unexpec
4bd20 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 64 6f 65 73 20 6e tedValueException(.$dir.'.does.n
4bd40 6f 74 20 65 78 69 73 74 20 61 6e 64 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 ot.exist.and.could.not.be.create
4bd60 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 d.'.);.}.}.file_put_contents($th
4bd80 69 73 2d 3e 70 61 74 68 2c 20 73 74 61 74 69 63 3a 3a 65 6e 63 6f 64 65 28 24 68 61 73 68 2c 20 is->path,.static::encode($hash,.
4bda0 24 6f 70 74 69 6f 6e 73 29 2e 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f $options)..($options.&.self::JSO
4bdc0 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3f 20 22 5c 6e 22 20 3a 20 27 27 29 29 3b 0a 7d 0a N_PRETTY_PRINT.?."\n".:.''));.}.
4bde0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 ........public.function.validate
4be00 53 63 68 65 6d 61 28 24 73 63 68 65 6d 61 20 3d 20 73 65 6c 66 3a 3a 53 54 52 49 43 54 5f 53 43 Schema($schema.=.self::STRICT_SC
4be20 48 45 4d 41 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 HEMA).{.$content.=.file_get_cont
4be40 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f ents($this->path);.$data.=.json_
4be60 64 65 63 6f 64 65 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 decode($content);..if.(null.===.
4be80 24 64 61 74 61 20 26 26 20 27 6e 75 6c 6c 27 20 21 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b 0a $data.&&.'null'.!==.$content).{.
4bea0 73 65 6c 66 3a 3a 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 63 6f 6e 74 65 6e 74 2c 20 24 self::validateSyntax($content,.$
4bec0 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 24 73 63 68 65 6d 61 46 69 6c 65 20 3d 20 5f 5f this->path);.}..$schemaFile.=.__
4bee0 44 49 52 5f 5f 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 63 6f 6d 70 6f 73 65 72 2d DIR__...'/../../../res/composer-
4bf00 73 63 68 65 6d 61 2e 6a 73 6f 6e 27 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 20 3d 20 6a 73 6f 6e schema.json';.$schemaData.=.json
4bf20 5f 64 65 63 6f 64 65 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 73 63 68 65 6d _decode(file_get_contents($schem
4bf40 61 46 69 6c 65 29 29 3b 0a 0a 69 66 20 28 24 73 63 68 65 6d 61 20 3d 3d 3d 20 73 65 6c 66 3a 3a aFile));..if.($schema.===.self::
4bf60 4c 41 58 5f 53 43 48 45 4d 41 29 20 7b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 61 64 64 69 74 LAX_SCHEMA).{.$schemaData->addit
4bf80 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 3d 20 74 72 75 65 3b 0a 24 73 63 68 65 6d 61 44 ionalProperties.=.true;.$schemaD
4bfa0 61 74 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 2d 3e 6e 61 6d 65 2d 3e 72 65 71 75 69 72 65 64 20 ata->properties->name->required.
4bfc0 3d 20 66 61 6c 73 65 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 =.false;.$schemaData->properties
4bfe0 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 72 65 71 75 69 72 65 64 20 3d 20 66 61 6c 73 65 3b ->description->required.=.false;
4c000 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 6f 72 28 29 .}..$validator.=.new.Validator()
4c020 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 64 61 74 61 2c 20 24 73 63 68 65 ;.$validator->check($data,.$sche
4c040 6d 61 44 61 74 61 29 3b 0a 0a 0a 0a 69 66 20 28 21 24 76 61 6c 69 64 61 74 6f 72 2d 3e 69 73 56 maData);....if.(!$validator->isV
4c060 61 6c 69 64 28 29 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 alid()).{.$errors.=.array();.for
4c080 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 each.((array).$validator->getErr
4c0a0 6f 72 73 28 29 20 61 73 20 24 65 72 72 6f 72 29 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 28 ors().as.$error).{.$errors[].=.(
4c0c0 24 65 72 72 6f 72 5b 27 70 72 6f 70 65 72 74 79 27 5d 20 3f 20 24 65 72 72 6f 72 5b 27 70 72 6f $error['property'].?.$error['pro
4c0e0 70 65 72 74 79 27 5d 2e 27 20 3a 20 27 20 3a 20 27 27 29 2e 24 65 72 72 6f 72 5b 27 6d 65 73 73 perty'].'.:.'.:.'').$error['mess
4c100 61 67 65 27 5d 3b 0a 7d 0a 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f age'];.}.throw.new.JsonValidatio
4c120 6e 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 74 68 69 73 2d 3e 70 61 74 68 2e 27 22 20 64 6f nException('"'.$this->path.'".do
4c140 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 65 78 70 65 63 74 65 64 20 4a 53 4f 4e 20 73 es.not.match.the.expected.JSON.s
4c160 63 68 65 6d 61 27 2c 20 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 chema',.$errors);.}..return.true
4c180 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 ;.}..............public.static.f
4c1a0 75 6e 63 74 69 6f 6e 20 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 20 3d unction.encode($data,.$options.=
4c1c0 20 34 34 38 29 0a 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f .448).{.if.(version_compare(PHP_
4c1e0 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 VERSION,.'5.4',.'>=')).{.return.
4c200 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a json_encode($data,.$options);.}.
4c220 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 0a 24 70 .$json.=.json_encode($data);..$p
4c240 72 65 74 74 79 50 72 69 6e 74 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 rettyPrint.=.(bool).($options.&.
4c260 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 29 3b 0a 24 75 6e 65 73 63 self::JSON_PRETTY_PRINT);.$unesc
4c280 61 70 65 55 6e 69 63 6f 64 65 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 apeUnicode.=.(bool).($options.&.
4c2a0 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b 0a 24 self::JSON_UNESCAPED_UNICODE);.$
4c2c0 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f unescapeSlashes.=.(bool).($optio
4c2e0 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 ns.&.self::JSON_UNESCAPED_SLASHE
4c300 53 29 3b 0a 0a 69 66 20 28 21 24 70 72 65 74 74 79 50 72 69 6e 74 20 26 26 20 21 24 75 6e 65 73 S);..if.(!$prettyPrint.&&.!$unes
4c320 63 61 70 65 55 6e 69 63 6f 64 65 20 26 26 20 21 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 capeUnicode.&&.!$unescapeSlashes
4c340 29 20 7b 0a 72 65 74 75 72 6e 20 24 6a 73 6f 6e 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 27 ).{.return.$json;.}..$result.=.'
4c360 27 3b 0a 24 70 6f 73 20 3d 20 30 3b 0a 24 73 74 72 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6a ';.$pos.=.0;.$strLen.=.strlen($j
4c380 73 6f 6e 29 3b 0a 24 69 6e 64 65 6e 74 53 74 72 20 3d 20 27 20 20 20 20 27 3b 0a 24 6e 65 77 4c son);.$indentStr.=.'....';.$newL
4c3a0 69 6e 65 20 3d 20 22 5c 6e 22 3b 0a 24 6f 75 74 4f 66 51 75 6f 74 65 73 20 3d 20 74 72 75 65 3b ine.=."\n";.$outOfQuotes.=.true;
4c3c0 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 74 72 75 65 3b .$buffer.=.'';.$noescape.=.true;
4c3e0 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 3d 20 24 73 74 72 4c 65 6e 3b 20 24 69 ..for.($i.=.0;.$i.<=.$strLen;.$i
4c400 2b 2b 29 20 7b 0a 0a 20 24 63 68 61 72 20 3d 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 24 69 ++).{...$char.=.substr($json,.$i
4c420 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 27 22 27 20 3d 3d 3d 20 24 63 68 61 72 20 26 26 20 24 6e ,.1);....if.('"'.===.$char.&&.$n
4c440 6f 65 73 63 61 70 65 29 20 7b 0a 24 6f 75 74 4f 66 51 75 6f 74 65 73 20 3d 20 21 24 6f 75 74 4f oescape).{.$outOfQuotes.=.!$outO
4c460 66 51 75 6f 74 65 73 3b 0a 7d 0a 0a 69 66 20 28 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 29 20 7b fQuotes;.}..if.(!$outOfQuotes).{
4c480 0a 24 62 75 66 66 65 72 20 2e 3d 20 24 63 68 61 72 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 27 .$buffer..=.$char;.$noescape.=.'
4c4a0 5c 5c 27 20 3d 3d 3d 20 24 63 68 61 72 20 3f 20 21 24 6e 6f 65 73 63 61 70 65 20 3a 20 74 72 75 \\'.===.$char.?.!$noescape.:.tru
4c4c0 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 27 20 21 3d 3d 20 24 62 e;.continue;.}.elseif.(''.!==.$b
4c4e0 75 66 66 65 72 29 20 7b 0a 69 66 20 28 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b uffer).{.if.($unescapeSlashes).{
4c500 0a 24 62 75 66 66 65 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2f 27 2c 20 27 2f .$buffer.=.str_replace('\\/',.'/
4c520 27 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 75 6e 65 73 63 61 70 65 55 6e 69 ',.$buffer);.}..if.($unescapeUni
4c540 63 6f 64 65 20 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 63 6f 6e 76 code.&&.function_exists('mb_conv
4c560 65 72 74 5f 65 6e 63 6f 64 69 6e 67 27 29 29 20 7b 0a 0a 20 24 62 75 66 66 65 72 20 3d 20 70 72 ert_encoding')).{...$buffer.=.pr
4c580 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 2f 5c 5c 5c 5c 75 28 5b 30 2d 39 eg_replace_callback('/\\\\u([0-9
4c5a0 61 2d 66 5d 7b 34 7d 29 2f 69 27 2c 20 66 75 6e 63 74 69 6f 6e 28 24 6d 61 74 63 68 29 20 7b 0a a-f]{4})/i',.function($match).{.
4c5c0 72 65 74 75 72 6e 20 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 70 61 63 6b 28 return.mb_convert_encoding(pack(
4c5e0 27 48 2a 27 2c 20 24 6d 61 74 63 68 5b 31 5d 29 2c 20 27 55 54 46 2d 38 27 2c 20 27 55 43 53 2d 'H*',.$match[1]),.'UTF-8',.'UCS-
4c600 32 42 45 27 29 3b 0a 7d 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 2BE');.},.$buffer);.}..$result..
4c620 3d 20 24 62 75 66 66 65 72 2e 24 63 68 61 72 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 63 =.$buffer.$char;.$buffer.=.'';.c
4c640 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 3a 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b ontinue;.}..if.(':'.===.$char).{
4c660 0a 0a 20 24 63 68 61 72 20 2e 3d 20 27 20 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 28 27 7d 27 20 ...$char..=.'.';.}.elseif.(('}'.
4c680 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 5d 27 20 3d 3d 3d 20 24 63 68 61 72 29 29 20 7b 0a 24 ===.$char.||.']'.===.$char)).{.$
4c6a0 70 6f 73 2d 2d 3b 0a 24 70 72 65 76 43 68 61 72 20 3d 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c pos--;.$prevChar.=.substr($json,
4c6c0 20 24 69 20 2d 20 31 2c 20 31 29 3b 0a 0a 69 66 20 28 27 7b 27 20 21 3d 3d 20 24 70 72 65 76 43 .$i.-.1,.1);..if.('{'.!==.$prevC
4c6e0 68 61 72 20 26 26 20 27 5b 27 20 21 3d 3d 20 24 70 72 65 76 43 68 61 72 29 20 7b 0a 0a 20 0a 20 har.&&.'['.!==.$prevChar).{.....
4c700 24 72 65 73 75 6c 74 20 2e 3d 20 24 6e 65 77 4c 69 6e 65 3b 0a 66 6f 72 20 28 24 6a 20 3d 20 30 $result..=.$newLine;.for.($j.=.0
4c720 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 ;.$j.<.$pos;.$j++).{.$result..=.
4c740 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 $indentStr;.}.}.else.{...$result
4c760 20 3d 20 72 74 72 69 6d 28 24 72 65 73 75 6c 74 29 2e 22 5c 6e 5c 6e 22 2e 24 69 6e 64 65 6e 74 .=.rtrim($result)."\n\n".$indent
4c780 53 74 72 3b 0a 7d 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 63 68 61 72 3b 0a 0a 0a 20 0a Str;.}.}..$result..=.$char;.....
4c7a0 20 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 7b 27 20 3d 3d 3d 20 24 63 .if.(','.===.$char.||.'{'.===.$c
4c7c0 68 61 72 20 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 72 65 73 75 6c 74 20 har.||.'['.===.$char).{.$result.
4c7e0 2e 3d 20 24 6e 65 77 4c 69 6e 65 3b 0a 0a 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 68 61 72 20 .=.$newLine;..if.('{'.===.$char.
4c800 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 70 6f 73 2b 2b 3b 0a 7d 0a 0a 66 ||.'['.===.$char).{.$pos++;.}..f
4c820 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 7b 0a 24 or.($j.=.0;.$j.<.$pos;.$j++).{.$
4c840 72 65 73 75 6c 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 result..=.$indentStr;.}.}.}..ret
4c860 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 urn.$result;.}..........public.s
4c880 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 tatic.function.parseJson($json,.
4c8a0 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 $file.=.null).{.$data.=.json_dec
4c8c0 6f 64 65 28 24 6a 73 6f 6e 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ode($json,.true);.if.(null.===.$
4c8e0 64 61 74 61 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f 4e 45 20 21 3d 3d 20 6a 73 6f 6e data.&&.JSON_ERROR_NONE.!==.json
4c900 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 73 65 6c 66 3a 3a 76 61 6c 69 64 61 74 65 53 _last_error()).{.self::validateS
4c920 79 6e 74 61 78 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 yntax($json,.$file);.}..return.$
4c940 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 data;.}...........protected.stat
4c960 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 6a 73 6f 6e ic.function.validateSyntax($json
4c980 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 ,.$file.=.null).{.$parser.=.new.
4c9a0 4a 73 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 70 61 72 73 65 72 2d JsonParser();.$result.=.$parser-
4c9c0 3e 6c 69 6e 74 28 24 6a 73 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 73 75 >lint($json);.if.(null.===.$resu
4c9e0 6c 74 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 lt).{.if.(defined('JSON_ERROR_UT
4ca00 46 38 27 29 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 38 20 3d 3d 3d 20 6a 73 6f 6e F8').&&.JSON_ERROR_UTF8.===.json
4ca20 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 _last_error()).{.throw.new.\Unex
4ca40 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 66 69 6c 65 2e 27 pectedValueException('"'.$file.'
4ca60 22 20 69 73 20 6e 6f 74 20 55 54 46 2d 38 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 ".is.not.UTF-8,.could.not.parse.
4ca80 61 73 20 4a 53 4f 4e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 74 68 as.JSON');.}..return.true;.}..th
4caa0 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 66 69 row.new.ParsingException('"'.$fi
4cac0 6c 65 2e 27 22 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 76 61 6c 69 64 20 4a 53 4f le.'".does.not.contain.valid.JSO
4cae0 4e 27 2e 22 5c 6e 22 2e 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 24 N'."\n".$result->getMessage(),.$
4cb00 72 65 73 75 6c 74 2d 3e 67 65 74 44 65 74 61 69 6c 73 28 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 result->getDetails());.}.}.<?php
4cb20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a ............namespace.Composer\J
4cb40 73 6f 6e 3b 0a 0a 75 73 65 20 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a son;..use.Exception;.....class.J
4cb60 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 45 sonValidationException.extends.E
4cb80 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 73 3b 0a 0a 70 xception.{.protected.$errors;..p
4cba0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 ublic.function.__construct($mess
4cbc0 61 67 65 2c 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d age,.$errors.=.array()).{.$this-
4cbe0 3e 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e >errors.=.$errors;.parent::__con
4cc00 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 struct($message);.}..public.func
4cc20 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tion.getErrors().{.return.$this-
4cc40 3e 65 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 >errors;.}.}.<?php............na
4cc60 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 mespace.Composer;.....class.Conf
4cc80 69 67 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 ig.{.public.static.$defaultConfi
4cca0 67 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 g.=.array(.'process-timeout'.=>.
4ccc0 33 30 30 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 20 3d 3e 20 27 76 65 6e 64 6f 72 27 2c 0a 27 300,.'vendor-dir'.=>.'vendor',.'
4cce0 62 69 6e 2d 64 69 72 27 20 3d 3e 20 27 7b 24 76 65 6e 64 6f 72 2d 64 69 72 7d 2f 62 69 6e 27 2c bin-dir'.=>.'{$vendor-dir}/bin',
4cd00 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 74 72 75 65 2c 0a 29 3b .'notify-on-install'.=>.true,.);
4cd20 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f ..public.static.$defaultReposito
4cd40 72 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 69 73 74 27 20 3d 3e 20 61 72 72 ries.=.array(.'packagist'.=>.arr
4cd60 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 63 6f 6d 70 6f 73 65 72 27 2c 0a 27 75 72 6c 27 20 ay(.'type'.=>.'composer',.'url'.
4cd80 3d 3e 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 0a 29 0a 29 3b 0a =>.'http://packagist.org',.).);.
4cda0 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 .private.$config;.private.$repos
4cdc0 69 74 6f 72 69 65 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 itories;..public.function.__cons
4cde0 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 truct().{...$this->config.=.stat
4ce00 69 63 3a 3a 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 ic::$defaultConfig;.$this->repos
4ce20 69 74 6f 72 69 65 73 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 itories.=.static::$defaultReposi
4ce40 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tories;.}.......public.function.
4ce60 6d 65 72 67 65 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 21 65 6d merge(array.$config).{...if.(!em
4ce80 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 20 26 26 20 69 73 5f 61 72 72 pty($config['config']).&&.is_arr
4cea0 61 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e ay($config['config'])).{.$this->
4cec0 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 config.=.array_replace_recursive
4cee0 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 ($this->config,.$config['config'
4cf00 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 ]);.}..if.(!empty($config['repos
4cf20 69 74 6f 72 69 65 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 itories']).&&.is_array($config['
4cf40 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 repositories'])).{.$this->reposi
4cf60 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 tories.=.array_reverse($this->re
4cf80 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 24 6e 65 77 52 65 70 6f 73 20 3d 20 61 positories,.true);.$newRepos.=.a
4cfa0 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 rray_reverse($config['repositori
4cfc0 65 73 27 5d 2c 20 74 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 52 65 70 6f 73 20 es'],.true);.foreach.($newRepos.
4cfe0 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 20 69 66 20 as.$name.=>.$repository).{...if.
4d000 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 75 6e 73 65 74 28 (false.===.$repository).{.unset(
4d020 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 24 6e 61 6d 65 5d 29 3b 0a 63 6f 6e $this->repositories[$name]);.con
4d040 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 72 65 70 tinue;.}....if.(1.===.count($rep
4d060 6f 73 69 74 6f 72 79 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 63 75 72 72 65 6e 74 28 24 72 ository).&&.false.===.current($r
4d080 65 70 6f 73 69 74 6f 72 79 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 epository)).{.unset($this->repos
4d0a0 69 74 6f 72 69 65 73 5b 6b 65 79 28 24 72 65 70 6f 73 69 74 6f 72 79 29 5d 29 3b 0a 63 6f 6e 74 itories[key($repository)]);.cont
4d0c0 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a inue;.}....if.(is_int($name)).{.
4d0e0 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 $this->repositories[].=.$reposit
4d100 6f 72 79 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 ory;.}.else.{.$this->repositorie
4d120 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 7d 0a 24 74 68 69 s[$name].=.$repository;.}.}.$thi
4d140 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 s->repositories.=.array_reverse(
4d160 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a $this->repositories,.true);.}.}.
4d180 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 ....public.function.getRepositor
4d1a0 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 ies().{.return.$this->repositori
4d1c0 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 es;.}........public.function.get
4d1e0 28 24 6b 65 79 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6b 65 79 29 20 7b 0a 63 61 73 65 20 27 76 ($key).{.switch.($key).{.case.'v
4d200 65 6e 64 6f 72 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 62 69 6e 2d 64 69 72 27 3a 0a 63 61 73 65 endor-dir':.case.'bin-dir':.case
4d220 20 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 3a 0a 0a 20 24 65 6e 76 20 3d 20 27 43 4f .'process-timeout':...$env.=.'CO
4d240 4d 50 4f 53 45 52 5f 27 20 2e 20 73 74 72 74 6f 75 70 70 65 72 28 73 74 72 74 72 28 24 6b 65 79 MPOSER_'...strtoupper(strtr($key
4d260 2c 20 27 2d 27 2c 20 27 5f 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 ,.'-',.'_'));..return.rtrim($thi
4d280 73 2d 3e 70 72 6f 63 65 73 73 28 67 65 74 65 6e 76 28 24 65 6e 76 29 20 3f 3a 20 24 74 68 69 73 s->process(getenv($env).?:.$this
4d2a0 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 63 61 73 65 20 27 ->config[$key]),.'/\\');..case.'
4d2c0 68 6f 6d 65 27 3a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 home':.return.rtrim($this->proce
4d2e0 73 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 2c 20 27 2f 5c 5c 27 29 3b ss($this->config[$key]),.'/\\');
4d300 0a 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ..default:.return.$this->process
4d320 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a ($this->config[$key]);.}.}......
4d340 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6b 65 79 29 0a 7b 0a 72 65 ..public.function.has($key).{.re
4d360 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6b 65 79 2c 20 24 74 68 69 turn.array_key_exists($key,.$thi
4d380 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e s->config);.}........private.fun
4d3a0 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 28 24 76 61 6c 75 65 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 ction.process($value).{.$config.
4d3c0 3d 20 24 74 68 69 73 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 =.$this;..return.preg_replace_ca
4d3e0 6c 6c 62 61 63 6b 28 27 23 5c 7b 5c 24 28 2e 2b 29 5c 7d 23 27 2c 20 66 75 6e 63 74 69 6f 6e 20 llback('#\{\$(.+)\}#',.function.
4d400 28 24 6d 61 74 63 68 29 20 75 73 65 20 28 24 63 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 20 ($match).use.($config).{.return.
4d420 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 2c 20 24 76 61 6c $config->get($match[1]);.},.$val
4d440 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ue);.}.}.<?php............namesp
4d460 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 ace.Composer\Script;..use.Compos
4d480 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 er\Composer;.use.Composer\IO\IOI
4d4a0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a nterface;.......class.Event.{...
4d4c0 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d .private.$name;.....private.$com
4d4e0 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a poser;.....private.$io;.........
4d500 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d public.function.__construct($nam
4d520 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 e,.Composer.$composer,.IOInterfa
4d540 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 ce.$io).{.$this->name.=.$name;.$
4d560 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 this->composer.=.$composer;.$thi
4d580 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s->io.=.$io;.}.......public.func
4d5a0 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e tion.getName().{.return.$this->n
4d5c0 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ame;.}.......public.function.get
4d5e0 43 6f 6d 70 6f 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f Composer().{.return.$this->compo
4d600 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ser;.}.......public.function.get
4d620 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 7d 0a 3c 3f 70 IO().{.return.$this->io;.}.}.<?p
4d640 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
4d660 5c 53 63 72 69 70 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 70 74 45 76 65 6e \Script;........class.ScriptEven
4d680 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d ts.{........const.PRE_INSTALL_CM
4d6a0 44 20 3d 20 27 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 D.=.'pre-install-cmd';.........c
4d6c0 6f 6e 73 74 20 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 69 6e onst.POST_INSTALL_CMD.=.'post-in
4d6e0 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 55 50 stall-cmd';.........const.PRE_UP
4d700 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a DATE_CMD.=.'pre-update-cmd';....
4d720 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 6f .....const.POST_UPDATE_CMD.=.'po
4d740 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 st-update-cmd';.........const.PR
4d760 45 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 E_PACKAGE_INSTALL.=.'pre-package
4d780 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 -install';.........const.POST_PA
4d7a0 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e CKAGE_INSTALL.=.'post-package-in
4d7c0 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 stall';.........const.PRE_PACKAG
4d7e0 45 5f 55 50 44 41 54 45 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b E_UPDATE.=.'pre-package-update';
4d800 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 50 44 41 .........const.POST_PACKAGE_UPDA
4d820 54 45 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b 0a 0a 0a 0a 0a TE.=.'post-package-update';.....
4d840 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 ....const.PRE_PACKAGE_UNINSTALL.
4d860 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a =.'pre-package-uninstall';......
4d880 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 ...const.POST_PACKAGE_UNINSTALL.
4d8a0 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 3c 3f =.'post-package-uninstall';.}.<?
4d8c0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
4d8e0 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 r\Script;..use.Composer\Composer
4d900 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 65 6e ;.......class.CommandEvent.exten
4d920 64 73 20 45 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ds.Event.{.}.<?php............na
4d940 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f mespace.Composer\Script;..use.Co
4d960 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f mposer\Composer;.use.Composer\IO
4d980 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e \IOInterface;.use.Composer\Depen
4d9a0 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f dencyResolver\Operation\Operatio
4d9c0 6e 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 nInterface;.......class.PackageE
4d9e0 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 vent.extends.Event.{....private.
4da00 24 6f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $operation;..........public.func
4da20 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 tion.__construct($name,.Composer
4da40 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 4f 70 65 .$composer,.IOInterface.$io,.Ope
4da60 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 70 61 rationInterface.$operation).{.pa
4da80 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 rent::__construct($name,.$compos
4daa0 65 72 2c 20 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 20 3d 20 24 6f 70 er,.$io);.$this->operation.=.$op
4dac0 65 72 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e eration;.}.......public.function
4dae0 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .getOperation().{.return.$this->
4db00 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a operation;.}.}.<?php............
4db20 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 namespace.Composer\Script;..use.
4db40 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 Composer\Autoload\AutoloadGenera
4db60 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 tor;.use.Composer\IO\IOInterface
4db80 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d ;.use.Composer\Composer;.use.Com
4dba0 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 poser\DependencyResolver\Operati
4dbc0 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a on\OperationInterface;..........
4dbe0 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 0a 7b 0a 70 72 6f 74 ....class.EventDispatcher.{.prot
4dc00 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a ected.$composer;.protected.$io;.
4dc20 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 protected.$loader;........public
4dc40 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 70 6f 73 65 72 20 24 .function.__construct(Composer.$
4dc60 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 composer,.IOInterface.$io).{.$th
4dc80 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d is->composer.=.$composer;.$this-
4dca0 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 >io.=.$io;.}........public.funct
4dcc0 69 6f 6e 20 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e ion.dispatchPackageEvent($eventN
4dce0 61 6d 65 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 ame,.OperationInterface.$operati
4dd00 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 50 61 63 6b on).{.$this->doDispatch(new.Pack
4dd20 61 67 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 ageEvent($eventName,.$this->comp
4dd40 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 29 3b 0a 7d oser,.$this->io,.$operation));.}
4dd60 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 43 .......public.function.dispatchC
4dd80 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d ommandEvent($eventName).{.$this-
4dda0 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 >doDispatch(new.CommandEvent($ev
4ddc0 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d entName,.$this->composer,.$this-
4dde0 3e 69 6f 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f >io));.}.......protected.functio
4de00 6e 20 64 6f 44 69 73 70 61 74 63 68 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 6c 69 n.doDispatch(Event.$event).{.$li
4de20 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 69 73 74 65 6e 65 72 73 28 24 65 steners.=.$this->getListeners($e
4de40 76 65 6e 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 73 74 65 6e 65 72 73 20 61 73 20 24 vent);..foreach.($listeners.as.$
4de60 63 61 6c 6c 61 62 6c 65 29 20 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 callable).{.$className.=.substr(
4de80 24 63 61 6c 6c 61 62 6c 65 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 $callable,.0,.strpos($callable,.
4dea0 27 3a 3a 27 29 29 3b 0a 24 6d 65 74 68 6f 64 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 '::'));.$methodName.=.substr($ca
4dec0 6c 6c 61 62 6c 65 2c 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 20 llable,.strpos($callable,.'::').
4dee0 2b 20 32 29 3b 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 4e +.2);..if.(!class_exists($classN
4df00 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c ame)).{.throw.new.\UnexpectedVal
4df20 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6c 61 73 73 20 27 2e 24 63 6c 61 73 73 4e 61 6d 65 2e ueException('Class.'.$className.
4df40 27 20 69 73 20 6e 6f 74 20 61 75 74 6f 6c 6f 61 64 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 '.is.not.autoloadable,.can.not.c
4df60 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 all.'.$event->getName().'.script
4df80 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 ');.}.if.(!is_callable($callable
4dfa0 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 )).{.throw.new.\UnexpectedValueE
4dfc0 78 63 65 70 74 69 6f 6e 28 27 4d 65 74 68 6f 64 20 27 2e 24 63 61 6c 6c 61 62 6c 65 2e 27 20 69 xception('Method.'.$callable.'.i
4dfe0 73 20 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 s.not.callable,.can.not.call.'.$
4e000 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 27 29 3b 0a 7d 0a 0a event->getName().'.script');.}..
4e020 74 72 79 20 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 3a 3a 24 6d 65 74 68 6f 64 4e 61 6d 65 28 24 65 try.{.$className::$methodName($e
4e040 76 65 6e 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b vent);.}.catch.(\Exception.$e).{
4e060 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 53 63 72 69 70 74 20 25 73 20 68 61 6e 64 6c 69 6e 67 20 .$message.=."Script.%s.handling.
4e080 74 68 65 20 25 73 20 65 76 65 6e 74 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 61 6e 20 the.%s.event.terminated.with.an.
4e0a0 65 78 63 65 70 74 69 6f 6e 22 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 exception";.$this->io->write('<e
4e0c0 72 72 6f 72 3e 27 2e 73 70 72 69 6e 74 66 28 24 6d 65 73 73 61 67 65 2c 20 24 63 61 6c 6c 61 62 rror>'.sprintf($message,.$callab
4e0e0 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 2e 27 3c 2f 65 72 72 6f 72 3e le,.$event->getName()).'</error>
4e100 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ');.throw.$e;.}.}.}......protect
4e120 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e 74 20 24 ed.function.getListeners(Event.$
4e140 65 76 65 6e 74 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f event).{.$package.=.$this->compo
4e160 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 73 63 72 69 70 74 73 20 3d 20 24 70 ser->getPackage();.$scripts.=.$p
4e180 61 63 6b 61 67 65 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 ackage->getScripts();..if.(empty
4e1a0 28 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b ($scripts[$event->getName()])).{
4e1c0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c .return.array();.}..if.($this->l
4e1e0 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 75 6e 72 65 67 69 73 74 oader).{.$this->loader->unregist
4e200 65 72 28 29 3b 0a 7d 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f er();.}..$generator.=.new.Autolo
4e220 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e adGenerator;.$packages.=.$this->
4e240 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 composer->getRepositoryManager()
4e260 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 ->getLocalRepository()->getPacka
4e280 67 65 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d ges();.$packageMap.=.$generator-
4e2a0 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 >buildPackageMap($this->composer
4e2c0 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c 20 24 70 61 63 ->getInstallationManager(),.$pac
4e2e0 6b 61 67 65 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 kage,.$packages);.$map.=.$genera
4e300 74 6f 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 70 29 tor->parseAutoloads($packageMap)
4e320 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 ;.$this->loader.=.$generator->cr
4e340 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d eateLoader($map);.$this->loader-
4e360 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 63 72 69 70 74 73 5b 24 65 >register();..return.$scripts[$e
4e380 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a vent->getName()];.}.}.<?php.....
4e3a0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c .......namespace.Composer\Instal
4e3c0 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e ler;..use.Composer\Repository\In
4e3e0 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 stalledRepositoryInterface;.use.
4e400 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Composer\Package\PackageInterfac
4e420 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 20 69 e;.........class.NoopInstaller.i
4e440 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a mplements.InstallerInterface.{..
4e460 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b ..public.function.supports($pack
4e480 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ageType).{.return.true;.}.....pu
4e4a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c blic.function.isInstalled(Instal
4e4c0 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 ledRepositoryInterface.$repo,.Pa
4e4e0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 ckageInterface.$package).{.retur
4e500 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d n.$repo->hasPackage($package);.}
4e520 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 .....public.function.install(Ins
4e540 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c talledRepositoryInterface.$repo,
4e560 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 .PackageInterface.$package).{.if
4e580 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 .(!$repo->hasPackage($package)).
4e5a0 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 {.$repo->addPackage(clone.$packa
4e5c0 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 ge);.}.}.....public.function.upd
4e5e0 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 ate(InstalledRepositoryInterface
4e600 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 .$repo,.PackageInterface.$initia
4e620 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 l,.PackageInterface.$target).{.i
4e640 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 f.(!$repo->hasPackage($initial))
4e660 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
4e680 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 eption('Package.is.not.installed
4e6a0 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 :.'.$initial);.}..if.(!$repo->ha
4e6c0 73 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 sPackage($target)).{.$repo->addP
4e6e0 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 ackage(clone.$target);.}.}.....p
4e700 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c ublic.function.uninstall(Install
4e720 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 edRepositoryInterface.$repo,.Pac
4e740 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 kageInterface.$package).{.if.(!$
4e760 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 repo->hasPackage($package)).{...
4e780 72 65 74 75 72 6e 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 return;.throw.new.\InvalidArgume
4e7a0 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 ntException('Package.is.not.inst
4e7c0 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 72 65 70 6f 2d 3e 72 65 6d alled:.'.$package);.}.$repo->rem
4e7e0 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ovePackage($package);.}.....publ
4e800 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 ic.function.getInstallPath(Packa
4e820 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 geInterface.$package).{.$targetD
4e840 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a ir.=.$package->getTargetDir();..
4e860 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 return.$package->getPrettyName()
4e880 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 ...($targetDir.?.'/'.$targetDir.
4e8a0 3a 20 27 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 :.'');.}.}.<?php............name
4e8c0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 space.Composer\Installer;..use.C
4e8e0 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f omposer\Repository\InstalledRepo
4e900 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 sitoryInterface;.use.Composer\Pa
4e920 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c ckage\PackageInterface;.......cl
4e940 61 73 73 20 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 ass.MetapackageInstaller.impleme
4e960 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c nts.InstallerInterface.{....publ
4e980 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 ic.function.supports($packageTyp
4e9a0 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 6d 65 e).{.return.$packageType.===.'me
4e9c0 74 61 70 61 63 6b 61 67 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tapackage';.}.....public.functio
4e9e0 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 n.isInstalled(InstalledRepositor
4ea00 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 yInterface.$repo,.PackageInterfa
4ea20 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 ce.$package).{.return.$repo->has
4ea40 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 Package($package);.}.....public.
4ea60 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 function.install(InstalledReposi
4ea80 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
4eaa0 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b rface.$package).{.$repo->addPack
4eac0 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 age(clone.$package);.}.....publi
4eae0 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 c.function.update(InstalledRepos
4eb00 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 itoryInterface.$repo,.PackageInt
4eb20 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 erface.$initial,.PackageInterfac
4eb40 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b e.$target).{.if.(!$repo->hasPack
4eb60 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 age($initial)).{.throw.new.\Inva
4eb80 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 lidArgumentException('Package.is
4eba0 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a .not.installed:.'.$initial);.}..
4ebc0 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a $repo->removePackage($initial);.
4ebe0 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 $repo->addPackage(clone.$target)
4ec00 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c ;.}.....public.function.uninstal
4ec20 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 l(InstalledRepositoryInterface.$
4ec40 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 repo,.PackageInterface.$package)
4ec60 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 .{.if.(!$repo->hasPackage($packa
4ec80 67 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 ge)).{...return;.throw.new.\Inva
4eca0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 lidArgumentException('Package.is
4ecc0 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a .not.installed:.'.$package);.}..
4ece0 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a $repo->removePackage($package);.
4ed00 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c }.....public.function.getInstall
4ed20 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a Path(PackageInterface.$package).
4ed40 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a {.return.'';.}.}.<?php..........
4ed60 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a ..namespace.Composer\Installer;.
4ed80 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 .use.Composer\IO\IOInterface;.us
4eda0 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 e.Composer\Composer;.use.Compose
4edc0 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f r\Downloader\PearPackageExtracto
4ede0 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 r;.use.Composer\Repository\Insta
4ee00 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d lledRepositoryInterface;.use.Com
4ee20 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a poser\Package\PackageInterface;.
4ee40 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e .......class.PearInstaller.exten
4ee60 64 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ds.LibraryInstaller.{........pub
4ee80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 lic.function.__construct(IOInter
4eea0 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 face.$io,.Composer.$composer,.$t
4eec0 79 70 65 20 3d 20 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a ype.=.'pear-library').{.parent::
4eee0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 __construct($io,.$composer,.$typ
4ef00 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 e);.}.....public.function.update
4ef20 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 (InstalledRepositoryInterface.$r
4ef40 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 epo,.PackageInterface.$initial,.
4ef60 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 74 68 69 PackageInterface.$target).{.$thi
4ef80 73 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 s->uninstall($repo,.$initial);.$
4efa0 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d this->install($repo,.$target);.}
4efc0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 ..protected.function.installCode
4efe0 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 70 61 (PackageInterface.$package).{.pa
4f000 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 70 61 72 rent::installCode($package);.par
4f020 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 0a 24 69 73 57 69 6e ent::initializeBinDir();..$isWin
4f040 64 6f 77 73 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 dows.=.defined('PHP_WINDOWS_VERS
4f060 49 4f 4e 5f 42 55 49 4c 44 27 29 20 3f 20 74 72 75 65 20 3a 20 66 61 6c 73 65 3b 0a 24 70 68 70 ION_BUILD').?.true.:.false;.$php
4f080 5f 62 69 6e 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 2e 20 28 24 69 73 57 69 6e 64 6f _bin.=.$this->binDir...($isWindo
4f0a0 77 73 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 20 3a 20 27 2f 63 6f 6d ws.?.'/composer-php.bat'.:.'/com
4f0c0 70 6f 73 65 72 2d 70 68 70 27 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 poser-php');..$installPath.=.$th
4f0e0 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 76 is->getInstallPath($package);.$v
4f100 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 6f 73 27 20 3d 3e 20 24 69 73 57 69 6e 64 6f 77 73 20 ars.=.array(.'os'.=>.$isWindows.
4f120 3f 20 27 77 69 6e 64 6f 77 73 27 20 3a 20 27 6c 69 6e 75 78 27 2c 0a 27 70 68 70 5f 62 69 6e 27 ?.'windows'.:.'linux',.'php_bin'
4f140 20 3d 3e 20 24 70 68 70 5f 62 69 6e 2c 0a 27 70 65 61 72 5f 70 68 70 27 20 3d 3e 20 24 69 6e 73 .=>.$php_bin,.'pear_php'.=>.$ins
4f160 74 61 6c 6c 50 61 74 68 2c 0a 27 70 68 70 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 tallPath,.'php_dir'.=>.$installP
4f180 61 74 68 2c 0a 27 62 69 6e 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 2e ath,.'bin_dir'.=>.$installPath..
4f1a0 20 27 2f 62 69 6e 27 2c 0a 27 64 61 74 61 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 .'/bin',.'data_dir'.=>.$installP
4f1c0 61 74 68 20 2e 20 27 2f 64 61 74 61 27 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 ath...'/data',.'version'.=>.$pac
4f1e0 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 0a 24 70 kage->getPrettyVersion(),.);..$p
4f200 61 63 6b 61 67 65 41 72 63 68 69 76 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c ackageArchive.=.$this->getInstal
4f220 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 24 70 61 lPath($package).'/'.pathinfo($pa
4f240 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 ckage->getDistUrl(),.PATHINFO_BA
4f260 53 45 4e 41 4d 45 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 20 3d 20 6e 65 77 20 50 65 SENAME);.$pearExtractor.=.new.Pe
4f280 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 28 24 70 61 63 6b 61 67 65 41 72 63 68 69 arPackageExtractor($packageArchi
4f2a0 76 65 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 ve);.$pearExtractor->extractTo($
4f2c0 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2c 20 this->getInstallPath($package),.
4f2e0 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 69 70 74 27 20 3d 3e 20 array('php'.=>.'/',.'script'.=>.
4f300 27 2f 62 69 6e 27 2c 20 27 64 61 74 61 27 20 3d 3e 20 27 2f 64 61 74 61 27 29 2c 20 24 76 61 72 '/bin',.'data'.=>.'/data'),.$var
4f320 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 s);..if.($this->io->isVerbose())
4f340 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 43 6c 65 61 6e 69 6e .{.$this->io->write('....Cleanin
4f360 67 20 75 70 27 29 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 g.up');.}.unlink($packageArchive
4f380 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 );.}..protected.function.getBina
4f3a0 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a ries(PackageInterface.$package).
4f3c0 7b 0a 24 62 69 6e 61 72 69 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 {.$binariesPath.=.$this->getInst
4f3e0 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 27 2f 62 69 6e 2f 27 3b 0a 24 62 69 allPath($package)...'/bin/';.$bi
4f400 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 naries.=.array();.if.(file_exist
4f420 73 28 24 62 69 6e 61 72 69 65 73 50 61 74 68 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 6e 65 77 s($binariesPath)).{.foreach.(new
4f440 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 62 69 6e 61 72 69 65 73 50 61 .\FilesystemIterator($binariesPa
4f460 74 68 2c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a 4b 45 59 5f 41 53 5f th,.\FilesystemIterator::KEY_AS_
4f480 46 49 4c 45 4e 41 4d 45 20 7c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a FILENAME.|.\FilesystemIterator::
4f4a0 43 55 52 52 45 4e 54 5f 41 53 5f 46 49 4c 45 49 4e 46 4f 29 20 61 73 20 24 66 69 6c 65 4e 61 6d CURRENT_AS_FILEINFO).as.$fileNam
4f4c0 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 24 76 61 6c 75 65 2d 3e 69 73 44 69 e.=>.$value).{.if.(!$value->isDi
4f4e0 72 28 29 29 20 7b 0a 24 62 69 6e 61 72 69 65 73 5b 5d 20 3d 20 27 62 69 6e 2f 27 2e 24 66 69 6c r()).{.$binaries[].=.'bin/'.$fil
4f500 65 4e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 69 6e 61 72 69 65 73 3b 0a eName;.}.}.}..return.$binaries;.
4f520 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 }..protected.function.initialize
4f540 42 69 6e 44 69 72 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e BinDir().{.parent::initializeBin
4f560 44 69 72 28 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e Dir();.file_put_contents($this->
4f580 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 binDir.'/composer-php',.$this->g
4f5a0 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 29 3b 0a 63 68 6d enerateUnixyPhpProxyCode());.chm
4f5c0 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 od($this->binDir.'/composer-php'
4f5e0 2c 20 30 37 37 37 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 ,.0777);.file_put_contents($this
4f600 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 24 74 ->binDir.'/composer-php.bat',.$t
4f620 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 50 72 6f 78 79 43 6f 64 65 his->generateWindowsPhpProxyCode
4f640 28 29 29 3b 0a 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f ());.chmod($this->binDir.'/compo
4f660 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 30 37 37 37 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 ser-php.bat',.0777);.}..private.
4f680 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 50 72 6f 78 79 function.generateWindowsPhpProxy
4f6a0 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 0a 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 20 Code().{.return."@echo.off\r\n".
4f6c0 2e 0a 22 73 65 74 6c 6f 63 61 6c 20 65 6e 61 62 6c 65 64 65 6c 61 79 65 64 65 78 70 61 6e 73 69 .."setlocal.enabledelayedexpansi
4f6e0 6f 6e 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 42 49 4e 5f 44 49 52 3d 25 7e 64 70 30 5c 72 5c 6e on\r\n"..."set.BIN_DIR=%~dp0\r\n
4f700 22 20 2e 0a 22 73 65 74 20 56 45 4e 44 4f 52 5f 44 49 52 3d 25 42 49 4e 5f 44 49 52 25 2e 2e 5c "..."set.VENDOR_DIR=%BIN_DIR%..\
4f720 5c 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 73 65 74 20 44 49 52 53 3d 2e 5c 72 5c 6e 22 20 2e 0a \\r\n"..."....set.DIRS=.\r\n"...
4f740 22 46 4f 52 20 2f 44 20 25 25 56 20 49 4e 20 28 25 56 45 4e 44 4f 52 5f 44 49 52 25 2a 29 20 44 "FOR./D.%%V.IN.(%VENDOR_DIR%*).D
4f760 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 46 4f 52 20 2f 44 20 25 25 50 20 49 4e 20 28 25 O.(\r\n"..."....FOR./D.%%P.IN.(%
4f780 25 56 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 20 20 20 20 73 65 74 20 %V\\*).DO.(\r\n"..."........set.
4f7a0 44 49 52 53 3d 21 44 49 52 53 21 3b 25 25 7e 66 50 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 29 5c DIRS=!DIRS!;%%~fP\r\n"..."....)\
4f7c0 72 5c 6e 22 20 2e 0a 22 29 5c 72 5c 6e 22 20 2e 0a 22 70 68 70 2e 65 78 65 20 2d 64 20 69 6e 63 r\n"...")\r\n"..."php.exe.-d.inc
4f7e0 6c 75 64 65 5f 70 61 74 68 3d 21 44 49 52 53 21 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 0a 70 72 69 lude_path=!DIRS!.%*\r\n";.}..pri
4f800 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 vate.function.generateUnixyPhpPr
4f820 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 0a 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 oxyCode().{.return."#!/usr/bin/e
4f840 6e 76 20 73 68 5c 6e 22 2e 0a 22 53 52 43 5f 44 49 52 3d 60 70 77 64 60 5c 6e 22 2e 0a 22 42 49 nv.sh\n".."SRC_DIR=`pwd`\n".."BI
4f860 4e 5f 44 49 52 3d 60 64 69 72 6e 61 6d 65 20 24 28 72 65 61 64 6c 69 6e 6b 20 2d 66 20 24 30 29 N_DIR=`dirname.$(readlink.-f.$0)
4f880 60 5c 6e 22 2e 0a 22 56 45 4e 44 4f 52 5f 44 49 52 3d 60 64 69 72 6e 61 6d 65 20 5c 24 42 49 4e `\n".."VENDOR_DIR=`dirname.\$BIN
4f8a0 5f 44 49 52 60 5c 6e 22 2e 0a 22 63 64 20 5c 24 42 49 4e 5f 44 49 52 5c 6e 22 2e 0a 22 44 49 52 _DIR`\n".."cd.\$BIN_DIR\n".."DIR
4f8c0 53 3d 5c 22 5c 22 5c 6e 22 2e 0a 22 66 6f 72 20 76 65 6e 64 6f 72 20 69 6e 20 5c 24 56 45 4e 44 S=\"\"\n".."for.vendor.in.\$VEND
4f8e0 4f 52 5f 44 49 52 2f 2a 3b 20 64 6f 5c 6e 22 2e 0a 22 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 OR_DIR/*;.do\n".."....if.[.-d.\"
4f900 5c 24 76 65 6e 64 6f 72 5c 22 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 \$vendor\".];.then\n".."........
4f920 66 6f 72 20 70 61 63 6b 61 67 65 20 69 6e 20 5c 24 76 65 6e 64 6f 72 2f 2a 3b 20 64 6f 5c 6e 22 for.package.in.\$vendor/*;.do\n"
4f940 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 5c 24 70 61 63 6b 61 .."............if.[.-d.\"\$packa
4f960 67 65 5c 22 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ge\".];.then\n".."..............
4f980 20 20 44 49 52 53 3d 5c 22 5c 24 7b 44 49 52 53 7d 3a 5c 24 7b 70 61 63 6b 61 67 65 7d 5c 22 5c ..DIRS=\"\${DIRS}:\${package}\"\
4f9a0 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 66 69 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 n".."............fi\n"..".......
4f9c0 20 64 6f 6e 65 5c 6e 22 2e 0a 22 20 20 20 20 66 69 5c 6e 22 2e 0a 22 64 6f 6e 65 5c 6e 22 2e 0a .done\n".."....fi\n".."done\n"..
4f9e0 22 63 64 20 5c 24 53 52 43 5f 44 49 52 5c 6e 22 2e 0a 22 60 77 68 69 63 68 20 70 68 70 60 20 2d "cd.\$SRC_DIR\n".."`which.php`.-
4fa00 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 5c 22 2e 5c 24 44 49 52 53 5c 22 20 24 40 5c 6e 22 d.include_path=\".\$DIRS\".$@\n"
4fa20 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
4fa40 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 .Composer\Installer;..use.Compos
4fa60 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 er\Package\PackageInterface;.use
4fa80 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e .Composer\Downloader\DownloadMan
4faa0 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e ager;.use.Composer\Repository\In
4fac0 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a stalledRepositoryInterface;.....
4fae0 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d ...class.ProjectInstaller.implem
4fb00 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 ents.InstallerInterface.{.privat
4fb20 65 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 e.$installPath;.private.$downloa
4fb40 64 4d 61 6e 61 67 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e dManager;..public.function.__con
4fb60 73 74 72 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e struct($installPath,.DownloadMan
4fb80 61 67 65 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d ager.$dm).{.$this->installPath.=
4fba0 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 .$installPath;.$this->downloadMa
4fbc0 6e 61 67 65 72 20 3d 20 24 64 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e nager.=.$dm;.}........public.fun
4fbe0 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 ction.supports($packageType).{.r
4fc00 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f eturn.true;.}.....public.functio
4fc20 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 n.isInstalled(InstalledRepositor
4fc40 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 yInterface.$repo,.PackageInterfa
4fc60 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a ce.$package).{.return.false;.}..
4fc80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 ...public.function.install(Insta
4fca0 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 lledRepositoryInterface.$repo,.P
4fcc0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 ackageInterface.$package).{.$ins
4fce0 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 69 tallPath.=.$this->installPath;.i
4fd00 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a f.(file_exists($installPath)).{.
4fd20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
4fd40 69 6f 6e 28 22 50 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 50 ion("Project.directory.$installP
4fd60 61 74 68 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 29 3b 0a 7d 0a 69 66 20 28 21 66 69 ath.already.exists.");.}.if.(!fi
4fd80 6c 65 5f 65 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 le_exists(dirname($installPath))
4fda0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
4fdc0 63 65 70 74 69 6f 6e 28 22 50 72 6f 6a 65 63 74 20 72 6f 6f 74 20 22 20 2e 20 64 69 72 6e 61 6d ception("Project.root."...dirnam
4fde0 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 2e 20 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 e($installPath)...".does.not.exi
4fe00 73 74 2e 22 29 3b 0a 7d 0a 6d 6b 64 69 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 37 37 st.");.}.mkdir($installPath,.077
4fe20 37 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 7);.$this->downloadManager->down
4fe40 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 3b 0a 7d 0a load($package,.$installPath);.}.
4fe60 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 ....public.function.update(Insta
4fe80 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 lledRepositoryInterface.$repo,.P
4fea0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 ackageInterface.$initial,.Packag
4fec0 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 eInterface.$target).{.throw.new.
4fee0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 6e 6f 74 20 73 \InvalidArgumentException("not.s
4ff00 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f upported");.}.....public.functio
4ff20 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 n.uninstall(InstalledRepositoryI
4ff40 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 nterface.$repo,.PackageInterface
4ff60 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 .$package).{.throw.new.\InvalidA
4ff80 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 rgumentException("not.supported"
4ffa0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 );.}........public.function.getI
4ffc0 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 nstallPath(PackageInterface.$pac
4ffe0 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 kage).{.return.$this->installPat
50000 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 h;.}.}.<?php............namespac
50020 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f e.Composer\Installer;..use.Compo
50040 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f ser\Composer;.use.Composer\IO\IO
50060 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 Interface;.use.Composer\Download
50080 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 er\DownloadManager;.use.Composer
500a0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 \Repository\InstalledRepositoryI
500c0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 nterface;.use.Composer\Package\P
500e0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 ackageInterface;.use.Composer\Ut
50100 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 62 72 il\Filesystem;........class.Libr
50120 61 72 79 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 aryInstaller.implements.Installe
50140 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 rInterface.{.protected.$composer
50160 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 6e 64 6f 72 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 ;.protected.$vendorDir;.protecte
50180 64 20 24 62 69 6e 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 d.$binDir;.protected.$downloadMa
501a0 6e 61 67 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 nager;.protected.$io;.protected.
501c0 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a $type;.protected.$filesystem;...
501e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
50200 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 (IOInterface.$io,.Composer.$comp
50220 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 72 61 72 79 27 29 0a 7b 0a 24 74 68 69 73 oser,.$type.=.'library').{.$this
50240 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 64 ->composer.=.$composer;.$this->d
50260 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 ownloadManager.=.$composer->getD
50280 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 ownloadManager();.$this->io.=.$i
502a0 6f 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 0a 24 74 68 69 73 2d 3e o;.$this->type.=.$type;..$this->
502c0 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 filesystem.=.new.Filesystem();.$
502e0 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 this->vendorDir.=.rtrim($compose
50300 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 r->getConfig()->get('vendor-dir'
50320 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 74 72 69 6d 28 24 ),.'/');.$this->binDir.=.rtrim($
50340 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 62 69 6e 2d composer->getConfig()->get('bin-
50360 64 69 72 27 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 dir'),.'/');.}.....public.functi
50380 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 on.supports($packageType).{.retu
503a0 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 20 rn.$packageType.===.$this->type.
503c0 7c 7c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 ||.null.===.$this->type;.}.....p
503e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 ublic.function.isInstalled(Insta
50400 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 lledRepositoryInterface.$repo,.P
50420 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 ackageInterface.$package).{.retu
50440 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 20 26 rn.$repo->hasPackage($package).&
50460 26 20 69 73 5f 72 65 61 64 61 62 6c 65 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 &.is_readable($this->getInstallP
50480 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ath($package));.}.....public.fun
504a0 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 ction.install(InstalledRepositor
504c0 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 yInterface.$repo,.PackageInterfa
504e0 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 ce.$package).{.$this->initialize
50500 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 VendorDir();.$downloadPath.=.$th
50520 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a is->getInstallPath($package);...
50540 20 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 .if.(!is_readable($downloadPath)
50560 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 .&&.$repo->hasPackage($package))
50580 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 .{.$this->removeBinaries($packag
505a0 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 e);.}..$this->installCode($packa
505c0 67 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 24 70 61 63 ge);.$this->installBinaries($pac
505e0 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 kage);.if.(!$repo->hasPackage($p
50600 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f ackage)).{.$repo->addPackage(clo
50620 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ne.$package);.}.}.....public.fun
50640 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 ction.update(InstalledRepository
50660 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Interface.$repo,.PackageInterfac
50680 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 e.$initial,.PackageInterface.$ta
506a0 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 rget).{.if.(!$repo->hasPackage($
506c0 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 initial)).{.throw.new.\InvalidAr
506e0 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 gumentException('Package.is.not.
50700 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 installed:.'.$initial);.}..$this
50720 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 0a 24 74 68 69 73 2d ->initializeVendorDir();..$this-
50740 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 >removeBinaries($initial);.$this
50760 2d 3e 75 70 64 61 74 65 43 6f 64 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b ->updateCode($initial,.$target);
50780 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 24 74 61 72 67 65 74 29 .$this->installBinaries($target)
507a0 3b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 ;.$repo->removePackage($initial)
507c0 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 ;.if.(!$repo->hasPackage($target
507e0 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 )).{.$repo->addPackage(clone.$ta
50800 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 rget);.}.}.....public.function.u
50820 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 ninstall(InstalledRepositoryInte
50840 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 rface.$repo,.PackageInterface.$p
50860 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 ackage).{.if.(!$repo->hasPackage
50880 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 74 68 72 6f 77 20 6e 65 ($package)).{...return;.throw.ne
508a0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 w.\InvalidArgumentException('Pac
508c0 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 kage.is.not.installed:.'.$packag
508e0 65 29 3b 0a 7d 0a 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 e);.}..$downloadPath.=.$this->ge
50900 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 74 68 69 73 2d 3e tInstallPath($package);..$this->
50920 72 65 6d 6f 76 65 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d removeCode($package);.$this->rem
50940 6f 76 65 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 oveBinaries($package);.$repo->re
50960 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 73 74 72 70 movePackage($package);..if.(strp
50980 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 27 2f 27 29 29 20 7b 0a os($package->getName(),.'/')).{.
509a0 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 64 6f 77 $packageVendorDir.=.dirname($dow
509c0 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 63 6b 61 67 65 56 nloadPath);.if.(is_dir($packageV
509e0 65 6e 64 6f 72 44 69 72 29 20 26 26 20 21 67 6c 6f 62 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f endorDir).&&.!glob($packageVendo
50a00 72 44 69 72 2e 27 2f 2a 27 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e rDir.'/*')).{.@rmdir($packageVen
50a20 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 dorDir);.}.}.}.....public.functi
50a40 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 on.getInstallPath(PackageInterfa
50a60 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 ce.$package).{.$this->initialize
50a80 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 6b 61 VendorDir();.$targetDir.=.$packa
50aa0 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 ge->getTargetDir();..return.($th
50ac0 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3f 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 is->vendorDir.?.$this->vendorDir
50ae0 2e 27 2f 27 20 3a 20 27 27 29 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 .'/'.:.'')...$package->getPretty
50b00 4e 61 6d 65 28 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 Name()...($targetDir.?.'/'.$targ
50b20 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 etDir.:.'');.}..protected.functi
50b40 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 on.installCode(PackageInterface.
50b60 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 $package).{.$downloadPath.=.$thi
50b80 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 s->getInstallPath($package);.$th
50ba0 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 is->downloadManager->download($p
50bc0 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 ackage,.$downloadPath);.}..prote
50be0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 43 6f 64 65 28 50 61 63 6b 61 67 65 cted.function.updateCode(Package
50c00 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 Interface.$initial,.PackageInter
50c20 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 face.$target).{.$downloadPath.=.
50c40 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 69 6e 69 74 69 61 6c 29 3b $this->getInstallPath($initial);
50c60 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 75 70 64 61 74 65 28 .$this->downloadManager->update(
50c80 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 $initial,.$target,.$downloadPath
50ca0 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 );.}..protected.function.removeC
50cc0 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b ode(PackageInterface.$package).{
50ce0 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 .$downloadPath.=.$this->getInsta
50d00 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 llPath($package);.$this->downloa
50d20 64 4d 61 6e 61 67 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e dManager->remove($package,.$down
50d40 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e loadPath);.}..protected.function
50d60 20 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 .getBinaries(PackageInterface.$p
50d80 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 42 69 ackage).{.return.$package->getBi
50da0 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 naries();.}..protected.function.
50dc0 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 installBinaries(PackageInterface
50de0 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e .$package).{.$binaries.=.$this->
50e00 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 62 69 6e getBinaries($package);.if.(!$bin
50e20 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 62 69 6e aries).{.return;.}.foreach.($bin
50e40 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 aries.as.$bin).{.$this->initiali
50e60 7a 65 42 69 6e 44 69 72 28 29 3b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 zeBinDir();.$link.=.$this->binDi
50e80 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 r.'/'.basename($bin);.if.(file_e
50ea0 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e xists($link)).{.if.(is_link($lin
50ec0 6b 29 29 20 7b 0a 0a 20 0a 20 0a 20 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 k)).{.......chmod($link,.0777.&.
50ee0 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 ~umask());.}.$this->io->write('S
50f00 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 20 kipped.installation.of.'.$bin.'.
50f20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 for.package.'.$package->getName(
50f40 29 2e 27 2c 20 6e 61 6d 65 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 61 6e 20 65 78 69 73 ).',.name.conflicts.with.an.exis
50f60 74 69 6e 67 20 66 69 6c 65 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 62 69 6e 20 3d 20 ting.file');.continue;.}.$bin.=.
50f80 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2e $this->getInstallPath($package).
50fa0 27 2f 27 2e 24 62 69 6e 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 '/'.$bin;..if.(defined('PHP_WIND
50fc0 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 0a 20 69 66 20 28 27 2e 62 OWS_VERSION_BUILD')).{...if.('.b
50fe0 61 74 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 66 69 6c 65 at'.!==.substr($bin,.-4)).{.file
51000 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 _put_contents($link,.$this->gene
51020 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 29 rateUnixyProxyCode($bin,.$link))
51040 3b 0a 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b ;.chmod($link,.0777.&.~umask());
51060 0a 24 6c 69 6e 6b 20 2e 3d 20 27 2e 62 61 74 27 3b 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e .$link..=.'.bat';.}.file_put_con
51080 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 tents($link,.$this->generateWind
510a0 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 20 65 6c owsProxyCode($bin,.$link));.}.el
510c0 73 65 20 7b 0a 24 63 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 74 72 79 20 7b 0a 0a 20 0a 20 se.{.$cwd.=.getcwd();.try.{.....
510e0 24 72 65 6c 61 74 69 76 65 42 69 6e 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d $relativeBin.=.$this->filesystem
51100 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b ->findShortestPath($link,.$bin);
51120 0a 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 24 6c 69 6e 6b 29 29 3b 0a 73 79 6d 6c 69 6e 6b 28 .chdir(dirname($link));.symlink(
51140 24 72 65 6c 61 74 69 76 65 42 69 6e 2c 20 24 6c 69 6e 6b 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c $relativeBin,.$link);.}.catch.(\
51160 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f ErrorException.$e).{.file_put_co
51180 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 ntents($link,.$this->generateUni
511a0 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 63 68 64 xyProxyCode($bin,.$link));.}.chd
511c0 69 72 28 24 63 77 64 29 3b 0a 7d 0a 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 ir($cwd);.}.chmod($link,.0777.&.
511e0 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ~umask());.}.}..protected.functi
51200 6f 6e 20 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 on.removeBinaries(PackageInterfa
51220 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 24 74 68 69 73 ce.$package).{.$binaries.=.$this
51240 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 62 ->getBinaries($package);.if.(!$b
51260 69 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 62 inaries).{.return;.}.foreach.($b
51280 69 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 inaries.as.$bin).{.$link.=.$this
512a0 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 ->binDir.'/'.basename($bin);.if.
512c0 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 (!file_exists($link)).{.continue
512e0 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ;.}.unlink($link);.}.}..protecte
51300 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 d.function.initializeVendorDir()
51320 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 .{.$this->filesystem->ensureDire
51340 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 24 ctoryExists($this->vendorDir);.$
51360 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 this->vendorDir.=.realpath($this
51380 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ->vendorDir);.}..protected.funct
513a0 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e ion.initializeBinDir().{.$this->
513c0 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 filesystem->ensureDirectoryExist
513e0 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 s($this->binDir);.$this->binDir.
51400 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 7d 0a 0a 70 72 =.realpath($this->binDir);.}..pr
51420 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 ivate.function.generateWindowsPr
51440 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 68 20 oxyCode($bin,.$link).{.$binPath.
51460 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 =.$this->filesystem->findShortes
51480 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 69 66 20 28 27 2e 62 61 74 27 20 3d tPath($link,.$bin);.if.('.bat'.=
514a0 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d ==.substr($bin,.-4)).{.$caller.=
514c0 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 .'call';.}.else.{.$handle.=.fope
514e0 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 68 61 6e n($bin,.'r');.$line.=.fgets($han
51500 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 69 66 20 28 70 72 65 67 5f dle);.fclose($handle);.if.(preg_
51520 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 2f 62 69 6e 2f 65 6e 76 20 29 3f 28 3f 3a match('{^#!/(?:usr/bin/env.)?(?:
51540 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 [^/]+/)*(.+)$}m',.$line,.$match)
51560 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d ).{.$caller.=.trim($match[1]);.}
51580 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 72 65 .else.{.$caller.=.'php';.}.}..re
515a0 74 75 72 6e 20 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 turn."@echo.off\r\n".."pushd..\r
515c0 5c 6e 22 2e 0a 22 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e 65 73 63 61 70 \n".."cd.%~dp0\r\n".."cd.".escap
515e0 65 73 68 65 6c 6c 61 72 67 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 72 eshellarg(dirname($binPath))."\r
51600 5c 6e 22 2e 0a 22 73 65 74 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 25 5c 5c 22 2e 62 61 73 \n".."set.BIN_TARGET=%CD%\\".bas
51620 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 70 6f 70 64 5c 72 5c ename($binPath)."\r\n".."popd\r\
51640 6e 22 2e 0a 24 63 61 6c 6c 65 72 2e 22 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 n"..$caller.".\"%BIN_TARGET%\".%
51660 2a 5c 72 5c 6e 22 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 *\r\n";.}..private.function.gene
51680 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a rateUnixyProxyCode($bin,.$link).
516a0 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e {.$binPath.=.$this->filesystem->
516c0 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 0a findShortestPath($link,.$bin);..
516e0 72 65 74 75 72 6e 20 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 27 53 return."#!/usr/bin/env.sh\n"..'S
51700 52 43 5f 44 49 52 3d 60 70 77 64 60 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 60 64 69 72 6e 61 6d 65 RC_DIR=`pwd`'."\n"..'cd.`dirname
51720 20 22 24 30 22 60 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 ."$0"`'."\n"..'cd.'.escapeshella
51740 72 67 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 6e 22 2e 0a 27 42 49 4e rg(dirname($binPath))."\n"..'BIN
51760 5f 54 41 52 47 45 54 3d 60 70 77 64 60 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 _TARGET=`pwd`/'.basename($binPat
51780 68 29 2e 22 5c 6e 22 2e 0a 27 63 64 20 24 53 52 43 5f 44 49 52 27 2e 22 5c 6e 22 2e 0a 27 24 42 h)."\n"..'cd.$SRC_DIR'."\n"..'$B
517a0 49 4e 5f 54 41 52 47 45 54 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a IN_TARGET."$@"'."\n";.}.}.<?php.
517c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e ...........namespace.Composer\In
517e0 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 staller;..use.Composer\Package\P
51800 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ackageInterface;.use.Composer\Pa
51820 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ckage\AliasPackage;.use.Composer
51840 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b \Repository\RepositoryInterface;
51860 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 4e 6f 74 69 66 69 61 .use.Composer\Repository\Notifia
51880 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 bleRepositoryInterface;.use.Comp
518a0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 oser\Repository\InstalledReposit
518c0 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e oryInterface;.use.Composer\Depen
518e0 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f dencyResolver\Operation\Operatio
51900 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 nInterface;.use.Composer\Depende
51920 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 ncyResolver\Operation\InstallOpe
51940 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 ration;.use.Composer\DependencyR
51960 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f esolver\Operation\UpdateOperatio
51980 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 n;.use.Composer\DependencyResolv
519a0 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b er\Operation\UninstallOperation;
519c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 .use.Composer\DependencyResolver
519e0 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 \Operation\MarkAliasInstalledOpe
51a00 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 ration;.use.Composer\DependencyR
51a20 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 esolver\Operation\MarkAliasUnins
51a40 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e talledOperation;........class.In
51a60 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 stallationManager.{.private.$ins
51a80 74 61 6c 6c 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 61 63 68 tallers.=.array();.private.$cach
51aa0 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 e.=.array();.......public.functi
51ac0 6f 6e 20 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 on.addInstaller(InstallerInterfa
51ae0 63 65 20 24 69 6e 73 74 61 6c 6c 65 72 29 0a 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 ce.$installer).{.array_unshift($
51b00 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 2c 20 24 69 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 this->installers,.$installer);.$
51b20 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a this->cache.=.array();.}........
51b40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 ...public.function.getInstaller(
51b60 24 74 79 70 65 29 0a 7b 0a 24 74 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 $type).{.$type.=.strtolower($typ
51b80 65 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 e);..if.(isset($this->cache[$typ
51ba0 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 e])).{.return.$this->cache[$type
51bc0 5d 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 ];.}..foreach.($this->installers
51be0 20 61 73 20 24 69 6e 73 74 61 6c 6c 65 72 29 20 7b 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 72 .as.$installer).{.if.($installer
51c00 2d 3e 73 75 70 70 6f 72 74 73 28 24 74 79 70 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ->supports($type)).{.return.$thi
51c20 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 20 3d 20 24 69 6e 73 74 61 6c 6c 65 72 3b 0a 7d 0a s->cache[$type].=.$installer;.}.
51c40 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 }..throw.new.\InvalidArgumentExc
51c60 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 69 6e 73 74 61 6c 6c 65 72 20 74 79 70 65 3a 20 eption('Unknown.installer.type:.
51c80 27 2e 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 '.$type);.}..........public.func
51ca0 74 69 6f 6e 20 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 tion.isPackageInstalled(Installe
51cc0 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b dRepositoryInterface.$repo,.Pack
51ce0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 ageInterface.$package).{.if.($pa
51d00 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b ckage.instanceof.AliasPackage).{
51d20 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 .return.$repo->hasPackage($packa
51d40 67 65 29 20 26 26 20 24 74 68 69 73 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 ge).&&.$this->isPackageInstalled
51d60 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b ($repo,.$package->getAliasOf());
51d80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 .}..return.$this->getInstaller($
51da0 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 2d 3e 69 73 49 6e 73 74 61 6c 6c 65 64 package->getType())->isInstalled
51dc0 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ($repo,.$package);.}........publ
51de0 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e ic.function.execute(RepositoryIn
51e00 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 terface.$repo,.OperationInterfac
51e20 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6f 70 65 72 61 e.$operation).{.$method.=.$opera
51e40 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 3b 0a 24 74 68 69 73 2d 3e 24 6d 65 74 68 tion->getJobType();.$this->$meth
51e60 6f 64 28 24 72 65 70 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a od($repo,.$operation);.}........
51e80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 52 65 70 6f 73 69 74 6f public.function.install(Reposito
51ea0 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 ryInterface.$repo,.InstallOperat
51ec0 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 ion.$operation).{.$package.=.$op
51ee0 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 eration->getPackage();.$installe
51f00 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 r.=.$this->getInstaller($package
51f20 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 69 6e 73 74 61 6c ->getType());.$installer->instal
51f40 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 l($repo,.$package);.$this->notif
51f60 79 49 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 yInstall($package);.}........pub
51f80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e lic.function.update(RepositoryIn
51fa0 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 24 terface.$repo,.UpdateOperation.$
51fc0 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 69 6e 69 74 69 61 6c 20 3d 20 24 6f 70 65 72 61 74 69 operation).{.$initial.=.$operati
51fe0 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 3b 0a 24 74 61 72 67 65 74 on->getInitialPackage();.$target
52000 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 .=.$operation->getTargetPackage(
52020 29 3b 0a 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 );..$initialType.=.$initial->get
52040 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 Type();.$targetType.=.$target->g
52060 65 74 54 79 70 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 etType();..if.($initialType.===.
52080 24 74 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 $targetType).{.$installer.=.$thi
520a0 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 69 74 69 61 6c 54 79 70 65 29 3b 0a 24 s->getInstaller($initialType);.$
520c0 69 6e 73 74 61 6c 6c 65 72 2d 3e 75 70 64 61 74 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 installer->update($repo,.$initia
520e0 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c l,.$target);.$this->notifyInstal
52100 6c 28 24 74 61 72 67 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 l($target);.}.else.{.$this->getI
52120 6e 73 74 61 6c 6c 65 72 28 24 69 6e 69 74 69 61 6c 54 79 70 65 29 2d 3e 75 6e 69 6e 73 74 61 6c nstaller($initialType)->uninstal
52140 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 6e l($repo,.$initial);.$this->getIn
52160 73 74 61 6c 6c 65 72 28 24 74 61 72 67 65 74 54 79 70 65 29 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 staller($targetType)->install($r
52180 65 70 6f 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 epo,.$target);.}.}........public
521a0 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 52 65 70 6f 73 69 74 6f 72 79 49 6e .function.uninstall(RepositoryIn
521c0 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f terface.$repo,.UninstallOperatio
521e0 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 n.$operation).{.$package.=.$oper
52200 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 ation->getPackage();.$installer.
52220 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e =.$this->getInstaller($package->
52240 67 65 74 54 79 70 65 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 75 6e 69 6e 73 74 61 6c getType());.$installer->uninstal
52260 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 l($repo,.$package);.}........pub
52280 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 lic.function.markAliasInstalled(
522a0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4d 61 72 6b 41 RepositoryInterface.$repo,.MarkA
522c0 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f liasInstalledOperation.$operatio
522e0 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 n).{.$package.=.$operation->getP
52300 61 63 6b 61 67 65 28 29 3b 0a 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 ackage();..if.(!$repo->hasPackag
52320 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 e($package)).{.$repo->addPackage
52340 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 (clone.$package);.}.}........pub
52360 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 lic.function.markAliasUninstalle
52380 64 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4d 61 72 d(RepositoryInterface.$repo,.Mar
523a0 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 kAliasUninstalledOperation.$oper
523c0 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e ation).{.$package.=.$operation->
523e0 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b getPackage();..$repo->removePack
52400 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 age($package);.}........public.f
52420 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e unction.getInstallPath(PackageIn
52440 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d terface.$package).{.$installer.=
52460 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 .$this->getInstaller($package->g
52480 65 74 54 79 70 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 67 etType());..return.$installer->g
524a0 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 70 72 69 76 etInstallPath($package);.}..priv
524c0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 50 61 63 6b 61 ate.function.notifyInstall(Packa
524e0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 geInterface.$package).{.if.($pac
52500 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 kage->getRepository().instanceof
52520 20 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 29 20 .NotifiableRepositoryInterface).
52540 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 6e 6f 74 {.$package->getRepository()->not
52560 69 66 79 49 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 ifyInstall($package);.}.}.}.<?ph
52580 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
525a0 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 Installer;..use.Composer\Package
525c0 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \PackageInterface;.use.Composer\
525e0 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e Repository\InstalledRepositoryIn
52600 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 73 74 61 6c terface;........interface.Instal
52620 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 lerInterface.{.......public.func
52640 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 3b 0a 0a 0a 0a tion.supports($packageType);....
52660 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 ......public.function.isInstalle
52680 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 d(InstalledRepositoryInterface.$
526a0 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 repo,.PackageInterface.$package)
526c0 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c ;........public.function.install
526e0 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 (InstalledRepositoryInterface.$r
52700 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b epo,.PackageInterface.$package);
52720 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 ...........public.function.updat
52740 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 e(InstalledRepositoryInterface.$
52760 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c repo,.PackageInterface.$initial,
52780 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 3b 0a 0a 0a 0a 0a .PackageInterface.$target);.....
527a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 ...public.function.uninstall(Ins
527c0 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c talledRepositoryInterface.$repo,
527e0 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a .PackageInterface.$package);....
52800 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 ....public.function.getInstallPa
52820 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d th(PackageInterface.$package);.}
52840 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
52860 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f oser\Installer;..use.Composer\Co
52880 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 mposer;.use.Composer\IO\IOInterf
528a0 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c ace;.use.Composer\Autoload\Autol
528c0 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 oadGenerator;.use.Composer\Repos
528e0 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 itory\InstalledRepositoryInterfa
52900 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 ce;.use.Composer\Package\Package
52920 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 Interface;.......class.Installer
52940 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e 64 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c Installer.extends.LibraryInstall
52960 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 er.{.private.$installationManage
52980 72 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 20 r;.private.static.$classCounter.
529a0 3d 20 30 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 =.0;......public.function.__cons
529c0 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 truct(IOInterface.$io,.Composer.
529e0 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 72 61 72 79 27 29 0a 7b 0a $composer,.$type.=.'library').{.
52a00 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 parent::__construct($io,.$compos
52a20 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 29 3b 0a 24 74 68 69 73 er,.'composer-installer');.$this
52a40 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 ->installationManager.=.$compose
52a60 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 0a 66 6f r->getInstallationManager();..fo
52a80 72 65 61 63 68 20 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d reach.($composer->getRepositoryM
52aa0 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 anager()->getLocalRepositories()
52ac0 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 .as.$repo).{.foreach.($repo->get
52ae0 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 27 63 Packages().as.$package).{.if.('c
52b00 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d omposer-installer'.===.$package-
52b20 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 >getType()).{.$this->registerIns
52b40 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 taller($package);.}.}.}.}.....pu
52b60 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 blic.function.install(InstalledR
52b80 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 epositoryInterface.$repo,.Packag
52ba0 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 eInterface.$package).{.$extra.=.
52bc0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 $package->getExtra();.if.(empty(
52be0 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 $extra['class'])).{.throw.new.\U
52c00 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 nexpectedValueException('Error.w
52c20 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 hile.installing.'.$package->getP
52c40 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 rettyName().',.composer-installe
52c60 72 20 70 61 63 6b 61 67 65 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 r.packages.should.have.a.class.d
52c80 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 efined.in.their.extra.key.to.be.
52ca0 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 28 24 72 usable.');.}..parent::install($r
52cc0 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 epo,.$package);.$this->registerI
52ce0 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 nstaller($package);.}.....public
52d00 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 .function.update(InstalledReposi
52d20 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
52d40 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 rface.$initial,.PackageInterface
52d60 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 .$target).{.$extra.=.$target->ge
52d80 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 tExtra();.if.(empty($extra['clas
52da0 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c s'])).{.throw.new.\UnexpectedVal
52dc0 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c ueException('Error.while.install
52de0 69 6e 67 20 27 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 ing.'.$target->getPrettyName().'
52e00 2c 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 20 70 61 63 6b 61 67 65 73 20 73 68 ,.composer-installer.packages.sh
52e20 6f 75 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 ould.have.a.class.defined.in.the
52e40 69 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a ir.extra.key.to.be.usable.');.}.
52e60 0a 70 61 72 65 6e 74 3a 3a 75 70 64 61 74 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c .parent::update($repo,.$initial,
52e80 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c .$target);.$this->registerInstal
52ea0 6c 65 72 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ler($target);.}..private.functio
52ec0 6e 20 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 50 61 63 6b 61 67 65 49 6e 74 65 72 n.registerInstaller(PackageInter
52ee0 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d face.$package).{.$downloadPath.=
52f00 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 .$this->getInstallPath($package)
52f20 3b 0a 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 45 78 74 72 61 28 29 ;..$extra.=.$package->getExtra()
52f40 3b 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c ;.$classes.=.is_array($extra['cl
52f60 61 73 73 27 5d 29 20 3f 20 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 20 3a 20 61 72 72 61 79 ass']).?.$extra['class'].:.array
52f80 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 3b 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d ($extra['class']);..$generator.=
52fa0 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 24 6d 61 70 20 3d 20 24 .new.AutoloadGenerator;.$map.=.$
52fc0 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 28 generator->parseAutoloads(array(
52fe0 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 29 29 array($package,.$downloadPath)))
53000 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 ;.$classLoader.=.$generator->cre
53020 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 72 ateLoader($map);.$classLoader->r
53040 65 67 69 73 74 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 65 73 20 61 73 egister();..foreach.($classes.as
53060 20 24 63 6c 61 73 73 29 20 7b 0a 69 66 20 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 .$class).{.if.(class_exists($cla
53080 73 73 2c 20 66 61 6c 73 65 29 29 20 7b 0a 24 63 6f 64 65 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 ss,.false)).{.$code.=.file_get_c
530a0 6f 6e 74 65 6e 74 73 28 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 66 69 6e 64 46 69 6c 65 28 24 ontents($classLoader->findFile($
530c0 63 6c 61 73 73 29 29 3b 0a 24 63 6f 64 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b class));.$code.=.preg_replace('{
530e0 5e 63 6c 61 73 73 5c 73 2b 28 5c 53 2b 29 7d 6d 69 27 2c 20 27 63 6c 61 73 73 20 24 31 5f 63 6f ^class\s+(\S+)}mi',.'class.$1_co
53100 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2c mposer_tmp'.self::$classCounter,
53120 20 24 63 6f 64 65 29 3b 0a 65 76 61 6c 28 27 3f 3e 27 2e 24 63 6f 64 65 29 3b 0a 24 63 6c 61 73 .$code);.eval('?>'.$code);.$clas
53140 73 20 2e 3d 20 27 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 s..=.'_composer_tmp'.self::$clas
53160 73 43 6f 75 6e 74 65 72 3b 0a 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2b 2b 3b sCounter;.self::$classCounter++;
53180 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 .}..$installer.=.new.$class($thi
531a0 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 3b 0a 24 74 68 69 73 2d 3e s->io,.$this->composer);.$this->
531c0 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 installationManager->addInstalle
531e0 72 28 24 69 6e 73 74 61 6c 6c 65 72 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a r($installer);.}.}.}.<?php......
53200 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 ......namespace.Composer\Console
53220 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 ;..use.Symfony\Component\Console
53240 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 61 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f 6e 3b \Application.as.BaseApplication;
53260 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 .use.Symfony\Component\Console\I
53280 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nput\InputInterface;.use.Symfony
532a0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 \Component\Console\Output\Output
532c0 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 Interface;.use.Symfony\Component
532e0 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 \Console\Output\ConsoleOutput;.u
53300 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 se.Symfony\Component\Console\For
53320 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 matter\OutputFormatter;.use.Symf
53340 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c ony\Component\Console\Formatter\
53360 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 OutputFormatterStyle;.use.Compos
53380 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 er\Command;.use.Composer\Command
533a0 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 \Helper\DialogHelper;.use.Compos
533c0 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 er\Composer;.use.Composer\Factor
533e0 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a y;.use.Composer\IO\IOInterface;.
53400 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 43 6f 6e 73 6f 6c 65 49 4f 3b 0a 75 73 65 20 43 use.Composer\IO\ConsoleIO;.use.C
53420 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a omposer\Util\ErrorHandler;......
53440 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 42 61 73 ...class.Application.extends.Bas
53460 65 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d eApplication.{....protected.$com
53480 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 70 75 62 6c 69 poser;.....protected.$io;..publi
534a0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 45 72 72 6f 72 c.function.__construct().{.Error
534c0 48 61 6e 64 6c 65 72 3a 3a 72 65 67 69 73 74 65 72 28 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 Handler::register();.parent::__c
534e0 6f 6e 73 74 72 75 63 74 28 27 43 6f 6d 70 6f 73 65 72 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 onstruct('Composer',.Composer::V
53500 45 52 53 49 4f 4e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 ERSION);.}.....public.function.r
53520 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c un(InputInterface.$input.=.null,
53540 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 .OutputInterface.$output.=.null)
53560 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 73 74 79 6c .{.if.(null.===.$output).{.$styl
53580 65 73 5b 27 68 69 67 68 6c 69 67 68 74 27 5d 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d es['highlight'].=.new.OutputForm
535a0 61 74 74 65 72 53 74 79 6c 65 28 27 72 65 64 27 29 3b 0a 24 73 74 79 6c 65 73 5b 27 77 61 72 6e atterStyle('red');.$styles['warn
535c0 69 6e 67 27 5d 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 ing'].=.new.OutputFormatterStyle
535e0 28 27 62 6c 61 63 6b 27 2c 20 27 79 65 6c 6c 6f 77 27 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 ('black',.'yellow');.$formatter.
53600 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 6e 75 6c 6c 2c 20 24 73 74 79 =.new.OutputFormatter(null,.$sty
53620 6c 65 73 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 les);.$output.=.new.ConsoleOutpu
53640 74 28 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 t(ConsoleOutput::VERBOSITY_NORMA
53660 4c 2c 20 6e 75 6c 6c 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 L,.null,.$formatter);.}..return.
53680 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a parent::run($input,.$output);.}.
536a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 28 49 6e 70 75 74 49 ....public.function.doRun(InputI
536c0 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 nterface.$input,.OutputInterface
536e0 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 43 6f 6e 73 .$output).{.$this->io.=.new.Cons
53700 6f 6c 65 49 4f 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 oleIO($input,.$output,.$this->ge
53720 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 tHelperSet());..if.(version_comp
53740 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 32 27 2c 20 27 3c 27 29 29 20 are(PHP_VERSION,.'5.3.2',.'<')).
53760 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6f 6d {.$output->writeln('<warning>Com
53780 70 6f 73 65 72 20 6f 6e 6c 79 20 6f 66 66 69 63 69 61 6c 6c 79 20 73 75 70 70 6f 72 74 73 20 50 poser.only.officially.supports.P
537a0 48 50 20 35 2e 33 2e 32 20 61 6e 64 20 61 62 6f 76 65 2c 20 79 6f 75 20 77 69 6c 6c 20 6d 6f 73 HP.5.3.2.and.above,.you.will.mos
537c0 74 20 6c 69 6b 65 6c 79 20 65 6e 63 6f 75 6e 74 65 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 t.likely.encounter.problems.with
537e0 20 79 6f 75 72 20 50 48 50 20 27 2e 50 48 50 5f 56 45 52 53 49 4f 4e 2e 27 2c 20 75 70 67 72 61 .your.PHP.'.PHP_VERSION.',.upgra
53800 64 69 6e 67 20 69 73 20 73 74 72 6f 6e 67 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 77 ding.is.strongly.recommended.</w
53820 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 4f 4d 50 4f arning>');.}..if.(defined('COMPO
53840 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 27 29 20 26 26 20 24 74 68 69 73 2d SER_DEV_WARNING_TIME').&&.$this-
53860 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 24 69 6e 70 75 74 29 20 21 3d 3d 20 27 73 65 6c >getCommandName($input).!==.'sel
53880 66 2d 75 70 64 61 74 65 27 29 20 7b 0a 69 66 20 28 74 69 6d 65 28 29 20 3e 20 43 4f 4d 50 4f 53 f-update').{.if.(time().>.COMPOS
538a0 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e ER_DEV_WARNING_TIME).{.$output->
538c0 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 77 61 72 6e 69 6e 67 3e 54 68 69 73 20 64 writeln(sprintf('<warning>This.d
538e0 65 76 20 62 75 69 6c 64 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 69 73 20 6f 75 74 64 61 74 65 64 ev.build.of.composer.is.outdated
53900 2c 20 70 6c 65 61 73 65 20 72 75 6e 20 22 25 73 20 73 65 6c 66 2d 75 70 64 61 74 65 22 20 74 6f ,.please.run."%s.self-update".to
53920 20 67 65 74 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 3c 2f 77 61 72 6e 69 6e .get.the.latest.version.</warnin
53940 67 3e 27 2c 20 24 5f 53 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c 46 27 5d 29 29 3b 0a 7d 0a 7d g>',.$_SERVER['PHP_SELF']));.}.}
53960 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 ..return.parent::doRun($input,.$
53980 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 output);.}......public.function.
539a0 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 29 0a 7b 0a getComposer($required.=.true).{.
539c0 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 20 7b 0a if.(null.===.$this->composer).{.
539e0 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f 72 79 3a try.{.$this->composer.=.Factory:
53a00 3a 63 72 65 61 74 65 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e :create($this->io);.}.catch.(\In
53a20 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 validArgumentException.$e).{.if.
53a40 28 24 72 65 71 75 69 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 ($required).{.$this->io->write($
53a60 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 7d 0a 7d e->getMessage());.exit(1);.}.}.}
53a80 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a ..return.$this->composer;.}.....
53aa0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e public.function.getIO().{.return
53ac0 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 .$this->io;.}.....protected.func
53ae0 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 24 63 6f 6d tion.getDefaultCommands().{.$com
53b00 6d 61 6e 64 73 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e mands.=.parent::getDefaultComman
53b20 64 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c ds();.$commands[].=.new.Command\
53b40 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 AboutCommand();.$commands[].=.ne
53b60 77 20 43 6f 6d 6d 61 6e 64 5c 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d w.Command\DependsCommand();.$com
53b80 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 69 74 43 6f 6d 6d 61 6e mands[].=.new.Command\InitComman
53ba0 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 49 d();.$commands[].=.new.Command\I
53bc0 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e nstallCommand();.$commands[].=.n
53be0 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 28 ew.Command\CreateProjectCommand(
53c00 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 55 70 64 );.$commands[].=.new.Command\Upd
53c20 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 ateCommand();.$commands[].=.new.
53c40 43 6f 6d 6d 61 6e 64 5c 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e Command\SearchCommand();.$comman
53c60 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 ds[].=.new.Command\ValidateComma
53c80 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c nd();.$commands[].=.new.Command\
53ca0 53 68 6f 77 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 ShowCommand();.$commands[].=.new
53cc0 20 43 6f 6d 6d 61 6e 64 5c 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 0a 69 66 20 28 .Command\RequireCommand();..if.(
53ce0 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 'phar:'.===.substr(__FILE__,.0,.
53d00 35 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 5)).{.$commands[].=.new.Command\
53d20 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 SelfUpdateCommand();.}..return.$
53d40 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 commands;.}.....protected.functi
53d60 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 24 68 65 6c 70 on.getDefaultHelperSet().{.$help
53d80 65 72 53 65 74 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 erSet.=.parent::getDefaultHelper
53da0 53 65 74 28 29 3b 0a 0a 24 68 65 6c 70 65 72 53 65 74 2d 3e 73 65 74 28 6e 65 77 20 44 69 61 6c Set();..$helperSet->set(new.Dial
53dc0 6f 67 48 65 6c 70 65 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 65 72 53 65 74 3b ogHelper());..return.$helperSet;
53de0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
53e00 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 Composer\Autoload;..use.Composer
53e20 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c \Config;.use.Composer\Installer\
53e40 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 InstallationManager;.use.Compose
53e60 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 r\Package\AliasPackage;.use.Comp
53e80 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 oser\Package\PackageInterface;.u
53ea0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 se.Composer\Repository\Repositor
53ec0 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 yInterface;.use.Composer\Util\Fi
53ee0 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 74 6f 6c 6f 61 64 47 65 6e lesystem;......class.AutoloadGen
53f00 65 72 61 74 6f 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 43 6f erator.{.public.function.dump(Co
53f20 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 nfig.$config,.RepositoryInterfac
53f40 65 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 e.$localRepo,.PackageInterface.$
53f60 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 mainPackage,.InstallationManager
53f80 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 74 61 72 67 65 74 44 69 .$installationManager,.$targetDi
53fa0 72 29 0a 7b 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 r).{.$filesystem.=.new.Filesyste
53fc0 6d 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 m();.$filesystem->ensureDirector
53fe0 79 45 78 69 73 74 73 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 yExists($config->get('vendor-dir
54000 27 29 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 20 3d 20 73 74 72 74 72 28 72 65 61 6c 70 61 74 '));.$vendorPath.=.strtr(realpat
54020 68 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 2c 20 27 h($config->get('vendor-dir')),.'
54040 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 \\',.'/');.$targetDir.=.$vendorP
54060 61 74 68 2e 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d ath.'/'.$targetDir;.$filesystem-
54080 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 >ensureDirectoryExists($targetDi
540a0 72 29 3b 0a 0a 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 r);..$relVendorPath.=.$filesyste
540c0 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 67 65 74 63 77 64 28 29 2c 20 24 76 m->findShortestPath(getcwd(),.$v
540e0 65 6e 64 6f 72 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 endorPath,.true);.$vendorPathCod
54100 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 e.=.$filesystem->findShortestPat
54120 68 43 6f 64 65 28 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 24 76 65 6e hCode(realpath($targetDir),.$ven
54140 64 6f 72 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 dorPath,.true);.$vendorPathToTar
54160 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 getDirCode.=.$filesystem->findSh
54180 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 72 65 61 6c ortestPathCode($vendorPath,.real
541a0 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 74 72 75 65 29 3b 0a 0a 24 61 70 70 42 61 path($targetDir),.true);..$appBa
541c0 73 65 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f seDirCode.=.$filesystem->findSho
541e0 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 67 65 74 63 77 rtestPathCode($vendorPath,.getcw
54200 64 28 29 2c 20 74 72 75 65 29 3b 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 73 74 d(),.true);.$appBaseDirCode.=.st
54220 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 27 24 76 65 6e 64 6f 72 44 69 72 r_replace('__DIR__',.'$vendorDir
54240 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 ',.$appBaseDirCode);..$namespace
54260 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 sFile.=.<<<EOF.<?php..//.autoloa
54280 64 5f 6e 61 6d 65 73 70 61 63 65 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d d_namespace.php.generated.by.Com
542a0 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 poser..\$vendorDir.=.$vendorPath
542c0 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 Code;.\$baseDir.=.$appBaseDirCod
542e0 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 24 70 61 63 6b 61 67 e;..return.array(..EOF;..$packag
54300 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 69 eMap.=.$this->buildPackageMap($i
54320 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 nstallationManager,.$mainPackage
54340 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 24 61 ,.$localRepo->getPackages());.$a
54360 75 74 6f 6c 6f 61 64 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 utoloads.=.$this->parseAutoloads
54380 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f ($packageMap);..foreach.($autolo
543a0 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 ads['psr-0'].as.$namespace.=>.$p
543c0 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 aths).{.$exportedPaths.=.array()
543e0 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 65 ;.foreach.($paths.as.$path).{.$e
54400 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 xportedPaths[].=.$this->getPathC
54420 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c ode($filesystem,.$relVendorPath,
54440 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 24 65 78 70 6f 72 74 65 .$vendorPath,.$path);.}.$exporte
54460 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 2c dPrefix.=.var_export($namespace,
54480 20 74 72 75 65 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 .true);.$namespacesFile..=."....
544a0 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 69 66 20 28 63 6f 75 6e 74 28 $exportedPrefix.=>.";.if.(count(
544c0 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 20 3e 20 31 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 $exportedPaths).>.1).{.$namespac
544e0 65 73 46 69 6c 65 20 2e 3d 20 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c esFile..=."array(".implode(',.',
54500 20 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 .$exportedPaths)."),\n";.}.else.
54520 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 24 65 78 70 6f 72 74 65 64 50 61 {.$namespacesFile..=.$exportedPa
54540 74 68 73 5b 30 5d 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c ths[0].",\n";.}.}.$namespacesFil
54560 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 3d 20 3c 3c e..=.");\n";..$classmapFile.=.<<
54580 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 <EOF.<?php..//.autoload_classmap
545a0 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 .php.generated.by.Composer..\$ve
545c0 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 ndorDir.=.$vendorPathCode;.\$bas
545e0 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 eDir.=.$appBaseDirCode;..return.
54600 61 72 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 0a 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 array(..EOF;....$targetDirLoader
54620 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 20 3d 20 24 6d 61 69 6e 50 61 .=.null;.$mainAutoload.=.$mainPa
54640 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 6d 61 69 6e 50 ckage->getAutoload();.if.($mainP
54660 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 24 6d 61 69 6e 41 ackage->getTargetDir().&&.$mainA
54680 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 20 7b 0a 24 6c 65 76 65 6c 73 20 3d 20 63 6f utoload['psr-0']).{.$levels.=.co
546a0 75 6e 74 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 74 72 69 6d 28 73 74 72 74 72 28 24 6d 61 69 unt(explode('/',.trim(strtr($mai
546c0 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 2c 20 27 5c 5c 27 2c 20 nPackage->getTargetDir(),.'\\',.
546e0 27 2f 27 29 2c 20 27 2f 27 29 29 29 3b 0a 24 70 72 65 66 69 78 65 73 20 3d 20 69 6d 70 6c 6f 64 '/'),.'/')));.$prefixes.=.implod
54700 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 72 65 e(',.',.array_map(function.($pre
54720 66 69 78 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 70 72 65 66 69 78 fix).{.return.var_export($prefix
54740 2c 20 74 72 75 65 29 3b 0a 7d 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6d 61 69 6e 41 75 74 6f ,.true);.},.array_keys($mainAuto
54760 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 29 3b 0a 24 62 61 73 65 44 69 72 46 72 6f 6d 56 65 load['psr-0'])));.$baseDirFromVe
54780 6e 64 6f 72 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 ndorDirCode.=.$filesystem->findS
547a0 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 67 65 74 hortestPathCode($vendorPath,.get
547c0 63 77 64 28 29 2c 20 74 72 75 65 29 3b 0a 0a 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 20 cwd(),.true);..$targetDirLoader.
547e0 3d 20 3c 3c 3c 45 4f 46 0a 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 =.<<<EOF.....spl_autoload_regist
54800 65 72 28 66 75 6e 63 74 69 6f 6e 28 5c 24 63 6c 61 73 73 29 20 7b 0a 20 20 20 20 20 20 20 20 5c er(function(\$class).{.........\
54820 24 64 69 72 20 3d 20 24 62 61 73 65 44 69 72 46 72 6f 6d 56 65 6e 64 6f 72 44 69 72 43 6f 64 65 $dir.=.$baseDirFromVendorDirCode
54840 20 2e 20 27 2f 27 3b 0a 20 20 20 20 20 20 20 20 5c 24 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 ...'/';.........\$prefixes.=.arr
54860 61 79 28 24 70 72 65 66 69 78 65 73 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 ay($prefixes);.........foreach.(
54880 5c 24 70 72 65 66 69 78 65 73 20 61 73 20 5c 24 70 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 \$prefixes.as.\$prefix).{.......
548a0 20 20 20 20 20 20 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 5c 24 63 6c 61 73 73 2c 20 ......if.(0.!==.strpos(\$class,.
548c0 5c 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e \$prefix)).{.................con
548e0 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 tinue;.............}............
54900 20 5c 24 70 61 74 68 20 3d 20 5c 24 64 69 72 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 61 .\$path.=.\$dir...implode('/',.a
54920 72 72 61 79 5f 73 6c 69 63 65 28 65 78 70 6c 6f 64 65 28 27 5c 5c 5c 5c 27 2c 20 5c 24 63 6c 61 rray_slice(explode('\\\\',.\$cla
54940 73 73 29 2c 20 24 6c 65 76 65 6c 73 29 29 2e 27 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 20 ss),.$levels)).'.php';..........
54960 20 20 20 69 66 20 28 21 5c 24 70 61 74 68 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f ...if.(!\$path.=.stream_resolve_
54980 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 5c 24 70 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 include_path(\$path)).{.........
549a0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 ........return.false;...........
549c0 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 72 65 20 5c 24 70 61 74 68 3b 0a ..}.............require.\$path;.
549e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 .............return.true;.......
54a00 20 20 7d 0a 20 20 20 20 7d 29 3b 0a 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 20 24 61 75 74 6f 6c 6f 61 ..}.....});...EOF;.}....$autoloa
54a20 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 ds['classmap'].=.new.\RecursiveI
54a40 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 41 72 teratorIterator(new.\RecursiveAr
54a60 72 61 79 49 74 65 72 61 74 6f 72 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 rayIterator($autoloads['classmap
54a80 27 5d 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 ']));.foreach.($autoloads['class
54aa0 6d 61 70 27 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d map'].as.$dir).{.foreach.(ClassM
54ac0 61 70 47 65 6e 65 72 61 74 6f 72 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 20 61 73 20 apGenerator::createMap($dir).as.
54ae0 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 27 2f 27 2e 24 $class.=>.$path).{.$path.=.'/'.$
54b00 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 67 65 74 filesystem->findShortestPath(get
54b20 63 77 64 28 29 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 63 6c 61 73 73 6d 61 70 46 69 cwd(),.$path,.true);.$classmapFi
54b40 6c 65 20 2e 3d 20 27 20 20 20 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 63 6c 61 73 73 2c 20 le..=.'....'.var_export($class,.
54b60 74 72 75 65 29 2e 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f true).'.=>.$baseDir...'.var_expo
54b80 72 74 28 24 70 61 74 68 2c 20 74 72 75 65 29 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 24 63 6c 61 73 rt($path,.true).",\n";.}.}.$clas
54ba0 73 6d 61 70 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 24 66 69 6c 65 73 43 6f 64 65 20 smapFile..=.");\n";..$filesCode.
54bc0 3d 20 22 22 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 20 3d 20 6e 65 77 20 =."";.$autoloads['files'].=.new.
54be0 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 6e 65 77 20 5c \RecursiveIteratorIterator(new.\
54c00 52 65 63 75 72 73 69 76 65 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 61 75 74 6f 6c 6f 61 64 RecursiveArrayIterator($autoload
54c20 73 5b 27 66 69 6c 65 73 27 5d 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 s['files']));.foreach.($autoload
54c40 73 5b 27 66 69 6c 65 73 27 5d 20 61 73 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 20 7b 0a 24 s['files'].as.$functionFile).{.$
54c60 66 69 6c 65 73 43 6f 64 65 20 2e 3d 20 27 20 20 20 20 72 65 71 75 69 72 65 20 27 2e 24 74 68 69 filesCode..=.'....require.'.$thi
54c80 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c s->getPathCode($filesystem,.$rel
54ca0 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 66 75 6e 63 74 69 VendorPath,.$vendorPath,.$functi
54cc0 6f 6e 46 69 6c 65 29 2e 22 3b 5c 6e 22 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 onFile).";\n";.}..file_put_conte
54ce0 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 nts($targetDir.'/autoload_namesp
54d00 61 63 65 73 2e 70 68 70 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 29 3b 0a 66 69 6c aces.php',.$namespacesFile);.fil
54d20 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f e_put_contents($targetDir.'/auto
54d40 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 2c 20 24 63 6c 61 73 73 6d 61 70 46 69 6c load_classmap.php',.$classmapFil
54d60 65 29 3b 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 20 3d 20 24 74 68 69 73 e);.if.($includePathFile.=.$this
54d80 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 28 24 70 61 63 6b 61 67 65 4d 61 ->getIncludePathsFile($packageMa
54da0 70 2c 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 p,.$filesystem,.$relVendorPath,.
54dc0 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 $vendorPath,.$vendorPathCode,.$a
54de0 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 ppBaseDirCode)).{.file_put_conte
54e00 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 nts($targetDir.'/include_paths.p
54e20 68 70 27 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 29 3b 0a 7d 0a 66 69 6c 65 5f 70 hp',.$includePathFile);.}.file_p
54e40 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 61 75 74 6f 6c 6f ut_contents($vendorPath.'/autolo
54e60 61 64 2e 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 ad.php',.$this->getAutoloadFile(
54e80 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 74 72 75 65 $vendorPathToTargetDirCode,.true
54ea0 2c 20 74 72 75 65 2c 20 28 62 6f 6f 6c 29 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 2c ,.true,.(bool).$includePathFile,
54ec0 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 66 69 6c 65 73 43 6f 64 65 29 29 3b .$targetDirLoader,.$filesCode));
54ee0 0a 63 6f 70 79 28 5f 5f 44 49 52 5f 5f 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 .copy(__DIR__.'/ClassLoader.php'
54f00 2c 20 24 74 61 72 67 65 74 44 69 72 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 29 ,.$targetDir.'/ClassLoader.php')
54f20 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 61 63 6b 61 67 ;.}..public.function.buildPackag
54f40 65 4d 61 70 28 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c eMap(InstallationManager.$instal
54f60 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 lationManager,.PackageInterface.
54f80 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b $mainPackage,.array.$packages).{
54fa0 0a 0a 20 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 24 70 61 ...$packageMap.=.array();....$pa
54fc0 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c ckageMap[].=.array($mainPackage,
54fe0 20 27 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 .'');..foreach.($packages.as.$pa
55000 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 ckage).{.if.($package.instanceof
55020 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 .AliasPackage).{.continue;.}.$pa
55040 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 0a 24 70 61 63 6b 61 67 65 2c 0a 24 69 ckageMap[].=.array(.$package,.$i
55060 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 nstallationManager->getInstallPa
55080 74 68 28 24 70 61 63 6b 61 67 65 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 th($package).);.}..return.$packa
550a0 67 65 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 geMap;.}........public.function.
550c0 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 parseAutoloads(array.$packageMap
550e0 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 ).{.$autoloads.=.array('classmap
55100 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 20 27 70 73 72 2d 30 27 20 3d 3e 20 61 72 72 61 79 28 29 '.=>.array(),.'psr-0'.=>.array()
55120 2c 20 27 66 69 6c 65 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 ,.'files'.=>.array());.foreach.(
55140 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 $packageMap.as.$item).{.list($pa
55160 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 69 ckage,.$installPath).=.$item;..i
55180 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 f.(null.!==.$package->getTargetD
551a0 69 72 28 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 ir()).{.$installPath.=.substr($i
551c0 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 2f 27 2e 24 70 61 63 6b nstallPath,.0,.-strlen('/'.$pack
551e0 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 age->getTargetDir()));.}..foreac
55200 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 20 61 73 20 24 74 h.($package->getAutoload().as.$t
55220 79 70 65 20 3d 3e 20 24 6d 61 70 70 69 6e 67 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 5f 61 72 72 ype.=>.$mapping).{...if.(!is_arr
55240 61 79 28 24 6d 61 70 70 69 6e 67 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 ay($mapping)).{.continue;.}..for
55260 65 61 63 68 20 28 24 6d 61 70 70 69 6e 67 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 each.($mapping.as.$namespace.=>.
55280 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 68 $paths).{.foreach.((array).$path
552a0 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 74 79 70 65 5d 5b s.as.$path).{.$autoloads[$type][
552c0 24 6e 61 6d 65 73 70 61 63 65 5d 5b 5d 20 3d 20 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 $namespace][].=.empty($installPa
552e0 74 68 29 20 3f 20 24 70 61 74 68 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 th).?.$path.:.$installPath.'/'.$
55300 70 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 path;.}.}.}.}..foreach.($autoloa
55320 64 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6d 61 70 73 29 20 7b 0a 6b 72 73 6f 72 74 28 24 ds.as.$type.=>.$maps).{.krsort($
55340 61 75 74 6f 6c 6f 61 64 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 75 autoloads[$type]);.}..return.$au
55360 74 6f 6c 6f 61 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f toloads;.}........public.functio
55380 6e 20 63 72 65 61 74 65 4c 6f 61 64 65 72 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 73 29 n.createLoader(array.$autoloads)
553a0 0a 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a .{.$loader.=.new.ClassLoader();.
553c0 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 29 29 .if.(isset($autoloads['psr-0']))
553e0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 .{.foreach.($autoloads['psr-0'].
55400 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 as.$namespace.=>.$path).{.$loade
55420 72 2d 3e 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a r->add($namespace,.$path);.}.}..
55440 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e return.$loader;.}..protected.fun
55460 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 28 61 72 72 61 79 20 ction.getIncludePathsFile(array.
55480 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 $packageMap,.Filesystem.$filesys
554a0 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 tem,.$relVendorPath,.$vendorPath
554c0 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f ,.$vendorPathCode,.$appBaseDirCo
554e0 64 65 29 0a 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a de).{.$includePaths.=.array();..
55500 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 65 6d 29 20 7b foreach.($packageMap.as.$item).{
55520 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 .list($package,.$installPath).=.
55540 24 69 74 65 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 $item;..if.(null.!==.$package->g
55560 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 etTargetDir().&&.strlen($package
55580 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 3e 20 30 29 20 7b 0a 24 69 6e 73 74 61 6c ->getTargetDir()).>.0).{.$instal
555a0 6c 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 2c 20 lPath.=.substr($installPath,.0,.
555c0 2d 73 74 72 6c 65 6e 28 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 -strlen('/'.$package->getTargetD
555e0 69 72 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 ir()));.}..foreach.($package->ge
55600 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 20 61 73 20 24 69 6e 63 6c 75 64 65 50 61 74 68 29 tIncludePaths().as.$includePath)
55620 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 74 72 69 6d 28 24 69 6e 63 6c 75 64 65 50 .{.$includePath.=.trim($includeP
55640 61 74 68 2c 20 27 2f 27 29 3b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 5b 5d 20 3d 20 65 6d 70 ath,.'/');.$includePaths[].=.emp
55660 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 24 69 6e 63 6c 75 64 65 50 61 74 68 20 ty($installPath).?.$includePath.
55680 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 69 6e 63 6c 75 64 65 50 61 74 68 3b :.$installPath.'/'.$includePath;
556a0 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 20 7b 0a 72 65 74 75 .}.}..if.(!$includePaths).{.retu
556c0 72 6e 3b 0a 7d 0a 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f rn;.}..$includePathsFile.=.<<<EO
556e0 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 20 67 65 F.<?php..//.include_paths.php.ge
55700 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 nerated.by.Composer..\$vendorDir
55720 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 .=.$vendorPathCode;.\$baseDir.=.
55740 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a $appBaseDirCode;..return.array(.
55760 0a 45 4f 46 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 61 73 .EOF;..foreach.($includePaths.as
55780 20 24 70 61 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 20 2e 3d 20 22 .$path).{.$includePathsFile..=."
557a0 20 20 20 20 22 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 ...."...$this->getPathCode($file
557c0 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 system,.$relVendorPath,.$vendorP
557e0 61 74 68 2c 20 24 70 61 74 68 29 20 2e 20 22 2c 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ath,.$path)...",\n";.}..return.$
55800 69 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 20 2e 20 22 29 3b 5c 6e 22 3b 0a 7d 0a 0a 70 72 includePathsFile...");\n";.}..pr
55820 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 43 6f 64 65 28 46 69 6c otected.function.getPathCode(Fil
55840 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 esystem.$filesystem,.$relVendorP
55860 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 ath,.$vendorPath,.$path).{.$path
55880 20 3d 20 73 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 62 61 73 .=.strtr($path,.'\\',.'/');.$bas
558a0 65 44 69 72 20 3d 20 27 27 3b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 eDir.=.'';.if.(!$filesystem->isA
558c0 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 bsolutePath($path)).{.if.(strpos
558e0 28 24 70 61 74 68 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 29 20 3d 3d 3d 20 30 29 20 7b ($path,.$relVendorPath).===.0).{
55900 0a 0a 20 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 ...$path.=.substr($path,.strlen(
55920 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 76 $relVendorPath));.$baseDir.=.'$v
55940 65 6e 64 6f 72 44 69 72 20 2e 20 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 27 endorDir...';.}.else.{.$path.=.'
55960 2f 27 2e 24 70 61 74 68 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e /'.$path;.$baseDir.=.'$baseDir..
55980 20 27 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 74 68 2c 20 24 76 .';.}.}.elseif.(strpos($path,.$v
559a0 65 6e 64 6f 72 50 61 74 68 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 endorPath).===.0).{.$path.=.subs
559c0 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 76 65 6e 64 6f 72 50 61 74 68 29 29 3b 0a tr($path,.strlen($vendorPath));.
559e0 24 62 61 73 65 44 69 72 20 3d 20 27 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 3b 0a 7d 0a 0a 72 $baseDir.=.'$vendorDir...';.}..r
55a00 65 74 75 72 6e 20 24 62 61 73 65 44 69 72 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c eturn.$baseDir.var_export($path,
55a20 20 74 72 75 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 .true);.}..protected.function.ge
55a40 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 tAutoloadFile($vendorPathToTarge
55a60 74 44 69 72 43 6f 64 65 2c 20 24 75 73 65 50 53 52 30 2c 20 24 75 73 65 43 6c 61 73 73 4d 61 70 tDirCode,.$usePSR0,.$useClassMap
55a80 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 ,.$useIncludePath,.$targetDirLoa
55aa0 64 65 72 2c 20 24 66 69 6c 65 73 43 6f 64 65 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 73 43 6f 64 der,.$filesCode).{.if.($filesCod
55ac0 65 29 20 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 3d 20 22 5c 6e 22 2e 24 66 69 6c 65 73 43 6f 64 e).{.$filesCode.=."\n".$filesCod
55ae0 65 3b 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 3c 3c 3c 48 45 41 44 45 52 0a 3c 3f 70 68 70 0a 0a 2f e;.}..$file.=.<<<HEADER.<?php../
55b00 2f 20 61 75 74 6f 6c 6f 61 64 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 /.autoload.php.generated.by.Comp
55b20 6f 73 65 72 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 43 6f 6d 70 6f 73 65 72 oser.if.(!class_exists('Composer
55b40 5c 5c 5c 5c 41 75 74 6f 6c 6f 61 64 5c 5c 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 2c 20 66 61 \\\\Autoload\\\\ClassLoader',.fa
55b60 6c 73 65 29 29 20 7b 0a 20 20 20 20 72 65 71 75 69 72 65 20 24 76 65 6e 64 6f 72 50 61 74 68 54 lse)).{.....require.$vendorPathT
55b80 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 oTargetDirCode...'/ClassLoader.p
55ba0 68 70 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 66 75 hp';.}..return.call_user_func(fu
55bc0 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 5c 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 5c nction().{.....\$loader.=.new.\\
55be0 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 Composer\\Autoload\\ClassLoader(
55c00 29 3b 0a 20 20 20 20 5c 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 );.....\$composerDir.=.$vendorPa
55c20 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 3b 0a 0a 0a 48 45 41 44 45 52 3b 0a 0a 69 66 thToTargetDirCode;...HEADER;..if
55c40 20 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c .($useIncludePath).{.$file..=.<<
55c60 3c 27 49 4e 43 4c 55 44 45 5f 50 41 54 48 27 0a 20 20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 <'INCLUDE_PATH'.....$includePath
55c80 73 20 3d 20 72 65 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 69 6e 63 s.=.require.$composerDir...'/inc
55ca0 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 3b 0a 20 20 20 20 61 72 72 61 79 5f 70 75 73 68 28 lude_paths.php';.....array_push(
55cc0 24 69 6e 63 6c 75 64 65 50 61 74 68 73 2c 20 67 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 $includePaths,.get_include_path(
55ce0 29 29 3b 0a 20 20 20 20 73 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 6a 6f 69 6e 28 50 41 ));.....set_include_path(join(PA
55d00 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 29 3b 0a 0a TH_SEPARATOR,.$includePaths));..
55d20 0a 49 4e 43 4c 55 44 45 5f 50 41 54 48 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 50 53 52 30 29 20 .INCLUDE_PATH;.}..if.($usePSR0).
55d40 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 50 53 52 30 27 0a 20 20 20 20 24 6d 61 70 20 3d 20 {.$file..=.<<<'PSR0'.....$map.=.
55d60 72 65 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 require.$composerDir...'/autoloa
55d80 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 d_namespaces.php';.....foreach.(
55da0 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 20 $map.as.$namespace.=>.$path).{..
55dc0 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 .......$loader->add($namespace,.
55de0 24 70 61 74 68 29 3b 0a 20 20 20 20 7d 0a 0a 0a 50 53 52 30 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 $path);.....}...PSR0;.}..if.($us
55e00 65 43 6c 61 73 73 4d 61 70 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 43 4c 41 53 53 4d eClassMap).{.$file..=.<<<'CLASSM
55e20 41 50 27 0a 20 20 20 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 24 63 6f 6d AP'.....$classMap.=.require.$com
55e40 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 poserDir...'/autoload_classmap.p
55e60 68 70 27 3b 0a 20 20 20 20 69 66 20 28 24 63 6c 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 hp';.....if.($classMap).{.......
55e80 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 ..$loader->addClassMap($classMap
55ea0 29 3b 0a 20 20 20 20 7d 0a 0a 0a 43 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d );.....}...CLASSMAP;.}..$file..=
55ec0 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 .$targetDirLoader;..return.$file
55ee0 20 2e 20 3c 3c 3c 46 4f 4f 54 45 52 0a 20 20 20 20 5c 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 ...<<<FOOTER.....\$loader->regis
55f00 74 65 72 28 29 3b 0a 24 66 69 6c 65 73 43 6f 64 65 0a 20 20 20 20 72 65 74 75 72 6e 20 5c 24 6c ter();.$filesCode.....return.\$l
55f20 6f 61 64 65 72 3b 0a 7d 29 3b 0a 0a 46 4f 4f 54 45 52 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a oader;.});..FOOTER;.}.}.<?php...
55f40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 ..........namespace.Composer\Aut
55f60 6f 6c 6f 61 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 oload;.......class.ClassMapGener
55f80 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 ator.{.......public.static.funct
55fa0 69 6f 6e 20 64 75 6d 70 28 24 64 69 72 73 2c 20 24 66 69 6c 65 29 0a 7b 0a 24 6d 61 70 73 20 3d ion.dump($dirs,.$file).{.$maps.=
55fc0 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 .array();..foreach.($dirs.as.$di
55fe0 72 29 20 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 70 73 2c 20 r).{.$maps.=.array_merge($maps,.
56000 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 69 6c static::createMap($dir));.}..fil
56020 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 73 70 72 69 6e 74 66 28 27 3c e_put_contents($file,.sprintf('<
56040 3f 70 68 70 20 72 65 74 75 72 6e 20 25 73 3b 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6d 61 ?php.return.%s;',.var_export($ma
56060 70 73 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 ps,.true)));.}.........public.st
56080 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 0a 7b 0a atic.function.createMap($dir).{.
560a0 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 64 69 72 29 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 if.(is_string($dir)).{.if.(is_fi
560c0 6c 65 28 24 64 69 72 29 29 20 7b 0a 24 64 69 72 20 3d 20 61 72 72 61 79 28 6e 65 77 20 5c 53 70 le($dir)).{.$dir.=.array(new.\Sp
560e0 6c 46 69 6c 65 49 6e 66 6f 28 24 64 69 72 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 20 lFileInfo($dir));.}.else.{.$dir.
56100 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 =.new.\RecursiveIteratorIterator
56120 28 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 (new.\RecursiveDirectoryIterator
56140 28 24 64 69 72 29 29 3b 0a 7d 0a 7d 0a 0a 24 6d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 ($dir));.}.}..$map.=.array();..f
56160 6f 72 65 61 63 68 20 28 24 64 69 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 21 24 66 oreach.($dir.as.$file).{.if.(!$f
56180 69 6c 65 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 ile->isFile()).{.continue;.}..$p
561a0 61 74 68 20 3d 20 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 ath.=.$file->getRealPath();..if.
561c0 28 70 61 74 68 69 6e 66 6f 28 24 70 61 74 68 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 (pathinfo($path,.PATHINFO_EXTENS
561e0 49 4f 4e 29 20 21 3d 3d 20 27 70 68 70 27 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 ION).!==.'php').{.continue;.}..$
56200 63 6c 61 73 73 65 73 20 3d 20 73 65 6c 66 3a 3a 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 classes.=.self::findClasses($pat
56220 68 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 65 73 20 61 73 20 24 63 6c 61 73 73 h);..foreach.($classes.as.$class
56240 29 20 7b 0a 24 6d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 0a 0a 7d 0a 0a ).{.$map[$class].=.$path;.}..}..
56260 72 65 74 75 72 6e 20 24 6d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 return.$map;.}.........private.s
56280 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 68 tatic.function.findClasses($path
562a0 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 ).{.$contents.=.file_get_content
562c0 73 28 24 70 61 74 68 29 3b 0a 74 72 79 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 s($path);.try.{.if.(!preg_match(
562e0 27 7b 5c 62 28 3f 3a 63 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 7c 74 72 61 69 74 29 5c 62 7d '{\b(?:class|interface|trait)\b}
56300 69 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 i',.$contents)).{.return.array()
56320 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 20 3d 20 74 6f 6b 65 6e 5f 67 65 74 5f 61 6c 6c 28 24 63 6f 6e ;.}.$tokens.=.token_get_all($con
56340 74 65 6e 74 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 tents);.}.catch.(\Exception.$e).
56360 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 {.throw.new.\RuntimeException('C
56380 6f 75 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 65 ould.not.scan.for.classes.inside
563a0 20 27 2e 24 70 61 74 68 2e 22 3a 20 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 .'.$path.":.\n".$e->getMessage()
563c0 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a 24 54 5f 54 52 41 49 54 20 3d 20 76 65 72 73 69 6f 6e 5f 63 ,.0,.$e);.}.$T_TRAIT.=.version_c
563e0 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3c 27 29 20 ompare(PHP_VERSION,.'5.4',.'<').
56400 3f 20 2d 31 20 3a 20 54 5f 54 52 41 49 54 3b 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 61 72 72 61 ?.-1.:.T_TRAIT;..$classes.=.arra
56420 79 28 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 20 3d y();..$namespace.=.'';.for.($i.=
56440 20 30 2c 20 24 6d 61 78 20 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 3b 20 24 69 20 3c 20 .0,.$max.=.count($tokens);.$i.<.
56460 24 6d 61 78 3b 20 24 69 2b 2b 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 $max;.$i++).{.$token.=.$tokens[$
56480 69 5d 3b 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 6f 6b 65 6e 29 29 20 7b 0a 63 6f i];..if.(is_string($token)).{.co
564a0 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 27 27 3b 0a 0a 73 77 69 74 63 68 20 ntinue;.}..$class.=.'';..switch.
564c0 28 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 63 61 73 65 20 54 5f 4e 41 4d 45 53 50 41 43 45 3a 0a ($token[0]).{.case.T_NAMESPACE:.
564e0 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 0a 20 77 68 69 6c 65 20 28 28 24 74 20 3d 20 $namespace.=.'';...while.(($t.=.
56500 24 74 6f 6b 65 6e 73 5b 2b 2b 24 69 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 74 29 29 20 $tokens[++$i]).&&.is_array($t)).
56520 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 74 5b 30 5d 2c 20 61 72 72 61 79 28 54 5f 53 54 {.if.(in_array($t[0],.array(T_ST
56540 52 49 4e 47 2c 20 54 5f 4e 53 5f 53 45 50 41 52 41 54 4f 52 29 29 29 20 7b 0a 24 6e 61 6d 65 73 RING,.T_NS_SEPARATOR))).{.$names
56560 70 61 63 65 20 2e 3d 20 24 74 5b 31 5d 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 70 61 63 65 20 2e 3d pace..=.$t[1];.}.}.$namespace..=
56580 20 27 5c 5c 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 54 5f 43 4c 41 53 53 3a 0a 63 61 73 65 .'\\';.break;.case.T_CLASS:.case
565a0 20 54 5f 49 4e 54 45 52 46 41 43 45 3a 0a 63 61 73 65 20 24 54 5f 54 52 41 49 54 3a 0a 0a 20 77 .T_INTERFACE:.case.$T_TRAIT:...w
565c0 68 69 6c 65 20 28 28 24 74 20 3d 20 24 74 6f 6b 65 6e 73 5b 2b 2b 24 69 5d 29 20 26 26 20 69 73 hile.(($t.=.$tokens[++$i]).&&.is
565e0 5f 61 72 72 61 79 28 24 74 29 29 20 7b 0a 69 66 20 28 54 5f 53 54 52 49 4e 47 20 3d 3d 3d 20 24 _array($t)).{.if.(T_STRING.===.$
56600 74 5b 30 5d 29 20 7b 0a 24 63 6c 61 73 73 20 2e 3d 20 24 74 5b 31 5d 3b 0a 7d 20 65 6c 73 65 69 t[0]).{.$class..=.$t[1];.}.elsei
56620 66 20 28 24 63 6c 61 73 73 20 21 3d 3d 20 27 27 20 26 26 20 54 5f 57 48 49 54 45 53 50 41 43 45 f.($class.!==.''.&&.T_WHITESPACE
56640 20 3d 3d 20 24 74 5b 30 5d 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 63 6c 61 73 73 65 .==.$t[0]).{.break;.}.}..$classe
56660 73 5b 5d 20 3d 20 6c 74 72 69 6d 28 24 6e 61 6d 65 73 70 61 63 65 20 2e 20 24 63 6c 61 73 73 2c s[].=.ltrim($namespace...$class,
56680 20 27 5c 5c 27 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d .'\\');.break;.default:.break;.}
566a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a .}..return.$classes;.}.}.<?php..
566c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 ..........namespace.Composer;..u
566e0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e se.Composer\Autoload\AutoloadGen
56700 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 erator;.use.Composer\DependencyR
56720 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 3b 0a 75 73 65 20 43 6f 6d 70 6f esolver\DefaultPolicy;.use.Compo
56740 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e ser\DependencyResolver\Operation
56760 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 \UpdateOperation;.use.Composer\D
56780 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 ependencyResolver\Pool;.use.Comp
567a0 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b oser\DependencyResolver\Request;
567c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 .use.Composer\DependencyResolver
567e0 5c 53 6f 6c 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 \Solver;.use.Composer\Dependency
56800 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e Resolver\SolverProblemsException
56820 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f ;.use.Composer\Downloader\Downlo
56840 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 adManager;.use.Composer\Installe
56860 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f r\InstallationManager;.use.Compo
56880 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c ser\Config;.use.Composer\Install
568a0 65 72 5c 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 er\NoopInstaller;.use.Composer\I
568c0 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b O\IOInterface;.use.Composer\Pack
568e0 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 age\AliasPackage;.use.Composer\P
56900 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 ackage\Link;.use.Composer\Packag
56920 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 e\LinkConstraint\VersionConstrai
56940 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 3b nt;.use.Composer\Package\Locker;
56960 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 .use.Composer\Package\PackageInt
56980 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c erface;.use.Composer\Repository\
569a0 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 CompositeRepository;.use.Compose
569c0 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 r\Repository\InstalledArrayRepos
569e0 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 itory;.use.Composer\Repository\P
56a00 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c latformRepository;.use.Composer\
56a20 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a Repository\RepositoryInterface;.
56a40 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f use.Composer\Repository\Reposito
56a60 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 45 ryManager;.use.Composer\Script\E
56a80 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 ventDispatcher;.use.Composer\Scr
56aa0 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e ipt\ScriptEvents;.......class.In
56ac0 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a staller.{....protected.$io;.....
56ae0 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 protected.$config;.....protected
56b00 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f .$package;.....protected.$downlo
56b20 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 adManager;.....protected.$reposi
56b40 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 63 6b toryManager;.....protected.$lock
56b60 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d er;.....protected.$installationM
56b80 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 anager;.....protected.$eventDisp
56ba0 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 6f 6c 6f 61 64 47 atcher;.....protected.$autoloadG
56bc0 65 6e 65 72 61 74 6f 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 53 6f 75 72 enerator;..protected.$preferSour
56be0 63 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 4d 6f 64 65 20 3d ce.=.false;.protected.$devMode.=
56c00 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 72 79 52 75 6e 20 3d 20 66 61 6c 73 .false;.protected.$dryRun.=.fals
56c20 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 3b 0a 70 e;.protected.$verbose.=.false;.p
56c40 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 rotected.$update.=.false;.protec
56c60 74 65 64 20 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 ted.$runScripts.=.true;.protecte
56c80 64 20 24 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 70 d.$updateWhitelist.=.null;.....p
56ca0 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a rotected.$suggestedPackages;....
56cc0 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 .protected.$additionalInstalledR
56ce0 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 epository;...............public.
56d00 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 function.__construct(IOInterface
56d20 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 61 63 6b 61 67 65 49 6e 74 .$io,.Config.$config,.PackageInt
56d40 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 erface.$package,.DownloadManager
56d60 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e .$downloadManager,.RepositoryMan
56d80 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 4c 6f 63 6b 65 72 20 ager.$repositoryManager,.Locker.
56da0 24 6c 6f 63 6b 65 72 2c 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e $locker,.InstallationManager.$in
56dc0 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 stallationManager,.EventDispatch
56de0 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e er.$eventDispatcher,.AutoloadGen
56e00 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 29 0a 7b 0a 24 74 68 erator.$autoloadGenerator).{.$th
56e20 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 is->io.=.$io;.$this->config.=.$c
56e40 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 onfig;.$this->package.=.$package
56e60 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e ;.$this->downloadManager.=.$down
56e80 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 loadManager;.$this->repositoryMa
56ea0 6e 61 67 65 72 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 nager.=.$repositoryManager;.$thi
56ec0 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 s->locker.=.$locker;.$this->inst
56ee0 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d allationManager.=.$installationM
56f00 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d anager;.$this->eventDispatcher.=
56f20 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f .$eventDispatcher;.$this->autolo
56f40 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 adGenerator.=.$autoloadGenerator
56f60 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a ;.}.....public.function.run().{.
56f80 69 66 20 28 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 if.($this->dryRun).{.$this->verb
56fa0 6f 73 65 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 ose.=.true;.$this->runScripts.=.
56fc0 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 false;.$this->installationManage
56fe0 72 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 r->addInstaller(new.NoopInstalle
57000 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 29 20 r);.}..if.($this->preferSource).
57020 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 73 65 74 50 72 65 {.$this->downloadManager->setPre
57040 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 7d 0a 0a 0a 20 24 69 6e 73 74 61 6c 6c 65 64 ferSource(true);.}....$installed
57060 52 6f 6f 74 50 61 63 6b 61 67 65 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 RootPackage.=.clone.$this->packa
57080 67 65 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 ge;.$installedRootPackage->setRe
570a0 71 75 69 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 quires(array());.$installedRootP
570c0 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 28 29 29 3b ackage->setDevRequires(array());
570e0 0a 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 ..$platformRepo.=.new.PlatformRe
57100 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 pository();.$repos.=.array_merge
57120 28 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c (.$this->repositoryManager->getL
57140 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 0a 61 72 72 61 79 28 0a 6e 65 77 20 49 ocalRepositories(),.array(.new.I
57160 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 69 nstalledArrayRepository(array($i
57180 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 29 29 2c 0a 24 70 6c 61 74 66 6f 72 6d nstalledRootPackage)),.$platform
571a0 52 65 70 6f 2c 0a 29 0a 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 Repo,.).);.$installedRepo.=.new.
571c0 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 69 66 20 CompositeRepository($repos);.if.
571e0 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 ($this->additionalInstalledRepos
57200 69 74 6f 72 79 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 61 64 64 52 65 70 6f itory).{.$installedRepo->addRepo
57220 73 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 sitory($this->additionalInstalle
57240 64 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 dRepository);.}..$aliases.=.$thi
57260 73 2d 3e 61 6c 69 61 73 50 61 63 6b 61 67 65 73 28 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 3b s->aliasPackages($platformRepo);
57280 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 65 76 ..if.($this->runScripts).{...$ev
572a0 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 70 74 entName.=.$this->update.?.Script
572c0 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 74 45 Events::PRE_UPDATE_CMD.:.ScriptE
572e0 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 vents::PRE_INSTALL_CMD;.$this->e
57300 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 ventDispatcher->dispatchCommandE
57320 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 75 67 67 vent($eventName);.}..$this->sugg
57340 65 73 74 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 24 74 estedPackages.=.array();.if.(!$t
57360 68 69 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 his->doInstall($this->repository
57380 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 Manager->getLocalRepository(),.$
573a0 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 29 20 7b 0a 72 65 74 75 installedRepo,.$aliases)).{.retu
573c0 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 20 rn.false;.}.if.($this->devMode).
573e0 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 74 68 69 73 2d 3e 72 {.if.(!$this->doInstall($this->r
57400 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 epositoryManager->getLocalDevRep
57420 6f 73 69 74 6f 72 79 28 29 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 ository(),.$installedRepo,.$alia
57440 73 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a ses,.true)).{.return.false;.}.}.
57460 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b ...foreach.($this->suggestedPack
57480 61 67 65 73 20 61 73 20 24 73 75 67 67 65 73 74 69 6f 6e 29 20 7b 0a 69 66 20 28 21 24 69 6e 73 ages.as.$suggestion).{.if.(!$ins
574a0 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 73 75 67 67 65 73 talledRepo->findPackages($sugges
574c0 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 tion['target'])).{.$this->io->wr
574e0 69 74 65 28 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 73 6f 75 72 63 65 27 5d 2e 27 20 73 75 67 67 ite($suggestion['source'].'.sugg
57500 65 73 74 73 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 ests.installing.'.$suggestion['t
57520 61 72 67 65 74 27 5d 2e 27 20 28 27 2e 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 72 65 61 73 6f 6e arget'].'.('.$suggestion['reason
57540 27 5d 2e 27 29 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e '].')');.}.}..if.(!$this->dryRun
57560 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 7c 7c 20 21 24 74 68 69 ).{...if.($this->update.||.!$thi
57580 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 75 70 64 61 74 65 s->locker->isLocked()).{.$update
575a0 64 4c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 73 65 74 4c 6f 63 6b 44 61 dLock.=.$this->locker->setLockDa
575c0 74 61 28 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 ta(.$this->repositoryManager->ge
575e0 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 tLocalRepository()->getPackages(
57600 29 2c 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 ),.$this->devMode.?.$this->repos
57620 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 itoryManager->getLocalDevReposit
57640 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 3a 20 6e 75 6c 6c 2c 0a 24 61 6c ory()->getPackages().:.null,.$al
57660 69 61 73 65 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 iases,.$this->package->getMinimu
57680 6d 53 74 61 62 69 6c 69 74 79 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 mStability(),.$this->package->ge
576a0 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 tStabilityFlags().);.if.($update
576c0 64 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f dLock).{.$this->io->write('<info
576e0 3e 57 72 69 74 69 6e 67 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d >Writing.lock.file</info>');.}.}
57700 0a 0a 0a 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 ....$this->io->write('<info>Gene
57720 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a rating.autoload.files</info>');.
57740 24 6c 6f 63 61 6c 52 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 $localRepos.=.new.CompositeRepos
57760 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e itory($this->repositoryManager->
57780 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e getLocalRepositories());.$this->
577a0 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2d 3e 64 75 6d 70 28 24 74 68 69 73 2d 3e 63 autoloadGenerator->dump($this->c
577c0 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 onfig,.$localRepos,.$this->packa
577e0 67 65 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 ge,.$this->installationManager,.
57800 27 63 6f 6d 70 6f 73 65 72 27 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 'composer');..if.($this->runScri
57820 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 pts).{...$eventName.=.$this->upd
57840 61 74 65 20 3f 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 55 50 44 41 54 45 5f ate.?.ScriptEvents::POST_UPDATE_
57860 43 4d 44 20 3a 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 49 4e 53 54 41 4c 4c CMD.:.ScriptEvents::POST_INSTALL
57880 5f 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 _CMD;.$this->eventDispatcher->di
578a0 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a spatchCommandEvent($eventName);.
578c0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 }.}..return.true;.}..protected.f
578e0 75 6e 63 74 69 6f 6e 20 64 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 unction.doInstall($localRepo,.$i
57900 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 64 65 76 4d 6f 64 65 nstalledRepo,.$aliases,.$devMode
57920 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 .=.false).{.$minimumStability.=.
57940 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c $this->package->getMinimumStabil
57960 69 74 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e ity();.$stabilityFlags.=.$this->
57980 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 0a package->getStabilityFlags();...
579a0 20 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f .if.(!$this->update.&&.$this->lo
579c0 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 24 64 65 76 4d 6f 64 65 29 29 20 7b 0a 24 6c 6f 63 cker->isLocked($devMode)).{.$loc
579e0 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 kedPackages.=.$this->locker->get
57a00 4c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 28 24 64 65 76 4d 6f 64 65 29 3b 0a 24 6d 69 6e 69 6d LockedPackages($devMode);.$minim
57a20 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 umStability.=.$this->locker->get
57a40 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c MinimumStability();.$stabilityFl
57a60 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 ags.=.$this->locker->getStabilit
57a80 79 46 6c 61 67 73 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 55 70 64 yFlags();.}..$this->whitelistUpd
57aa0 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 24 64 65 ateDependencies(.$localRepo,.$de
57ac0 76 4d 6f 64 65 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 vMode,.$this->package->getRequir
57ae0 65 73 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 es(),.$this->package->getDevRequ
57b00 69 72 65 73 28 29 0a 29 3b 0a 0a 0a 20 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 24 6d ires().);....$pool.=.new.Pool($m
57b20 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 inimumStability,.$stabilityFlags
57b40 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 69 6e 73 74 61 6c 6c );.$pool->addRepository($install
57b60 65 64 52 65 70 6f 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 edRepo);.foreach.($this->reposit
57b80 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 oryManager->getRepositories().as
57ba0 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 .$repository).{.$pool->addReposi
57bc0 74 6f 72 79 28 24 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 0a 20 24 69 6e 73 74 61 6c 6c tory($repository);.}....$install
57be0 46 72 6f 6d 4c 6f 63 6b 20 3d 20 66 61 6c 73 65 3b 0a 24 72 65 71 75 65 73 74 20 3d 20 6e 65 77 FromLock.=.false;.$request.=.new
57c00 20 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 29 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 .Request($pool);..$constraint.=.
57c20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 new.VersionConstraint('=',.$this
57c40 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 ->package->getVersion());.$reque
57c60 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e st->install($this->package->getN
57c80 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d ame(),.$constraint);..if.($this-
57ca0 3e 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e >update).{.$this->io->write('<in
57cc0 66 6f 3e 55 70 64 61 74 69 6e 67 20 27 2e 28 24 64 65 76 4d 6f 64 65 20 3f 20 27 64 65 76 20 27 fo>Updating.'.($devMode.?.'dev.'
57ce0 3a 20 27 27 29 2e 27 64 65 70 65 6e 64 65 6e 63 69 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 24 :.'').'dependencies</info>');..$
57d00 72 65 71 75 65 73 74 2d 3e 75 70 64 61 74 65 41 6c 6c 28 29 3b 0a 0a 24 6c 69 6e 6b 73 20 3d 20 request->updateAll();..$links.=.
57d20 24 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 $devMode.?.$this->package->getDe
57d40 76 52 65 71 75 69 72 65 73 28 29 20 3a 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 vRequires().:.$this->package->ge
57d60 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 tRequires();..foreach.($links.as
57d80 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e .$link).{.$request->install($lin
57da0 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 k->getTarget(),.$link->getConstr
57dc0 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b aint());.}.}.elseif.($this->lock
57de0 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 24 64 65 76 4d 6f 64 65 29 29 20 7b 0a 24 69 6e 73 74 61 er->isLocked($devMode)).{.$insta
57e00 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 llFromLock.=.true;.$this->io->wr
57e20 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 28 24 64 65 76 4d 6f 64 ite('<info>Installing.'.($devMod
57e40 65 20 3f 20 27 64 65 76 20 27 3a 20 27 27 29 2e 27 64 65 70 65 6e 64 65 6e 63 69 65 73 20 66 72 e.?.'dev.':.'').'dependencies.fr
57e60 6f 6d 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 21 24 74 68 om.lock.file</info>');..if.(!$th
57e80 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 46 72 65 73 68 28 29 20 26 26 20 21 24 64 65 76 4d 6f is->locker->isFresh().&&.!$devMo
57ea0 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 de).{.$this->io->write('<warning
57ec0 3e 59 6f 75 72 20 6c 6f 63 6b 20 66 69 6c 65 20 69 73 20 6f 75 74 20 6f 66 20 73 79 6e 63 20 77 >Your.lock.file.is.out.of.sync.w
57ee0 69 74 68 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2c 20 72 75 6e 20 22 63 6f 6d ith.your.composer.json,.run."com
57f00 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 22 20 74 6f 20 75 70 64 61 74 65 20 64 65 70 poser.phar.update".to.update.dep
57f20 65 6e 64 65 6e 63 69 65 73 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 endencies</warning>');.}..foreac
57f40 68 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 h.($lockedPackages.as.$package).
57f60 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f {.$version.=.$package->getVersio
57f80 6e 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 n();.foreach.($aliases.as.$alias
57fa0 29 20 7b 0a 69 66 20 28 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 20 3d 3d 3d 20 24 70 ).{.if.($alias['package'].===.$p
57fc0 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 24 61 6c 69 61 73 5b 27 76 65 72 ackage->getName().&&.$alias['ver
57fe0 73 69 6f 6e 27 5d 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 sion'].===.$package->getVersion(
58000 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f )).{.$version.=.$alias['alias_no
58020 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 24 63 6f 6e 73 74 72 61 69 rmalized'];.break;.}.}.$constrai
58040 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 nt.=.new.VersionConstraint('=',.
58060 24 76 65 72 73 69 6f 6e 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 70 61 $version);.$request->install($pa
58080 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a ckage->getName(),.$constraint);.
580a0 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e }.}.else.{.$this->io->write('<in
580c0 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 28 24 64 65 76 4d 6f 64 65 20 3f 20 27 64 65 76 fo>Installing.'.($devMode.?.'dev
580e0 20 27 3a 20 27 27 29 2e 27 64 65 70 65 6e 64 65 6e 63 69 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a .':.'').'dependencies</info>');.
58100 0a 24 6c 69 6e 6b 73 20 3d 20 24 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 70 61 63 6b .$links.=.$devMode.?.$this->pack
58120 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 20 3a 20 24 74 68 69 73 2d 3e 70 age->getDevRequires().:.$this->p
58140 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 ackage->getRequires();..foreach.
58160 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e ($links.as.$link).{.$request->in
58180 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d stall($link->getTarget(),.$link-
581a0 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 0a 20 0a 20 66 6f >getConstraint());.}.}........fo
581c0 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 reach.($installedRepo->getPackag
581e0 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 es().as.$package).{.if.($package
58200 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3d 3d 3d 20 24 6c 6f 63 61 6c 52 65 70 6f ->getRepository().===.$localRepo
58220 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e ).{.continue;.}..$constraint.=.n
58240 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 ew.VersionConstraint('=',.$packa
58260 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 ge->getVersion());.$request->ins
58280 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 tall($package->getName(),.$const
582a0 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 raint);.}......if.($this->update
582c0 20 26 26 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 69 66 .&&.$this->updateWhitelist).{.if
582e0 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 24 64 65 76 4d 6f .($this->locker->isLocked($devMo
58300 64 65 29 29 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d de)).{.$currentPackages.=.$this-
58320 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 28 24 64 65 76 4d >locker->getLockedPackages($devM
58340 6f 64 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 ode);.}.else.{.$currentPackages.
58360 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b =.$installedRepo->getPackages();
58380 0a 7d 0a 0a 0a 20 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 .}....$candidates.=.array();.for
583a0 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 63 61 6e 64 69 64 each.($links.as.$link).{.$candid
583c0 61 74 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b ates[$link->getTarget()].=.true;
583e0 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 .}.foreach.($localRepo->getPacka
58400 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 ges().as.$package).{.$candidates
58420 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a [$package->getName()].=.true;.}.
58440 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 ...foreach.($candidates.as.$cand
58460 69 64 61 74 65 20 3d 3e 20 24 64 75 6d 6d 79 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 75 72 idate.=>.$dummy).{.foreach.($cur
58480 72 65 6e 74 50 61 63 6b 61 67 65 73 20 61 73 20 24 63 75 72 50 61 63 6b 61 67 65 29 20 7b 0a 69 rentPackages.as.$curPackage).{.i
584a0 66 20 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 63 f.($curPackage->getName().===.$c
584c0 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 andidate).{.if.($this->isUpdatea
584e0 62 6c 65 28 24 63 75 72 50 61 63 6b 61 67 65 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 63 ble($curPackage)).{.break;.}..$c
58500 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e onstraint.=.new.VersionConstrain
58520 74 28 27 3d 27 2c 20 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 t('=',.$curPackage->getVersion()
58540 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 63 75 72 50 61 63 6b 61 67 65 );.$request->install($curPackage
58560 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 7d 0a 7d ->getName(),.$constraint);.}.}.}
58580 0a 7d 0a 0a 0a 20 24 70 6f 6c 69 63 79 20 3d 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 .}....$policy.=.new.DefaultPolic
585a0 79 28 29 3b 0a 24 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c 69 63 y();.$solver.=.new.Solver($polic
585c0 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 0a 0a 20 74 72 y,.$pool,.$installedRepo);....tr
585e0 79 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 y.{.$operations.=.$solver->solve
58600 28 24 72 65 71 75 65 73 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 53 6f 6c 76 65 72 50 72 6f 62 6c ($request);.}.catch.(SolverProbl
58620 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 emsException.$e).{.$this->io->wr
58640 69 74 65 28 27 3c 65 72 72 6f 72 3e 59 6f 75 72 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 63 6f ite('<error>Your.requirements.co
58660 75 6c 64 20 6e 6f 74 20 62 65 20 72 65 73 6f 6c 76 65 64 20 74 6f 20 61 6e 20 69 6e 73 74 61 6c uld.not.be.resolved.to.an.instal
58680 6c 61 62 6c 65 20 73 65 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2e 3c 2f 65 72 72 6f 72 3e 27 29 lable.set.of.packages.</error>')
586a0 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 ;.$this->io->write($e->getMessag
586c0 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 e());..return.false;.}....foreac
586e0 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 h.($localRepo->getPackages().as.
58700 24 70 61 63 6b 61 67 65 29 20 7b 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 $package).{...if.(!$package->isD
58720 65 76 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 ev()).{.continue;.}....foreach.(
58740 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 69 66 20 $operations.as.$operation).{.if.
58760 28 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f (('update'.===.$operation->getJo
58780 62 54 79 70 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 bType().&&.$operation->getInitia
587a0 6c 50 61 63 6b 61 67 65 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 7c 7c lPackage()->equals($package)).||
587c0 20 28 27 75 6e 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 .('uninstall'.===.$operation->ge
587e0 74 4a 6f 62 54 79 70 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 tJobType().&&.$operation->getPac
58800 6b 61 67 65 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 29 20 7b 0a 63 6f kage()->equals($package)).).{.co
58820 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f ntinue.2;.}.}....if.($installFro
58840 6d 4c 6f 63 6b 29 20 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b mLock).{.$lockData.=.$this->lock
58860 65 72 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 75 6e 73 65 74 28 24 6c 6f 63 6b 65 64 er->getLockData();.unset($locked
58880 52 65 66 65 72 65 6e 63 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 44 61 74 61 5b 27 Reference);.foreach.($lockData['
588a0 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 20 7b 0a packages'].as.$lockedPackage).{.
588c0 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 if.(!empty($lockedPackage['sourc
588e0 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 29 20 26 26 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6c 6f e-reference']).&&.strtolower($lo
58900 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 70 61 63 6b 61 67 65 27 5d 29 20 3d 3d 3d 20 24 70 61 63 ckedPackage['package']).===.$pac
58920 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 52 65 66 65 72 65 kage->getName()).{.$lockedRefere
58940 6e 63 65 20 3d 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 nce.=.$lockedPackage['source-ref
58960 65 72 65 6e 63 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 erence'];.break;.}.}.if.(isset($
58980 6c 6f 63 6b 65 64 52 65 66 65 72 65 6e 63 65 29 20 26 26 20 24 6c 6f 63 6b 65 64 52 65 66 65 72 lockedReference).&&.$lockedRefer
589a0 65 6e 63 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 ence.!==.$package->getSourceRefe
589c0 72 65 6e 63 65 28 29 29 20 7b 0a 0a 20 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 rence()).{...$operations[].=.new
589e0 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 63 6c 6f 6e 65 .UpdateOperation($package,.clone
58a00 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 74 68 .$package);.}.}.else.{...if.($th
58a20 69 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 is->update).{...if.($this->updat
58a40 65 57 68 69 74 65 6c 69 73 74 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 eWhitelist.&&.!$this->isUpdateab
58a60 6c 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6e 65 le($package)).{.continue;.}..$ne
58a80 77 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 wPackage.=.$this->repositoryMana
58aa0 67 65 72 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 ger->findPackage($package->getNa
58ac0 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 69 me(),.$package->getVersion());.i
58ae0 66 20 28 24 6e 65 77 50 61 63 6b 61 67 65 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 f.($newPackage.&&.$newPackage->g
58b00 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 etSourceReference().!==.$package
58b20 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 6f 70 65 72 61 ->getSourceReference()).{.$opera
58b40 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 tions[].=.new.UpdateOperation($p
58b60 61 63 6b 61 67 65 2c 20 24 6e 65 77 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 ackage,.$newPackage);.}.}....$re
58b80 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 ferences.=.$this->package->getRe
58ba0 66 65 72 65 6e 63 65 73 28 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e 63 ferences();..if.(isset($referenc
58bc0 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 24 72 65 66 es[$package->getName()]).&&.$ref
58be0 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 21 3d 3d erences[$package->getName()].!==
58c00 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 .$package->getSourceReference())
58c20 20 7b 0a 0a 20 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f .{...$operations[].=.new.UpdateO
58c40 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 peration($package,.clone.$packag
58c60 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 6f 70 65 72 61 74 69 6f 6e 73 29 20 7b e);.}.}.}....if.(!$operations).{
58c80 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 4e 6f 74 68 69 6e 67 20 74 6f 20 69 6e .$this->io->write('Nothing.to.in
58ca0 73 74 61 6c 6c 20 6f 72 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 stall.or.update');.}..foreach.($
58cc0 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 0a 20 69 66 operations.as.$operation).{...if
58ce0 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a .('install'.===.$operation->getJ
58d00 6f 62 54 79 70 65 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 2d obType()).{.foreach.($operation-
58d20 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 >getPackage()->getSuggests().as.
58d40 24 74 61 72 67 65 74 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 75 67 $target.=>.$reason).{.$this->sug
58d60 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 73 6f 75 72 63 gestedPackages[].=.array(.'sourc
58d80 65 27 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e e'.=>.$operation->getPackage()->
58da0 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 27 74 61 72 67 65 74 27 20 3d 3e 20 24 74 61 getPrettyName(),.'target'.=>.$ta
58dc0 72 67 65 74 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a rget,.'reason'.=>.$reason,.);.}.
58de0 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 }..$event.=.'Composer\Script\Scr
58e00 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 50 41 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f 75 70 iptEvents::PRE_PACKAGE_'.strtoup
58e20 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 3b 0a 69 per($operation->getJobType());.i
58e40 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 29 20 26 26 20 24 74 68 69 73 2d 3e 72 75 6e f.(defined($event).&&.$this->run
58e60 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 Scripts).{.$this->eventDispatche
58e80 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 63 6f 6e 73 74 61 6e 74 r->dispatchPackageEvent(constant
58ea0 28 24 65 76 65 6e 74 29 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 ($event),.$operation);.}....if.(
58ec0 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e $installFromLock).{.$package.=.n
58ee0 75 6c 6c 3b 0a 69 66 20 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e ull;.if.('update'.===.$operation
58f00 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 ->getJobType()).{.$package.=.$op
58f20 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 20 65 eration->getTargetPackage();.}.e
58f40 6c 73 65 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d lseif.('install'.===.$operation-
58f60 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 >getJobType()).{.$package.=.$ope
58f80 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 69 66 20 28 24 70 61 63 ration->getPackage();.}.if.($pac
58fa0 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 24 6c 6f kage.&&.$package->isDev()).{.$lo
58fc0 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 44 ckData.=.$this->locker->getLockD
58fe0 61 74 61 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 ata();.foreach.($lockData['packa
59000 67 65 73 27 5d 20 61 73 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 ges'].as.$lockedPackage).{.if.(!
59020 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 empty($lockedPackage['source-ref
59040 65 72 65 6e 63 65 27 5d 29 20 26 26 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6c 6f 63 6b 65 64 50 erence']).&&.strtolower($lockedP
59060 61 63 6b 61 67 65 5b 27 70 61 63 6b 61 67 65 27 5d 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d ackage['package']).===.$package-
59080 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f 63 6b >getName()).{...if.(!empty($lock
590a0 65 64 50 61 63 6b 61 67 65 5b 27 63 6f 6d 6d 69 74 2d 64 61 74 65 27 5d 29 29 20 7b 0a 24 70 61 edPackage['commit-date'])).{.$pa
590c0 63 6b 61 67 65 2d 3e 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 6e 65 77 20 5c 44 61 74 65 54 ckage->setReleaseDate(new.\DateT
590e0 69 6d 65 28 27 40 27 2e 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 63 6f 6d 6d 69 74 2d 64 ime('@'.$lockedPackage['commit-d
59100 61 74 65 27 5d 29 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 ate']));.}.$package->setSourceRe
59120 66 65 72 65 6e 63 65 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 ference($lockedPackage['source-r
59140 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 eference']);.break;.}.}.}.}.else
59160 20 7b 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 27 75 70 64 61 74 .{...$package.=.null;.if.('updat
59180 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 e'.===.$operation->getJobType())
591a0 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 .{.$package.=.$operation->getTar
591c0 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 6e 73 74 61 6c 6c getPackage();.}.elseif.('install
591e0 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 '.===.$operation->getJobType()).
59200 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b {.$package.=.$operation->getPack
59220 61 67 65 28 29 3b 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 age();.}.if.($package.&&.$packag
59240 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 e->isDev()).{.$references.=.$thi
59260 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 69 66 20 s->package->getReferences();.if.
59280 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 (isset($references[$package->get
592a0 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 Name()])).{.$package->setSourceR
592c0 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 eference($references[$package->g
592e0 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 etName()]);.}.}.}..if.($this->ve
59300 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 28 73 74 72 69 6e rbose).{.$this->io->write((strin
59320 67 29 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c g).$operation);.}..$this->instal
59340 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 65 78 65 63 75 74 65 28 24 6c 6f 63 61 6c 52 65 70 lationManager->execute($localRep
59360 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f o,.$operation);..$event.=.'Compo
59380 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 50 41 ser\Script\ScriptEvents::POST_PA
593a0 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f 75 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 CKAGE_'.strtoupper($operation->g
593c0 65 74 4a 6f 62 54 79 70 65 28 29 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 etJobType());.if.(defined($event
593e0 29 20 26 26 20 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d ).&&.$this->runScripts).{.$this-
59400 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 >eventDispatcher->dispatchPackag
59420 65 45 76 65 6e 74 28 63 6f 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 6f 70 65 72 61 74 eEvent(constant($event),.$operat
59440 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 ion);.}..if.(!$this->dryRun).{.$
59460 6c 6f 63 61 6c 52 65 70 6f 2d 3e 77 72 69 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 localRepo->write();.}.}..return.
59480 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 50 true;.}..private.function.aliasP
594a0 61 63 6b 61 67 65 73 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 24 70 6c 61 74 ackages(PlatformRepository.$plat
594c0 66 6f 72 6d 52 65 70 6f 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 formRepo).{.if.(!$this->update.&
594e0 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 &.$this->locker->isLocked()).{.$
59500 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 41 6c 69 61 aliases.=.$this->locker->getAlia
59520 73 65 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 ses();.}.else.{.$aliases.=.$this
59540 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 ->package->getAliases();.}..fore
59560 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 63 6b ach.($aliases.as.$alias).{.$pack
59580 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 ages.=.array_merge(.$platformRep
595a0 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 o->findPackages($alias['package'
595c0 5d 2c 20 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 29 2c 0a 24 74 68 69 73 2d 3e 72 65 ],.$alias['version']),.$this->re
595e0 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 61 positoryManager->findPackages($a
59600 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e lias['package'],.$alias['version
59620 27 5d 29 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 ']).);.foreach.($packages.as.$pa
59640 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 28 24 61 6c 69 ckage).{.$package->setAlias($ali
59660 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 24 70 61 63 6b 61 67 as['alias_normalized']);.$packag
59680 65 2d 3e 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 e->setPrettyAlias($alias['alias'
596a0 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 61 ]);.$package->getRepository()->a
596c0 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c ddPackage($aliasPackage.=.new.Al
596e0 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 iasPackage($package,.$alias['ali
59700 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d as_normalized'],.$alias['alias']
59720 29 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 ));.$aliasPackage->setRootPackag
59740 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 69 61 73 eAlias(true);.}.}..return.$alias
59760 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 55 70 64 61 74 65 es;.}..private.function.isUpdate
59780 61 62 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a able(PackageInterface.$package).
597a0 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b {.if.(!$this->updateWhitelist).{
597c0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 69 73 55 70 .throw.new.\LogicException('isUp
597e0 64 61 74 65 61 62 6c 65 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 77 dateable.should.only.be.called.w
59800 68 65 6e 20 61 20 77 68 69 74 65 6c 69 73 74 20 69 73 20 70 72 65 73 65 6e 74 27 29 3b 0a 7d 0a hen.a.whitelist.is.present');.}.
59820 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 .return.isset($this->updateWhite
59840 6c 69 73 74 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 0a 0a list[$package->getName()]);.}...
59860 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 74 ...........private.function.whit
59880 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 6c 6f 63 61 6c 52 65 elistUpdateDependencies($localRe
598a0 70 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 52 65 71 75 69 72 65 po,.$devMode,.array.$rootRequire
598c0 73 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 0a 7b 0a 69 66 20 s,.array.$rootDevRequires).{.if.
598e0 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 72 65 74 75 (!$this->updateWhitelist).{.retu
59900 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 6f 6f 74 52 65 71 75 rn;.}..if.($devMode).{.$rootRequ
59920 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 ires.=.array_merge($rootRequires
59940 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 3b 0a 7d 0a 0a 24 73 6b 69 70 50 61 63 ,.$rootDevRequires);.}..$skipPac
59960 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 6f 74 52 kages.=.array();.foreach.($rootR
59980 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 73 6b 69 70 50 61 63 6b equires.as.$require).{.$skipPack
599a0 61 67 65 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 ages[$require->getTarget()].=.tr
599c0 75 65 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 3b 0a 24 70 6f 6f 6c 2d 3e ue;.}..$pool.=.new.Pool;.$pool->
599e0 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 0a 24 73 65 65 addRepository($localRepo);..$see
59a00 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 75 70 n.=.array();..foreach.($this->up
59a20 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 3e dateWhitelist.as.$packageName.=>
59a40 20 24 76 6f 69 64 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 .$void).{.$packageQueue.=.new.\S
59a60 70 6c 51 75 65 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 plQueue;..foreach.($pool->whatPr
59a80 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 61 73 20 24 64 65 70 50 61 63 6b ovides($packageName).as.$depPack
59aa0 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 64 age).{.$packageQueue->enqueue($d
59ac0 65 70 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 24 70 61 63 6b 61 67 65 51 epPackage);.}..while.(!$packageQ
59ae0 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 ueue->isEmpty()).{.$package.=.$p
59b00 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 ackageQueue->dequeue();.if.(isse
59b20 74 28 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 63 t($seen[$package->getId()])).{.c
59b40 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 ontinue;.}..$seen[$package->getI
59b60 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c d()].=.true;.$this->updateWhitel
59b80 69 73 74 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b ist[$package->getName()].=.true;
59ba0 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 ..$requires.=.$package->getRequi
59bc0 72 65 73 28 29 3b 0a 69 66 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 65 71 75 69 72 65 73 res();.if.($devMode).{.$requires
59be0 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 24 70 61 63 6b 61 .=.array_merge($requires,.$packa
59c00 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 ge->getDevRequires());.}..foreac
59c20 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 71 h.($requires.as.$require).{.$req
59c40 75 69 72 65 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 uirePackages.=.$pool->whatProvid
59c60 65 73 28 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 3b 0a 0a 66 6f 72 65 es($require->getTarget());..fore
59c80 61 63 68 20 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 72 65 71 75 69 72 ach.($requirePackages.as.$requir
59ca0 65 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 6b 69 70 50 61 63 6b 61 ePackage).{.if.(isset($skipPacka
59cc0 67 65 73 5b 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 ges[$requirePackage->getName()])
59ce0 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 ).{.continue;.}.$packageQueue->e
59d00 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d nqueue($requirePackage);.}.}.}.}
59d20 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 .}...........public.static.funct
59d40 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 ion.create(IOInterface.$io,.Comp
59d60 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 oser.$composer,.EventDispatcher.
59d80 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 41 75 74 6f 6c 6f 61 $eventDispatcher.=.null,.Autoloa
59da0 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 dGenerator.$autoloadGenerator.=.
59dc0 6e 75 6c 6c 29 0a 7b 0a 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e null).{.$eventDispatcher.=.$even
59de0 74 44 69 73 70 61 74 63 68 65 72 20 3f 3a 20 6e 65 77 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 tDispatcher.?:.new.EventDispatch
59e00 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 47 65 6e er($composer,.$io);.$autoloadGen
59e20 65 72 61 74 6f 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3f 3a 20 6e erator.=.$autoloadGenerator.?:.n
59e40 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 ew.AutoloadGenerator;..return.ne
59e60 77 20 73 74 61 74 69 63 28 0a 24 69 6f 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e w.static(.$io,.$composer->getCon
59e80 66 69 67 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 0a fig(),.$composer->getPackage(),.
59ea0 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2c $composer->getDownloadManager(),
59ec0 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 .$composer->getRepositoryManager
59ee0 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 72 28 29 2c 0a 24 63 6f 6d (),.$composer->getLocker(),.$com
59f00 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c poser->getInstallationManager(),
59f20 0a 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 0a 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 .$eventDispatcher,.$autoloadGene
59f40 72 61 74 6f 72 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 rator.);.}..public.function.setA
59f60 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 dditionalInstalledRepository(Rep
59f80 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 ositoryInterface.$additionalInst
59fa0 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 69 74 69 alledRepository).{.$this->additi
59fc0 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 61 64 64 69 74 onalInstalledRepository.=.$addit
59fe0 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 72 65 74 75 72 ionalInstalledRepository;..retur
5a000 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n.$this;.}........public.functio
5a020 6e 20 73 65 74 44 72 79 52 75 6e 28 24 64 72 79 52 75 6e 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 n.setDryRun($dryRun.=.true).{.$t
5a040 68 69 73 2d 3e 64 72 79 52 75 6e 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 72 79 52 75 6e 3b his->dryRun.=.(boolean).$dryRun;
5a060 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ..return.$this;.}........public.
5a080 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 function.setPreferSource($prefer
5a0a0 53 6f 75 72 63 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f Source.=.true).{.$this->preferSo
5a0c0 75 72 63 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a urce.=.(boolean).$preferSource;.
5a0e0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .return.$this;.}........public.f
5a100 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 64 61 74 65 28 24 75 70 64 61 74 65 20 3d 20 74 72 75 65 unction.setUpdate($update.=.true
5a120 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 75 ).{.$this->update.=.(boolean).$u
5a140 70 64 61 74 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 pdate;..return.$this;.}........p
5a160 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 4d 6f 64 65 28 24 64 65 76 4d 6f ublic.function.setDevMode($devMo
5a180 64 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 28 62 de.=.true).{.$this->devMode.=.(b
5a1a0 6f 6f 6c 65 61 6e 29 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b oolean).$devMode;..return.$this;
5a1c0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 75 6e .}........public.function.setRun
5a1e0 53 63 72 69 70 74 73 28 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 Scripts($runScripts.=.true).{.$t
5a200 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 72 75 6e his->runScripts.=.(boolean).$run
5a220 53 63 72 69 70 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a Scripts;..return.$this;.}.......
5a240 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 28 43 6f 6e 66 69 .public.function.setConfig(Confi
5a260 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f g.$config).{.$this->config.=.$co
5a280 6e 66 69 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 nfig;..return.$this;.}........pu
5a2a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 65 28 24 76 65 72 62 6f 73 blic.function.setVerbose($verbos
5a2c0 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 28 62 6f e.=.true).{.$this->verbose.=.(bo
5a2e0 6f 6c 65 61 6e 29 20 24 76 65 72 62 6f 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a olean).$verbose;..return.$this;.
5a300 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 64 }.........public.function.setUpd
5a320 61 74 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a ateWhitelist(array.$packages).{.
5a340 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 5f 66 $this->updateWhitelist.=.array_f
5a360 6c 69 70 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 74 6f 6c 6f 77 65 72 27 2c 20 24 70 61 63 lip(array_map('strtolower',.$pac
5a380 6b 61 67 65 73 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 kages));..return.$this;.}.}.<?ph
5a3a0 70 0a 0a 2f 2a 0a 20 2a 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f p../*..*.This.file.is.part.of.Co
5a3c0 6d 70 6f 73 65 72 2e 0a 20 2a 0a 20 2a 20 28 63 29 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 mposer...*..*.(c).Nils.Adermann.
5a3e0 3c 6e 61 64 65 72 6d 61 6e 40 6e 61 64 65 72 6d 61 6e 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f <naderman@naderman.de>..*.....Jo
5a400 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 rdi.Boggiano.<j.boggiano@seld.be
5a420 3e 0a 20 2a 0a 20 2a 20 46 6f 72 20 74 68 65 20 66 75 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 >..*..*.For.the.full.copyright.a
5a440 6e 64 20 6c 69 63 65 6e 73 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 nd.license.information,.please.v
5a460 69 65 77 20 74 68 65 20 4c 49 43 45 4e 53 45 0a 20 2a 20 66 69 6c 65 20 74 68 61 74 20 77 61 73 iew.the.LICENSE..*.file.that.was
5a480 20 64 69 73 74 72 69 62 75 74 65 64 20 77 69 74 68 20 74 68 69 73 20 73 6f 75 72 63 65 20 63 6f .distributed.with.this.source.co
5a4a0 64 65 2e 0a 20 2a 2f 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f de...*/..namespace.Composer\Auto
5a4c0 6c 6f 61 64 3b 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d load;../**..*.ClassLoader.implem
5a4e0 65 6e 74 73 20 61 20 50 53 52 2d 30 20 63 6c 61 73 73 20 6c 6f 61 64 65 72 0a 20 2a 0a 20 2a 20 ents.a.PSR-0.class.loader..*..*.
5a500 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 70 68 70 2d 66 69 67 2f 66 See.https://github.com/php-fig/f
5a520 69 67 2d 73 74 61 6e 64 61 72 64 73 2f 62 6c 6f 62 2f 6d 61 73 74 65 72 2f 61 63 63 65 70 74 65 ig-standards/blob/master/accepte
5a540 64 2f 50 53 52 2d 30 2e 6d 64 0a 20 2a 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 20 3d 20 6e d/PSR-0.md..*..*.....$loader.=.n
5a560 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 ew.\Composer\Autoload\ClassLoade
5a580 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 72 65 67 69 73 74 65 72 20 63 6c 61 73 73 r();..*..*.....//.register.class
5a5a0 65 73 20 77 69 74 68 20 6e 61 6d 65 73 70 61 63 65 73 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 es.with.namespaces..*.....$loade
5a5c0 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 27 2c 20 5f 5f 44 49 r->add('Symfony\Component',.__DI
5a5e0 52 5f 5f 2e 27 2f 63 6f 6d 70 6f 6e 65 6e 74 27 29 3b 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 R__.'/component');..*.....$loade
5a600 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e 79 27 2c 20 20 20 20 20 20 20 20 20 20 20 5f 5f 44 49 r->add('Symfony',...........__DI
5a620 52 5f 5f 2e 27 2f 66 72 61 6d 65 77 6f 72 6b 27 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 R__.'/framework');..*..*.....//.
5a640 61 63 74 69 76 61 74 65 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 0a 20 2a 20 20 20 20 20 24 activate.the.autoloader..*.....$
5a660 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f loader->register();..*..*.....//
5a680 20 74 6f 20 65 6e 61 62 6c 65 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 .to.enable.searching.the.include
5a6a0 20 70 61 74 68 20 28 65 67 2e 20 66 6f 72 20 50 45 41 52 20 70 61 63 6b 61 67 65 73 29 0a 20 2a .path.(eg..for.PEAR.packages)..*
5a6c0 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 .....$loader->setUseIncludePath(
5a6e0 74 72 75 65 29 3b 0a 20 2a 0a 20 2a 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 69 66 true);..*..*.In.this.example,.if
5a700 20 79 6f 75 20 74 72 79 20 74 6f 20 75 73 65 20 61 20 63 6c 61 73 73 20 69 6e 20 74 68 65 20 53 .you.try.to.use.a.class.in.the.S
5a720 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 0a 20 2a 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 ymfony\Component..*.namespace.or
5a740 20 6f 6e 65 20 6f 66 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 28 53 79 6d 66 6f 6e 79 5c 43 6f .one.of.its.children.(Symfony\Co
5a760 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 29 2c 0a 20 mponent\Console.for.instance),..
5a780 2a 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 66 69 72 73 74 20 6c 6f 6f 6b *.the.autoloader.will.first.look
5a7a0 20 66 6f 72 20 74 68 65 20 63 6c 61 73 73 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6d 70 6f 6e 65 .for.the.class.under.the.compone
5a7c0 6e 74 2f 0a 20 2a 20 64 69 72 65 63 74 6f 72 79 2c 20 61 6e 64 20 69 74 20 77 69 6c 6c 20 74 68 nt/..*.directory,.and.it.will.th
5a7e0 65 6e 20 66 61 6c 6c 62 61 63 6b 20 74 6f 20 74 68 65 20 66 72 61 6d 65 77 6f 72 6b 2f 20 64 69 en.fallback.to.the.framework/.di
5a800 72 65 63 74 6f 72 79 20 69 66 20 6e 6f 74 0a 20 2a 20 66 6f 75 6e 64 20 62 65 66 6f 72 65 20 67 rectory.if.not..*.found.before.g
5a820 69 76 69 6e 67 20 75 70 2e 0a 20 2a 0a 20 2a 20 54 68 69 73 20 63 6c 61 73 73 20 69 73 20 6c 6f iving.up...*..*.This.class.is.lo
5a840 6f 73 65 6c 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 20 55 6e 69 76 65 osely.based.on.the.Symfony.Unive
5a860 72 73 61 6c 43 6c 61 73 73 4c 6f 61 64 65 72 2e 0a 20 2a 0a 20 2a 20 40 61 75 74 68 6f 72 20 46 rsalClassLoader...*..*.@author.F
5a880 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 72 20 3c 66 61 62 69 65 6e 40 73 79 6d 66 6f 6e 79 2e abien.Potencier.<fabien@symfony.
5a8a0 63 6f 6d 3e 0a 20 2a 20 40 61 75 74 68 6f 72 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c com>..*.@author.Jordi.Boggiano.<
5a8c0 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 2f 0a 63 6c 61 73 73 20 43 6c j.boggiano@seld.be>..*/.class.Cl
5a8e0 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 65 assLoader.{.....private.$prefixe
5a900 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 s.=.array();.....private.$fallba
5a920 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 75 ckDirs.=.array();.....private.$u
5a940 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 70 72 69 76 61 seIncludePath.=.false;.....priva
5a960 74 65 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 70 75 62 te.$classMap.=.array();......pub
5a980 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 20 20 20 20 7b lic.function.getPrefixes().....{
5a9a0 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 3b .........return.$this->prefixes;
5a9c0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 .....}......public.function.getF
5a9e0 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 allbackDirs().....{.........retu
5aa00 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 3b 0a 20 20 20 20 7d 0a 0a 20 rn.$this->fallbackDirs;.....}...
5aa20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 ...public.function.getClassMap()
5aa40 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 .....{.........return.$this->cla
5aa60 73 73 4d 61 70 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 70 61 ssMap;.....}....../**......*.@pa
5aa80 72 61 6d 20 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 20 43 6c 61 73 73 20 74 6f 20 66 69 6c ram.array.$classMap.Class.to.fil
5aaa0 65 6e 61 6d 65 20 6d 61 70 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e ename.map......*/.....public.fun
5aac0 63 74 69 6f 6e 20 61 64 64 43 6c 61 73 73 4d 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 ction.addClassMap(array.$classMa
5aae0 70 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 p).....{.........if.($this->clas
5ab00 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 sMap).{.............$this->class
5ab20 4d 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 Map.=.array_merge($this->classMa
5ab40 70 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a p,.$classMap);.........}.else.{.
5ab60 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 ............$this->classMap.=.$c
5ab80 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a lassMap;.........}.....}....../*
5aba0 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 63 6c 61 73 *......*.Registers.a.set.of.clas
5abc0 73 65 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 ses......*......*.@param.string.
5abe0 20 20 20 20 20 20 24 70 72 65 66 69 78 20 54 68 65 20 63 6c 61 73 73 65 73 20 70 72 65 66 69 78 ......$prefix.The.classes.prefix
5ac00 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 ......*.@param.array|string.$pat
5ac20 68 73 20 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e 28 73 29 20 6f 66 20 74 68 65 20 63 6c 61 73 73 hs..The.location(s).of.the.class
5ac40 65 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 es......*/.....public.function.a
5ac60 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 dd($prefix,.$paths).....{.......
5ac80 20 20 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f ..if.(!$prefix).{.............fo
5aca0 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 reach.((array).$paths.as.$path).
5acc0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 {.................$this->fallbac
5ace0 6b 44 69 72 73 5b 5d 20 3d 20 24 70 61 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a kDirs[].=.$path;.............}..
5ad00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 ............return;.........}...
5ad20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b ......if.(isset($this->prefixes[
5ad40 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e $prefix])).{.............$this->
5ad60 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 prefixes[$prefix].=.array_merge(
5ad80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 .................$this->prefixes
5ada0 5b 24 70 72 65 66 69 78 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 [$prefix],.................(arra
5adc0 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 y).$paths.............);........
5ade0 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 .}.else.{.............$this->pre
5ae00 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b fixes[$prefix].=.(array).$paths;
5ae20 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a .........}.....}....../**......*
5ae40 20 54 75 72 6e 73 20 6f 6e 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 .Turns.on.searching.the.include.
5ae60 70 61 74 68 20 66 6f 72 20 63 6c 61 73 73 20 66 69 6c 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 path.for.class.files.......*....
5ae80 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 0a ..*.@param.bool.$useIncludePath.
5aea0 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 .....*/.....public.function.setU
5aec0 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a 20 seIncludePath($useIncludePath)..
5aee0 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 ...{.........$this->useIncludePa
5af00 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 th.=.$useIncludePath;.....}.....
5af20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 63 68 65 63 6b ./**......*.Can.be.used.to.check
5af40 20 69 66 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 75 73 65 73 20 74 68 65 20 69 6e 63 6c .if.the.autoloader.uses.the.incl
5af60 75 64 65 20 70 61 74 68 20 74 6f 20 63 68 65 63 6b 0a 20 20 20 20 20 2a 20 66 6f 72 20 63 6c 61 ude.path.to.check......*.for.cla
5af80 73 73 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c sses.......*......*.@return.bool
5afa0 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ......*/.....public.function.get
5afc0 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 UseIncludePath().....{.........r
5afe0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 20 20 20 eturn.$this->useIncludePath;....
5b000 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 74 68 69 .}....../**......*.Registers.thi
5b020 73 20 69 6e 73 74 61 6e 63 65 20 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 s.instance.as.an.autoloader.....
5b040 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 70 72 65 70 65 6e 64 20 ..*......*.@param.bool.$prepend.
5b060 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e 64 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 Whether.to.prepend.the.autoloade
5b080 72 20 6f 72 20 6e 6f 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 r.or.not......*/.....public.func
5b0a0 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a tion.register($prepend.=.false).
5b0c0 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 ....{.........spl_autoload_regis
5b0e0 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 ter(array($this,.'loadClass'),.t
5b100 72 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 rue,.$prepend);.....}....../**..
5b120 20 20 20 20 2a 20 55 6e 72 65 67 69 73 74 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 6e 63 65 20 ....*.Unregisters.this.instance.
5b140 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 as.an.autoloader.......*/.....pu
5b160 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 29 0a 20 20 20 20 7b blic.function.unregister().....{
5b180 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 .........spl_autoload_unregister
5b1a0 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 20 20 20 (array($this,.'loadClass'));....
5b1c0 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 61 64 73 20 74 68 65 20 67 69 76 .}....../**......*.Loads.the.giv
5b1e0 65 6e 20 63 6c 61 73 73 20 6f 72 20 69 6e 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 en.class.or.interface.......*...
5b200 20 20 20 2a 20 40 70 61 72 61 6d 20 20 73 74 72 69 6e 67 20 20 20 20 24 63 6c 61 73 73 20 54 68 ...*.@param..string....$class.Th
5b220 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 20 40 72 65 74 75 e.name.of.the.class......*.@retu
5b240 72 6e 20 62 6f 6f 6c 7c 6e 75 6c 6c 20 54 72 75 65 2c 20 69 66 20 6c 6f 61 64 65 64 0a 20 20 20 rn.bool|null.True,.if.loaded....
5b260 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 ..*/.....public.function.loadCla
5b280 73 73 28 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 69 ss($class).....{.........if.($fi
5b2a0 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 20 7b 0a le.=.$this->findFile($class)).{.
5b2c0 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 0a 20 20 20 20 ............include.$file;......
5b2e0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 ........return.true;.........}..
5b300 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 69 6e 64 73 20 74 68 65 20 70 ...}....../**......*.Finds.the.p
5b320 61 74 68 20 74 6f 20 74 68 65 20 66 69 6c 65 20 77 68 65 72 65 20 74 68 65 20 63 6c 61 73 73 20 ath.to.the.file.where.the.class.
5b340 69 73 20 64 65 66 69 6e 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d is.defined.......*......*.@param
5b360 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 .string.$class.The.name.of.the.c
5b380 6c 61 73 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e lass......*......*.@return.strin
5b3a0 67 7c 6e 75 6c 6c 20 54 68 65 20 70 61 74 68 2c 20 69 66 20 66 6f 75 6e 64 0a 20 20 20 20 20 2a g|null.The.path,.if.found......*
5b3c0 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 /.....public.function.findFile($
5b3e0 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 class).....{.........if.(isset($
5b400 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 this->classMap[$class])).{......
5b420 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 .......return.$this->classMap[$c
5b440 6c 61 73 73 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 27 5c lass];.........}..........if.('\
5b460 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 \'.==.$class[0]).{.............$
5b480 63 6c 61 73 73 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 20 20 20 20 20 class.=.substr($class,.1);......
5b4a0 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 ...}..........if.(false.!==.$pos
5b4c0 20 3d 20 73 74 72 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 20 20 20 20 .=.strrpos($class,.'\\')).{.....
5b4e0 20 20 20 20 20 20 20 20 2f 2f 20 6e 61 6d 65 73 70 61 63 65 64 20 63 6c 61 73 73 20 6e 61 6d 65 ........//.namespaced.class.name
5b500 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 50 61 74 68 20 3d 20 73 74 72 5f 72 65 .............$classPath.=.str_re
5b520 70 6c 61 63 65 28 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2c place('\\',.DIRECTORY_SEPARATOR,
5b540 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 30 2c 20 24 70 6f 73 29 29 20 2e 20 44 49 52 45 .substr($class,.0,.$pos))...DIRE
5b560 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6c CTORY_SEPARATOR;.............$cl
5b580 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 24 70 6f 73 20 2b 20 assName.=.substr($class,.$pos.+.
5b5a0 31 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 1);.........}.else.{............
5b5c0 20 2f 2f 20 50 45 41 52 2d 6c 69 6b 65 20 63 6c 61 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 .//.PEAR-like.class.name........
5b5e0 20 20 20 20 20 24 63 6c 61 73 73 50 61 74 68 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 .....$classPath.=.null;.........
5b600 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 ....$className.=.$class;........
5b620 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 50 61 74 68 20 2e 3d 20 73 74 72 5f 72 65 .}..........$classPath..=.str_re
5b640 70 6c 61 63 65 28 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2c 20 place('_',.DIRECTORY_SEPARATOR,.
5b660 24 63 6c 61 73 73 4e 61 6d 65 29 20 2e 20 27 2e 70 68 70 27 3b 0a 0a 20 20 20 20 20 20 20 20 66 $className)...'.php';..........f
5b680 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 20 61 73 20 24 70 72 65 66 oreach.($this->prefixes.as.$pref
5b6a0 69 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 ix.=>.$dirs).{.............if.(0
5b6c0 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a .===.strpos($class,.$prefix)).{.
5b6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 ................foreach.($dirs.a
5b700 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 s.$dir).{.....................if
5b720 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 .(file_exists($dir...DIRECTORY_S
5b740 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 EPARATOR...$classPath)).{.......
5b760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 64 69 72 20 2e 20 ..................return.$dir...
5b780 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 DIRECTORY_SEPARATOR...$classPath
5b7a0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ;.....................}.........
5b7c0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ........}.............}.........
5b7e0 7d 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 }..........foreach.($this->fallb
5b800 61 63 6b 44 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 ackDirs.as.$dir).{.............i
5b820 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f f.(file_exists($dir...DIRECTORY_
5b840 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 20 20 20 20 20 SEPARATOR...$classPath)).{......
5b860 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f ...........return.$dir...DIRECTO
5b880 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 20 20 20 20 20 RY_SEPARATOR...$classPath;......
5b8a0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 .......}.........}..........if.(
5b8c0 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 3d $this->useIncludePath.&&.$file.=
5b8e0 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 24 63 6c .stream_resolve_include_path($cl
5b900 61 73 73 50 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 assPath)).{.............return.$
5b920 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 5b 0a 20 20 20 20 22 41 file;.........}.....}.}.[....."A
5b940 46 4c 2d 31 2e 31 22 2c 20 22 41 46 4c 2d 31 2e 32 22 2c 20 22 41 46 4c 2d 32 2e 30 22 2c 20 22 FL-1.1",."AFL-1.2",."AFL-2.0",."
5b960 41 46 4c 2d 32 2e 31 22 2c 20 22 41 46 4c 2d 33 2e 30 22 2c 20 22 41 50 4c 2d 31 2e 30 22 2c 0a AFL-2.1",."AFL-3.0",."APL-1.0",.
5b980 20 20 20 20 22 41 4e 54 4c 52 2d 50 44 22 2c 20 22 41 70 61 63 68 65 2d 31 2e 30 22 2c 20 22 41 ...."ANTLR-PD",."Apache-1.0",."A
5b9a0 70 61 63 68 65 2d 31 2e 31 22 2c 20 22 41 70 61 63 68 65 2d 32 2e 30 22 2c 20 22 41 50 53 4c 2d pache-1.1",."Apache-2.0",."APSL-
5b9c0 31 2e 30 22 2c 0a 20 20 20 20 22 41 50 53 4c 2d 31 2e 31 22 2c 20 22 41 50 53 4c 2d 31 2e 32 22 1.0",....."APSL-1.1",."APSL-1.2"
5b9e0 2c 20 22 41 50 53 4c 2d 32 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 22 2c 20 22 41 ,."APSL-2.0",."Artistic-1.0",."A
5ba00 72 74 69 73 74 69 63 2d 32 2e 30 22 2c 20 22 41 41 4c 22 2c 0a 20 20 20 20 22 42 53 4c 2d 31 2e rtistic-2.0",."AAL",....."BSL-1.
5ba20 30 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 0",."BSD-2-Clause",."BSD-2-Claus
5ba40 65 2d 4e 65 74 42 53 44 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 46 72 65 65 42 53 44 e-NetBSD",."BSD-2-Clause-FreeBSD
5ba60 22 2c 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 34 2d 43 6c ",....."BSD-3-Clause",."BSD-4-Cl
5ba80 61 75 73 65 22 2c 20 22 42 53 44 2d 34 2d 43 6c 61 75 73 65 2d 55 43 22 2c 20 22 43 45 43 49 4c ause",."BSD-4-Clause-UC",."CECIL
5baa0 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 43 45 43 49 4c 4c 2d 31 2e 31 22 2c 20 22 43 45 43 49 4c L-1.0",....."CECILL-1.1",."CECIL
5bac0 4c 2d 32 2e 30 22 2c 20 22 43 45 43 49 4c 4c 2d 42 22 2c 20 22 43 45 43 49 4c 4c 2d 43 22 2c 20 L-2.0",."CECILL-B",."CECILL-C",.
5bae0 22 43 6c 41 72 74 69 73 74 69 63 22 2c 0a 20 20 20 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 2d 47 "ClArtistic",....."CNRI-Python-G
5bb00 50 4c 2d 43 6f 6d 70 61 74 69 62 6c 65 22 2c 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 22 2c 20 22 PL-Compatible",."CNRI-Python",."
5bb20 43 44 44 4c 2d 31 2e 30 22 2c 20 22 43 44 44 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 43 50 41 4c CDDL-1.0",."CDDL-1.1",....."CPAL
5bb40 2d 31 2e 30 22 2c 20 22 43 50 4c 2d 31 2e 30 22 2c 20 22 43 41 54 4f 53 4c 2d 31 2e 31 22 2c 20 -1.0",."CPL-1.0",."CATOSL-1.1",.
5bb60 22 43 43 2d 42 59 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 "CC-BY-1.0",."CC-BY-2.0",."CC-BY
5bb80 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e -2.5",....."CC-BY-3.0",."CC-BY-N
5bba0 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e D-1.0",."CC-BY-ND-2.0",."CC-BY-N
5bbc0 44 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d D-2.5",."CC-BY-ND-3.0",....."CC-
5bbe0 42 59 2d 4e 43 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 30 22 2c 20 22 43 43 2d BY-NC-1.0",."CC-BY-NC-2.0",."CC-
5bc00 42 59 2d 4e 43 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 33 2e 30 22 2c 0a 20 20 20 20 BY-NC-2.5",."CC-BY-NC-3.0",.....
5bc20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d "CC-BY-NC-ND-1.0",."CC-BY-NC-ND-
5bc40 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 2.0",."CC-BY-NC-ND-2.5",."CC-BY-
5bc60 4e 43 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 31 2e 30 NC-ND-3.0",....."CC-BY-NC-SA-1.0
5bc80 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d ",."CC-BY-NC-SA-2.0",."CC-BY-NC-
5bca0 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 33 2e 30 22 2c 0a 20 20 20 20 SA-2.5",."CC-BY-NC-SA-3.0",.....
5bcc0 22 43 43 2d 42 59 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 30 22 2c 20 "CC-BY-SA-1.0",."CC-BY-SA-2.0",.
5bce0 22 43 43 2d 42 59 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 33 2e 30 22 2c 20 "CC-BY-SA-2.5",."CC-BY-SA-3.0",.
5bd00 22 43 43 30 2d 31 2e 30 22 2c 0a 20 20 20 20 22 43 55 41 2d 4f 50 4c 2d 31 2e 30 22 2c 20 22 45 "CC0-1.0",....."CUA-OPL-1.0",."E
5bd20 50 4c 2d 31 2e 30 22 2c 20 22 65 43 6f 73 2d 32 2e 30 22 2c 20 22 45 43 4c 2d 31 2e 30 22 2c 20 PL-1.0",."eCos-2.0",."ECL-1.0",.
5bd40 22 45 43 4c 2d 32 2e 30 22 2c 20 22 45 46 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 45 46 4c 2d 32 "ECL-2.0",."EFL-1.0",....."EFL-2
5bd60 2e 30 22 2c 20 22 45 6e 74 65 73 73 61 22 2c 20 22 45 72 6c 50 4c 2d 31 2e 31 22 2c 20 22 45 55 .0",."Entessa",."ErlPL-1.1",."EU
5bd80 44 61 74 61 67 72 69 64 22 2c 20 22 45 55 50 4c 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d 31 2e 31 Datagrid",."EUPL-1.0",."EUPL-1.1
5bda0 22 2c 0a 20 20 20 20 22 46 61 69 72 22 2c 20 22 46 72 61 6d 65 77 6f 72 78 2d 31 2e 30 22 2c 20 ",....."Fair",."Frameworx-1.0",.
5bdc0 22 41 47 50 4c 2d 33 2e 30 22 2c 20 22 47 46 44 4c 2d 31 2e 31 22 2c 20 22 47 46 44 4c 2d 31 2e "AGPL-3.0",."GFDL-1.1",."GFDL-1.
5bde0 32 22 2c 20 22 47 46 44 4c 2d 31 2e 33 22 2c 0a 20 20 20 20 22 47 50 4c 2d 31 2e 30 22 2c 20 22 2",."GFDL-1.3",....."GPL-1.0",."
5be00 47 50 4c 2d 31 2e 30 2b 22 2c 20 22 47 50 4c 2d 32 2e 30 22 2c 20 22 47 50 4c 2d 32 2e 30 2b 22 GPL-1.0+",."GPL-2.0",."GPL-2.0+"
5be20 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 65 78 63 ,....."GPL-2.0-with-autoconf-exc
5be40 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 62 69 73 6f 6e 2d 65 78 63 eption",."GPL-2.0-with-bison-exc
5be60 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 63 6c 61 73 73 eption",....."GPL-2.0-with-class
5be80 70 61 74 68 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 66 path-exception",."GPL-2.0-with-f
5bea0 6f 6e 74 2d 65 78 63 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 ont-exception",....."GPL-2.0-wit
5bec0 68 2d 47 43 43 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 22 2c 20 22 47 50 h-GCC-exception",."GPL-3.0",."GP
5bee0 4c 2d 33 2e 30 2b 22 2c 0a 20 20 20 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 L-3.0+",....."GPL-3.0-with-autoc
5bf00 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 47 43 onf-exception",."GPL-3.0-with-GC
5bf20 43 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 4c 47 50 4c 2d 32 2e 31 22 2c 0a 20 20 20 20 22 4c C-exception",."LGPL-2.1",....."L
5bf40 47 50 4c 2d 32 2e 31 2b 22 2c 20 22 4c 47 50 4c 2d 33 2e 30 22 2c 20 22 4c 47 50 4c 2d 33 2e 30 GPL-2.1+",."LGPL-3.0",."LGPL-3.0
5bf60 2b 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 20 22 67 53 +",."LGPL-2.0",."LGPL-2.0+",."gS
5bf80 4f 41 50 2d 31 2e 33 62 22 2c 0a 20 20 20 20 22 48 50 4e 44 22 2c 20 22 49 50 4c 2d 31 2e 30 22 OAP-1.3b",....."HPND",."IPL-1.0"
5bfa0 2c 20 22 49 50 41 22 2c 20 22 49 53 43 22 2c 20 22 4c 50 50 4c 2d 31 2e 30 22 2c 20 22 4c 50 50 ,."IPA",."ISC",."LPPL-1.0",."LPP
5bfc0 4c 2d 31 2e 31 22 2c 20 22 4c 50 50 4c 2d 31 2e 32 22 2c 0a 20 20 20 20 22 4c 50 50 4c 2d 31 2e L-1.1",."LPPL-1.2",....."LPPL-1.
5bfe0 33 63 22 2c 20 22 4c 69 62 70 6e 67 22 2c 20 22 4c 50 4c 2d 31 2e 30 22 2c 20 22 4c 50 4c 2d 31 3c",."Libpng",."LPL-1.0",."LPL-1
5c000 2e 30 32 22 2c 20 22 4d 53 2d 50 4c 22 2c 20 22 4d 53 2d 52 4c 22 2c 20 22 4d 69 72 4f 53 22 2c .02",."MS-PL",."MS-RL",."MirOS",
5c020 0a 20 20 20 20 22 4d 49 54 22 2c 20 22 4d 6f 74 6f 73 6f 74 6f 22 2c 20 22 4d 50 4c 2d 31 2e 30 ....."MIT",."Motosoto",."MPL-1.0
5c040 22 2c 20 22 4d 50 4c 2d 31 2e 31 22 2c 20 22 4d 50 4c 2d 32 2e 30 22 2c 20 22 4d 75 6c 74 69 63 ",."MPL-1.1",."MPL-2.0",."Multic
5c060 73 22 2c 20 22 4e 41 53 41 2d 31 2e 33 22 2c 0a 20 20 20 20 22 4e 61 75 6d 65 6e 22 2c 20 22 4e s",."NASA-1.3",....."Naumen",."N
5c080 47 50 4c 22 2c 20 22 4e 6f 6b 69 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 20 22 4e 54 50 GPL",."Nokia",."NPOSL-3.0",."NTP
5c0a0 22 2c 20 22 4f 43 4c 43 2d 32 2e 30 22 2c 20 22 4f 44 62 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 ",."OCLC-2.0",."ODbL-1.0",....."
5c0c0 50 44 44 4c 2d 31 2e 30 22 2c 20 22 4f 47 54 53 4c 22 2c 20 22 4f 53 4c 2d 31 2e 30 22 2c 20 22 PDDL-1.0",."OGTSL",."OSL-1.0",."
5c0e0 4f 53 4c 2d 32 2e 30 22 2c 20 22 4f 53 4c 2d 32 2e 31 22 2c 20 22 4f 53 4c 2d 33 2e 30 22 2c 0a OSL-2.0",."OSL-2.1",."OSL-3.0",.
5c100 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 38 22 2c 20 22 4f 70 65 6e 53 53 4c 22 2c 20 22 50 48 50 ...."OLDAP-2.8",."OpenSSL",."PHP
5c120 2d 33 2e 30 22 2c 20 22 50 48 50 2d 33 2e 30 31 22 2c 20 22 50 6f 73 74 67 72 65 53 51 4c 22 2c -3.0",."PHP-3.01",."PostgreSQL",
5c140 20 22 50 79 74 68 6f 6e 2d 32 2e 30 22 2c 0a 20 20 20 20 22 51 50 4c 2d 31 2e 30 22 2c 20 22 52 ."Python-2.0",....."QPL-1.0",."R
5c160 50 53 4c 2d 31 2e 30 22 2c 20 22 52 50 4c 2d 31 2e 35 22 2c 20 22 52 48 65 43 6f 73 2d 31 2e 31 PSL-1.0",."RPL-1.5",."RHeCos-1.1
5c180 22 2c 20 22 52 53 43 50 4c 22 2c 20 22 52 75 62 79 22 2c 20 22 53 41 58 2d 50 44 22 2c 0a 20 20 ",."RSCPL",."Ruby",."SAX-PD",...
5c1a0 20 20 22 4f 46 4c 2d 31 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 31 22 2c 20 22 53 69 6d 50 4c 2d 32 .."OFL-1.0",."OFL-1.1",."SimPL-2
5c1c0 2e 30 22 2c 20 22 53 6c 65 65 70 79 63 61 74 22 2c 20 22 53 75 67 61 72 43 52 4d 2d 31 2e 31 2e .0",."Sleepycat",."SugarCRM-1.1.
5c1e0 33 22 2c 20 22 53 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 57 61 74 63 6f 6d 2d 31 2e 30 22 2c 3",."SPL-1.0",....."Watcom-1.0",
5c200 20 22 4e 43 53 41 22 2c 20 22 56 53 4c 2d 31 2e 30 22 2c 20 22 57 33 43 22 2c 20 22 57 58 77 69 ."NCSA",."VSL-1.0",."W3C",."WXwi
5c220 6e 64 6f 77 73 22 2c 20 22 58 6e 65 74 22 2c 20 22 58 46 72 65 65 38 36 2d 31 2e 31 22 2c 0a 20 ndows",."Xnet",."XFree86-1.1",..
5c240 20 20 20 22 59 50 4c 2d 31 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 20 22 5a 69 6d 62 72 61 ..."YPL-1.0",."YPL-1.1",."Zimbra
5c260 2d 31 2e 33 22 2c 20 22 5a 6c 69 62 22 2c 20 22 5a 50 4c 2d 31 2e 31 22 2c 20 22 5a 50 4c 2d 32 -1.3",."Zlib",."ZPL-1.1",."ZPL-2
5c280 2e 30 22 2c 20 22 5a 50 4c 2d 32 2e 31 22 0a 5d 7b 0a 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 50 .0",."ZPL-2.1".]{....."name":."P
5c2a0 61 63 6b 61 67 65 22 2c 0a 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 ackage",....."type":."object",..
5c2c0 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 ..."additionalProperties":.false
5c2e0 2c 0a 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e ,....."properties":.{........."n
5c300 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 ame":.{............."type":."str
5c320 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a ing",............."description":
5c340 20 22 50 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 27 76 65 6e 64 6f ."Package.name,.including.'vendo
5c360 72 2d 6e 61 6d 65 2f 27 20 70 72 65 66 69 78 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 r-name/'.prefix.",............."
5c380 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 required":.true.........},......
5c3a0 20 20 20 22 74 79 70 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ..."type":.{............."descri
5c3c0 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 74 79 70 65 2c 20 65 69 74 68 65 72 20 27 6c ption":."Package.type,.either.'l
5c3e0 69 62 72 61 72 79 27 20 66 6f 72 20 63 6f 6d 6d 6f 6e 20 70 61 63 6b 61 67 65 73 2c 20 27 63 6f ibrary'.for.common.packages,.'co
5c400 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 66 6f 72 20 63 75 73 74 6f 6d 20 69 6e 73 mposer-installer'.for.custom.ins
5c420 74 61 6c 6c 65 72 73 2c 20 27 6d 65 74 61 70 61 63 6b 61 67 65 27 20 66 6f 72 20 65 6d 70 74 79 tallers,.'metapackage'.for.empty
5c440 20 70 61 63 6b 61 67 65 73 2c 20 6f 72 20 61 20 63 75 73 74 6f 6d 20 74 79 70 65 20 64 65 66 69 .packages,.or.a.custom.type.defi
5c460 6e 65 64 20 62 79 20 77 68 61 74 65 76 65 72 20 70 72 6f 6a 65 63 74 20 74 68 69 73 20 70 61 63 ned.by.whatever.project.this.pac
5c480 6b 61 67 65 20 61 70 70 6c 69 65 73 20 74 6f 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 kage.applies.to.",............."
5c4a0 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 type":."string".........},......
5c4c0 20 20 20 22 74 61 72 67 65 74 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 ..."target-dir":.{............."
5c4e0 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 6f 72 63 65 73 20 74 68 65 20 70 61 63 6b 61 67 description":."Forces.the.packag
5c500 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e 74 6f 20 74 68 65 20 67 69 76 65 6e e.to.be.installed.into.the.given
5c520 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 .subdirectory.path..This.is.used
5c540 20 66 6f 72 20 61 75 74 6f 6c 6f 61 64 69 6e 67 20 50 53 52 2d 30 20 70 61 63 6b 61 67 65 73 20 .for.autoloading.PSR-0.packages.
5c560 74 68 61 74 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 69 72 20 66 75 6c 6c 20 70 that.do.not.contain.their.full.p
5c580 61 74 68 2e 20 55 73 65 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 65 73 20 66 6f 72 20 63 72 6f ath..Use.forward.slashes.for.cro
5c5a0 73 73 2d 70 6c 61 74 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 22 2c 0a 20 20 20 ss-platform.compatibility.",....
5c5c0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 ........."type":."string".......
5c5e0 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 7b 0a 20 20 ..},........."description":.{...
5c600 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 .........."type":."string",.....
5c620 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 68 6f 72 74 20 70 61 ........"description":."Short.pa
5c640 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ckage.description.",............
5c660 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."required":.true.........},....
5c680 20 20 20 20 20 22 6b 65 79 77 6f 72 64 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 ....."keywords":.{............."
5c6a0 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 type":."array",............."ite
5c6c0 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 ms":.{................."type":."
5c6e0 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 string",................."descri
5c700 70 74 69 6f 6e 22 3a 20 22 41 20 74 61 67 2f 6b 65 79 77 6f 72 64 20 74 68 61 74 20 74 68 69 73 ption":."A.tag/keyword.that.this
5c720 20 70 61 63 6b 61 67 65 20 72 65 6c 61 74 65 73 20 74 6f 2e 22 0a 20 20 20 20 20 20 20 20 20 20 .package.relates.to."...........
5c740 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 ..}.........},........."homepage
5c760 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ":.{............."type":."string
5c780 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 48 ",............."description":."H
5c7a0 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 2c 0a 20 omepage.URL.for.the.project.",..
5c7c0 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 ..........."format":."uri"......
5c7e0 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 7b 0a 20 20 20 20 20 ...},........."version":.{......
5c800 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 ......."type":."string",........
5c820 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 76 65 72 ....."description":."Package.ver
5c840 73 69 6f 6e 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 sion,.see.http://getcomposer.org
5c860 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 23 76 65 72 73 69 6f 6e 20 66 6f 72 20 6d 6f /doc/04-schema.md#version.for.mo
5c880 72 65 20 69 6e 66 6f 20 6f 6e 20 76 61 6c 69 64 20 73 63 68 65 6d 65 73 2e 22 0a 20 20 20 20 20 re.info.on.valid.schemes."......
5c8a0 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 69 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ...},........."time":.{.........
5c8c0 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ...."type":."string",...........
5c8e0 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 72 65 6c 65 61 73 .."description":."Package.releas
5c900 65 20 64 61 74 65 2c 20 69 6e 20 27 59 59 59 59 2d 4d 4d 2d 44 44 27 20 6f 72 20 27 59 59 59 59 e.date,.in.'YYYY-MM-DD'.or.'YYYY
5c920 2d 4d 4d 2d 44 44 20 48 48 3a 4d 4d 3a 53 53 27 20 66 6f 72 6d 61 74 2e 22 0a 20 20 20 20 20 20 -MM-DD.HH:MM:SS'.format.".......
5c940 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6c 69 63 65 6e 73 65 22 3a 20 7b 0a 20 20 20 20 20 20 ..},........."license":.{.......
5c960 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 61 72 72 61 79 22 ......"type":.["string",."array"
5c980 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c ],............."description":."L
5c9a0 69 63 65 6e 73 65 20 6e 61 6d 65 2e 20 4f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 6c 69 63 65 icense.name..Or.an.array.of.lice
5c9c0 6e 73 65 20 6e 61 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 nse.names.".........},........."
5c9e0 61 75 74 68 6f 72 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 authors":.{............."type":.
5ca00 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f "array",............."descriptio
5ca20 6e 22 3a 20 22 4c 69 73 74 20 6f 66 20 61 75 74 68 6f 72 73 20 74 68 61 74 20 63 6f 6e 74 72 69 n":."List.of.authors.that.contri
5ca40 62 75 74 65 64 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 2e 20 54 68 69 73 20 69 73 20 74 79 buted.to.the.package..This.is.ty
5ca60 70 69 63 61 6c 6c 79 20 74 68 65 20 6d 61 69 6e 20 6d 61 69 6e 74 61 69 6e 65 72 73 2c 20 6e 6f pically.the.main.maintainers,.no
5ca80 74 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 t.the.full.list.",............."
5caa0 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 items":.{................."type"
5cac0 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 :."object",................."add
5cae0 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 itionalProperties":.false,......
5cb00 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 ..........."properties":.{......
5cb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 ..............."name":.{........
5cb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
5cb60 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ",........................."desc
5cb80 72 69 70 74 69 6f 6e 22 3a 20 22 46 75 6c 6c 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 61 75 74 68 ription":."Full.name.of.the.auth
5cba0 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 or.",........................."r
5cbc0 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 equired":.true..................
5cbe0 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c ...},....................."email
5cc00 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ":.{........................."ty
5cc20 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."string",..................
5cc40 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 ......."description":."Email.add
5cc60 72 65 73 73 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ress.of.the.author.",...........
5cc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a .............."format":."email".
5cca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 ....................},..........
5ccc0 20 20 20 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 ..........."homepage":.{........
5cce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
5cd00 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ",........................."desc
5cd20 72 69 70 74 69 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 ription":."Homepage.URL.for.the.
5cd40 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 author.",.......................
5cd60 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."format":."uri"...............
5cd80 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 6f ......},....................."ro
5cda0 6c 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 le":.{........................."
5cdc0 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 type":."string",................
5cde0 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 75 74 68 6f 72 27 ........."description":."Author'
5ce00 73 20 72 6f 6c 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 20 s.role.in.the.project.".........
5ce20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ............}.................}.
5ce40 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 ............}.........},........
5ce60 20 22 72 65 71 75 69 72 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 ."require":.{............."type"
5ce80 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 :."object",............."descrip
5cea0 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 tion":."This.is.a.hash.of.packag
5cec0 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 e.name.(keys).and.version.constr
5cee0 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 61 72 65 20 72 65 71 75 69 72 65 64 aints.(values).that.are.required
5cf00 20 74 6f 20 72 75 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 .to.run.this.package.",.........
5cf20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 ...."additionalProperties":.true
5cf40 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 70 6c 61 63 65 22 3a 20 7b .........},........."replace":.{
5cf60 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 ............."type":."object",..
5cf80 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 ..........."description":."This.
5cfa0 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 is.a.hash.of.package.name.(keys)
5cfc0 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 .and.version.constraints.(values
5cfe0 29 20 74 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 69 73 20 70 ).that.can.be.replaced.by.this.p
5d000 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 ackage.",............."additiona
5d020 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 lProperties":.true.........},...
5d040 20 20 20 20 20 20 22 63 6f 6e 66 6c 69 63 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......"conflict":.{.............
5d060 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 "type":."object",............."d
5d080 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 escription":."This.is.a.hash.of.
5d0a0 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 package.name.(keys).and.version.
5d0c0 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 6f 6e 66 6c 69 constraints.(values).that.confli
5d0e0 63 74 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 ct.with.this.package.",.........
5d100 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 ...."additionalProperties":.true
5d120 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 6f 76 69 64 65 22 3a 20 7b .........},........."provide":.{
5d140 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 ............."type":."object",..
5d160 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 ..........."description":."This.
5d180 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 is.a.hash.of.package.name.(keys)
5d1a0 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 .and.version.constraints.(values
5d1c0 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 69 6e 20 ).that.this.package.provides.in.
5d1e0 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 70 61 63 6b 61 67 65 27 73 20 6e 61 6d 65 2e addition.to.this.package's.name.
5d200 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 ",............."additionalProper
5d220 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 ties":.true.........},........."
5d240 72 65 71 75 69 72 65 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 require-dev":.{............."typ
5d260 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 e":."object",............."descr
5d280 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b iption":."This.is.a.hash.of.pack
5d2a0 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 age.name.(keys).and.version.cons
5d2c0 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 traints.(values).that.this.packa
5d2e0 67 65 20 72 65 71 75 69 72 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 69 74 20 28 74 ge.requires.for.developing.it.(t
5d300 65 73 74 69 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 20 73 75 63 68 29 2e 22 2c 0a 20 20 20 20 20 20 esting.tools.and.such).",.......
5d320 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 ......"additionalProperties":.tr
5d340 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 67 67 65 73 74 22 3a ue.........},........."suggest":
5d360 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c .{............."type":."object",
5d380 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 ............."description":."Thi
5d3a0 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 s.is.a.hash.of.package.name.(key
5d3c0 73 29 20 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 s).and.descriptions.(values).tha
5d3e0 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 73 20 77 6f 72 6b 20 77 65 6c t.this.package.suggests.work.wel
5d400 6c 20 77 69 74 68 20 69 74 20 28 74 68 69 73 20 77 69 6c 6c 20 62 65 20 73 75 67 67 65 73 74 65 l.with.it.(this.will.be.suggeste
5d420 64 20 74 6f 20 74 68 65 20 75 73 65 72 20 64 75 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 74 69 6f d.to.the.user.during.installatio
5d440 6e 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f n).",............."additionalPro
5d460 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 perties":.true.........},.......
5d480 20 20 22 63 6f 6e 66 69 67 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 .."config":.{............."type"
5d4a0 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 :.["object"],............."descr
5d4c0 69 70 74 69 6f 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 69 6f 6e 73 2e 22 2c 0a 20 20 iption":."Composer.options.",...
5d4e0 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 .........."properties":.{.......
5d500 20 20 20 20 20 20 20 20 20 20 22 76 65 6e 64 6f 72 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 .........."vendor-dir":.{.......
5d520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a .............."type":."string",.
5d540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e ...................."description
5d560 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 70 61 63 6b 61 ":."The.location.where.all.packa
5d580 67 65 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c ges.are.installed,.defaults.to.\
5d5a0 22 76 65 6e 64 6f 72 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 "vendor\".".................},..
5d5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 62 69 6e 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 ..............."bin-dir":.{.....
5d5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 ................"type":."string"
5d600 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ,....................."descripti
5d620 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 62 69 6e on":."The.location.where.all.bin
5d640 61 72 69 65 73 20 61 72 65 20 6c 69 6e 6b 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 aries.are.linked,.defaults.to.\"
5d660 76 65 6e 64 6f 72 2f 62 69 6e 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d vendor/bin\".".................}
5d680 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 .............}.........},.......
5d6a0 20 20 22 65 78 74 72 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a .."extra":.{............."type":
5d6c0 20 5b 22 6f 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 .["object",."array"],...........
5d6e0 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 72 62 69 74 72 61 72 79 20 65 78 74 72 .."description":."Arbitrary.extr
5d700 61 20 64 61 74 61 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 62 79 20 63 75 73 74 6f a.data.that.can.be.used.by.custo
5d720 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 70 61 63 6b 61 m.installers,.for.example,.packa
5d740 67 65 20 6f 66 20 74 79 70 65 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 20 6d 75 ge.of.type.composer-installer.mu
5d760 73 74 20 68 61 76 65 20 61 20 27 63 6c 61 73 73 27 20 6b 65 79 20 64 65 66 69 6e 69 6e 67 20 74 st.have.a.'class'.key.defining.t
5d780 68 65 20 69 6e 73 74 61 6c 6c 65 72 20 63 6c 61 73 73 20 6e 61 6d 65 2e 22 2c 0a 20 20 20 20 20 he.installer.class.name.",......
5d7a0 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 ......."additionalProperties":.t
5d7c0 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 rue.........},........."autoload
5d7e0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 ":.{............."type":."object
5d800 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 ",............."description":."D
5d820 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 68 6f 77 20 74 68 65 20 70 61 63 6b 61 67 65 20 63 61 escription.of.how.the.package.ca
5d840 6e 20 62 65 20 61 75 74 6f 6c 6f 61 64 65 64 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 n.be.autoloaded.",............."
5d860 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 properties":.{................."
5d880 70 73 72 2d 30 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 psr-0":.{....................."t
5d8a0 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype":."object",.................
5d8c0 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 ...."description":."This.is.a.ha
5d8e0 73 68 20 6f 66 20 6e 61 6d 65 73 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 68 65 20 sh.of.namespaces.(keys).and.the.
5d900 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e directories.they.can.be.found.in
5d920 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 79 73 20 6f 66 20 70 61 74 to.(values,.can.be.arrays.of.pat
5d940 68 73 29 20 62 79 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 hs).by.the.autoloader.",........
5d960 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 ............."additionalProperti
5d980 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 es":.true.................},....
5d9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6c 61 73 73 6d 61 70 22 3a 20 7b 0a 20 20 20 20 20 ............."classmap":.{......
5d9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a ..............."type":."array",.
5d9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e ...................."description
5da00 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 64 69 72 65 63 74 6f 72 ":."This.is.an.array.of.director
5da20 69 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 63 6c 61 73 73 65 73 20 74 6f 20 62 65 20 69 ies.that.contain.classes.to.be.i
5da40 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63 6c 61 73 73 2d 6d 61 70 20 67 65 6e 65 72 61 74 ncluded.in.the.class-map.generat
5da60 69 6f 6e 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c ion.process.".................},
5da80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 69 6c 65 73 22 3a 20 7b 0a 20 20 20 20 ................."files":.{.....
5daa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c ................"type":."array",
5dac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f ....................."descriptio
5dae0 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 66 69 6c 65 73 20 74 n":."This.is.an.array.of.files.t
5db00 68 61 74 20 61 72 65 20 61 6c 77 61 79 73 20 72 65 71 75 69 72 65 64 20 6f 6e 20 65 76 65 72 79 hat.are.always.required.on.every
5db20 20 72 65 71 75 65 73 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 .request.".................}....
5db40 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 .........}.........},........."r
5db60 65 70 6f 73 69 74 6f 72 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 epositories":.{............."typ
5db80 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 e":.["object",."array"],........
5dba0 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 61 64 ....."description":."A.set.of.ad
5dbc0 64 69 74 69 6f 6e 61 6c 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 68 65 72 65 20 70 61 63 6b ditional.repositories.where.pack
5dbe0 61 67 65 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ages.can.be.found.",............
5dc00 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 ."additionalProperties":.true...
5dc20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c ......},........."minimum-stabil
5dc40 69 74 79 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 ity":.{............."type":.["st
5dc60 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e ring"],............."description
5dc80 22 3a 20 22 54 68 65 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 74 68 65 20 70 61 ":."The.minimum.stability.the.pa
5dca0 63 6b 61 67 65 73 20 6d 75 73 74 20 68 61 76 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 2d 61 ckages.must.have.to.be.install-a
5dcc0 62 6c 65 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a 20 64 65 76 2c 20 61 ble..Possible.values.are:.dev,.a
5dce0 6c 70 68 61 2c 20 62 65 74 61 2c 20 52 43 2c 20 73 74 61 62 6c 65 2e 22 0a 20 20 20 20 20 20 20 lpha,.beta,.RC,.stable."........
5dd00 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 62 69 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 .},........."bin":.{............
5dd20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ."type":.["array"],.............
5dd40 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 66 69 6c 65 73 20 74 "description":."A.set.of.files.t
5dd60 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 62 69 6e 61 72 69 65 hat.should.be.treated.as.binarie
5dd80 73 20 61 6e 64 20 73 79 6d 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 62 69 6e 2d 64 69 72 20 28 66 72 s.and.symlinked.into.bin-dir.(fr
5dda0 6f 6d 20 63 6f 6e 66 69 67 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 om.config).",............."items
5ddc0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 ":.{................."type":."st
5dde0 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 ring".............}.........},..
5de00 20 20 20 20 20 20 20 22 69 6e 63 6c 75 64 65 2d 70 61 74 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 ......."include-path":.{........
5de20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 ....."type":.["array"],.........
5de40 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 ...."description":."DEPRECATED:.
5de60 41 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 77 68 69 63 68 20 73 68 6f 75 A.list.of.directories.which.shou
5de80 6c 64 20 67 65 74 20 61 64 64 65 64 20 74 6f 20 50 48 50 27 73 20 69 6e 63 6c 75 64 65 20 70 61 ld.get.added.to.PHP's.include.pa
5dea0 74 68 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 74 6f 20 73 75 70 70 th..This.is.only.present.to.supp
5dec0 6f 72 74 20 6c 65 67 61 63 79 20 70 72 6f 6a 65 63 74 73 2c 20 61 6e 64 20 61 6c 6c 20 6e 65 77 ort.legacy.projects,.and.all.new
5dee0 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 70 72 65 66 65 72 61 62 6c 79 20 75 73 65 20 61 75 74 6f .code.should.preferably.use.auto
5df00 6c 6f 61 64 69 6e 67 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 loading.",............."items":.
5df20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e {................."type":."strin
5df40 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 g".............}.........},.....
5df60 20 20 20 20 22 73 63 72 69 70 74 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ...."scripts":.{............."ty
5df80 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 pe":.["object"],............."de
5dfa0 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 63 72 69 70 74 73 20 6c 69 73 74 65 6e 65 72 73 20 74 scription":."Scripts.listeners.t
5dfc0 68 61 74 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 20 62 65 66 6f 72 65 2f 61 66 74 65 hat.will.be.executed.before/afte
5dfe0 72 20 73 6f 6d 65 20 65 76 65 6e 74 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 r.some.events.",............."pr
5e000 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 operties":.{................."pr
5e020 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-install-cmd":.{...............
5e040 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 ......"type":.["array",."string"
5e060 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ],....................."descript
5e080 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 69 6e 73 74 61 6c 6c ion":."Occurs.before.the.install
5e0a0 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f .command.is.executed,.contains.o
5e0c0 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c ne.or.more.Class::method.callabl
5e0e0 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 es.".................},.........
5e100 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 ........"post-install-cmd":.{...
5e120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 .................."type":.["arra
5e140 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y",."string"],..................
5e160 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 ..."description":."Occurs.after.
5e180 74 68 65 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c the.install.command.is.executed,
5e1a0 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 .contains.one.or.more.Class::met
5e1c0 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hod.callables.".................
5e1e0 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 75 70 64 61 74 65 2d 63 },................."pre-update-c
5e200 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 md":.{....................."type
5e220 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 ":.["array",."string"],.........
5e240 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 ............"description":."Occu
5e260 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 rs.before.the.update.command.is.
5e280 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 executed,.contains.one.or.more.C
5e2a0 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 lass::method.callables."........
5e2c0 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 .........},................."pos
5e2e0 74 2d 75 70 64 61 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-update-cmd":.{................
5e300 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d ....."type":.["array",."string"]
5e320 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ,....................."descripti
5e340 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 20 63 6f on":."Occurs.after.the.update.co
5e360 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 mmand.is.executed,.contains.one.
5e380 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e or.more.Class::method.callables.
5e3a0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ".................},............
5e3c0 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 ....."pre-package-install":.{...
5e3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 .................."type":.["arra
5e400 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y",."string"],..................
5e420 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 ..."description":."Occurs.before
5e440 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e .a.package.is.installed,.contain
5e460 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c s.one.or.more.Class::method.call
5e480 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 ables.".................},......
5e4a0 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c ..........."post-package-install
5e4c0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a ":.{....................."type":
5e4e0 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 .["array",."string"],...........
5e500 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 .........."description":."Occurs
5e520 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 .after.a.package.is.installed,.c
5e540 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f ontains.one.or.more.Class::metho
5e560 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c d.callables.".................},
5e580 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 ................."pre-package-up
5e5a0 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 date":.{....................."ty
5e5c0 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 pe":.["array",."string"],.......
5e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 .............."description":."Oc
5e600 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 65 64 curs.before.a.package.is.updated
5e620 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 ,.contains.one.or.more.Class::me
5e640 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 thod.callables."................
5e660 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 .},................."post-packag
5e680 65 2d 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-update":.{....................
5e6a0 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 ."type":.["array",."string"],...
5e6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a .................."description":
5e6e0 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 ."Occurs.after.a.package.is.upda
5e700 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a ted,.contains.one.or.more.Class:
5e720 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 :method.callables.".............
5e740 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b ....},................."pre-pack
5e760 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 age-uninstall":.{...............
5e780 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 ......"type":.["array",."string"
5e7a0 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ],....................."descript
5e7c0 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 68 ion":."Occurs.before.a.package.h
5e7e0 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e as.been.uninstalled,.contains.on
5e800 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 e.or.more.Class::method.callable
5e820 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 s.".................},..........
5e840 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a ......."post-package-uninstall":
5e860 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b .{....................."type":.[
5e880 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 "array",."string"],.............
5e8a0 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 ........"description":."Occurs.a
5e8c0 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 6c fter.a.package.has.been.uninstal
5e8e0 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a led,.contains.one.or.more.Class:
5e900 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 :method.callables.".............
5e920 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 ....}.............}.........},..
5e940 20 20 20 20 20 20 20 22 73 75 70 70 6f 72 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......."support":.{.............
5e960 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 "type":."object",............."p
5e980 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 roperties":.{................."e
5e9a0 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 mail":.{....................."ty
5e9c0 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."string",..................
5e9e0 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 ..."description":."Email.address
5ea00 20 66 6f 72 20 73 75 70 70 6f 72 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .for.support.",.................
5ea20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a 20 20 20 20 20 20 20 20 20 20 ...."format":."email"...........
5ea40 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 73 73 75 65 73 ......},................."issues
5ea60 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a ":.{....................."type":
5ea80 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ."string",....................."
5eaa0 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 49 73 73 75 65 20 description":."URL.to.the.Issue.
5eac0 54 72 61 63 6b 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 Tracker.",....................."
5eae0 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d format":."uri".................}
5eb00 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 75 6d 22 3a 20 7b 0a 20 20 20 ,................."forum":.{....
5eb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
5eb40 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ",....................."descript
5eb60 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 46 6f 72 75 6d 2e 22 2c 0a 20 20 20 20 20 ion":."URL.to.the.Forum.",......
5eb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 ..............."format":."uri"..
5eba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............},...............
5ebc0 20 20 22 77 69 6b 69 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."wiki":.{.....................
5ebe0 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "type":."string",...............
5ec00 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 ......"description":."URL.to.the
5ec20 20 57 69 6b 69 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f .Wiki.",....................."fo
5ec40 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a rmat":."uri".................},.
5ec60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 72 63 22 3a 20 7b 0a 20 20 20 20 20 20 20 ................"irc":.{........
5ec80 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 ............."type":."string",..
5eca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 ..................."description"
5ecc0 3a 20 22 49 52 43 20 63 68 61 6e 6e 65 6c 20 66 6f 72 20 73 75 70 70 6f 72 74 2c 20 61 73 20 69 :."IRC.channel.for.support,.as.i
5ece0 72 63 3a 2f 2f 73 65 72 76 65 72 2f 63 68 61 6e 6e 65 6c 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 rc://server/channel.",..........
5ed00 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 ..........."format":."uri"......
5ed20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 ...........},................."s
5ed40 6f 75 72 63 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 ource":.{....................."t
5ed60 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype":."string",.................
5ed80 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 62 72 6f 77 73 ...."description":."URL.to.brows
5eda0 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 73 6f 75 72 63 65 73 2e 22 2c 0a 20 20 20 e.or.download.the.sources.",....
5edc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 ................."format":."uri"
5ede0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d .................}.............}
5ee00 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 4d 5a 90 00 03 00 00 00 04 00 00 00 ff .........}.....}.}.MZ...........
5ee20 ff 00 00 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...........@....................
5ee40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd ...........................!..L.
5ee60 21 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 61 6e 6e 6f 74 20 62 65 20 72 75 6e 20 69 6e 20 44 !This.program.cannot.be.run.in.D
5ee80 4f 53 20 6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 00 00 00 00 7f c6 2c cd 3b a7 42 9e 3b a7 42 9e 3b OS.mode....$.........,.;.B.;.B.;
5eea0 a7 42 9e 32 df d7 9e 3a a7 42 9e 32 df c1 9e 2d a7 42 9e 32 df c6 9e 39 a7 42 9e 32 df d1 9e 3f .B.2...:.B.2...-.B.2...9.B.2...?
5eec0 a7 42 9e 1c 61 39 9e 38 a7 42 9e 3b a7 43 9e 08 a7 42 9e 32 df c8 9e 3a a7 42 9e 32 df d6 9e 3a .B..a9.8.B.;.C...B.2...:.B.2...:
5eee0 a7 42 9e 32 df d3 9e 3a a7 42 9e 52 69 63 68 3b a7 42 9e 00 00 00 00 00 00 00 00 50 45 00 00 4c .B.2...:.B.Rich;.B.........PE..L
5ef00 01 05 00 ac 4d 6f 4f 00 00 00 00 00 00 00 00 e0 00 02 01 0b 01 09 00 00 0a 00 00 00 16 00 00 00 ....MoO.........................
5ef20 00 00 00 38 13 00 00 00 10 00 00 00 20 00 00 00 00 40 00 00 10 00 00 00 02 00 00 05 00 00 00 00 ...8.............@..............
5ef40 00 00 00 05 00 00 00 00 00 00 00 00 60 00 00 00 04 00 00 3f 9c 00 00 03 00 40 81 00 00 10 00 00 ............`......?.....@......
5ef60 10 00 00 00 00 10 00 00 10 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 90 22 00 00 50 ............................"..P
5ef80 00 00 00 00 40 00 00 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 70 ....@.......................P..p
5efa0 01 00 00 00 21 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....!...........................
5efc0 00 00 00 38 21 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 d8 00 00 00 00 00 00 00 00 ...8!..@........................
5efe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e 74 65 78 74 00 00 00 0b 09 00 00 00 ....................text........
5f000 10 00 00 00 0a 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 60 2e 72 64 61 74 ..........................`.rdat
5f020 61 00 00 ce 09 00 00 00 20 00 00 00 0a 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 a..............................@
5f040 00 00 40 2e 64 61 74 61 00 00 00 90 03 00 00 00 30 00 00 00 02 00 00 00 18 00 00 00 00 00 00 00 ..@.data........0...............
5f060 00 00 00 00 00 00 00 40 00 00 c0 2e 72 73 72 63 00 00 00 20 06 00 00 00 40 00 00 00 08 00 00 00 .......@....rsrc........@.......
5f080 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2e 72 65 6c 6f 63 00 00 cc 01 00 00 00 ...............@..@.reloc.......
5f0a0 50 00 00 00 02 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 42 00 00 00 00 00 P......."..............@..B.....
5f0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 24 b8 e6 18 40 00 e8 78 08 00 00 6a ...................j$...@..x...j
5f220 f6 ff 15 08 20 40 00 83 65 d0 00 8b f0 8d 45 d0 50 56 ff 15 00 20 40 00 8b 45 d0 83 e0 fb 50 56 .....@..e.....E.PV....@..E....PV
5f240 ff 15 04 20 40 00 8d 4d d4 ff 15 58 20 40 00 83 65 fc 00 8d 45 d4 50 ff 35 48 20 40 00 ff 15 4c ....@..M...X.@..e...E.P.5H.@...L
5f260 20 40 00 59 59 ff 35 5c 20 40 00 8d 45 d4 50 ff 35 60 20 40 00 ff 15 44 20 40 00 59 59 8b c8 ff .@.YY.5\.@..E.P.5`.@...D.@.YY...
5f280 15 50 20 40 00 83 4d fc ff 8d 4d d4 ff 15 54 20 40 00 33 c0 e8 48 08 00 00 c3 3b 0d 00 30 40 00 .P.@..M...M...T.@.3..H....;..0@.
5f2a0 75 02 f3 c3 e9 ac 02 00 00 68 80 15 40 00 e8 a3 04 00 00 a1 6c 33 40 00 c7 04 24 34 30 40 00 ff u........h..@.......l3@...$40@..
5f2c0 35 68 33 40 00 a3 34 30 40 00 68 24 30 40 00 68 28 30 40 00 68 20 30 40 00 ff 15 a0 20 40 00 83 5h3@..40@.h$0@.h(0@.h.0@.....@..
5f2e0 c4 14 a3 30 30 40 00 85 c0 7d 08 6a 08 e8 b9 03 00 00 59 c3 6a 10 68 08 22 40 00 e8 1f 06 00 00 ...00@...}.j......Y.j.h."@......
5f300 33 db 89 5d fc 64 a1 18 00 00 00 8b 70 04 89 5d e4 bf 80 33 40 00 53 56 57 ff 15 30 20 40 00 3b 3..].d......p..]...3@.SVW..0.@.;
5f320 c3 74 19 3b c6 75 08 33 f6 46 89 75 e4 eb 10 68 e8 03 00 00 ff 15 34 20 40 00 eb da 33 f6 46 a1 .t.;.u.3.F.u...h......4.@...3.F.
5f340 7c 33 40 00 3b c6 75 0a 6a 1f e8 5c 03 00 00 59 eb 3b a1 7c 33 40 00 85 c0 75 2c 89 35 7c 33 40 |3@.;.u.j..\...Y.;.|3@...u,.5|3@
5f360 00 68 f0 20 40 00 68 e4 20 40 00 e8 a7 05 00 00 59 59 85 c0 74 17 c7 45 fc fe ff ff ff b8 ff 00 .h..@.h..@......YY..t..E........
5f380 00 00 e9 dd 00 00 00 89 35 3c 30 40 00 a1 7c 33 40 00 3b c6 75 1b 68 e0 20 40 00 68 d8 20 40 00 ........5<0@..|3@.;.u.h..@.h..@.
5f3a0 e8 6c 05 00 00 59 59 c7 05 7c 33 40 00 02 00 00 00 39 5d e4 75 08 53 57 ff 15 38 20 40 00 39 1d .l...YY..|3@.....9].u.SW..8.@.9.
5f3c0 8c 33 40 00 74 19 68 8c 33 40 00 e8 83 04 00 00 59 85 c0 74 0a 53 6a 02 53 ff 15 8c 33 40 00 a1 .3@.t.h.3@......Y..t.Sj.S...3@..
5f3e0 24 30 40 00 8b 0d bc 20 40 00 89 01 ff 35 24 30 40 00 ff 35 28 30 40 00 ff 35 20 30 40 00 e8 10 $0@.....@....5$0@..5(0@..5.0@...
5f400 fe ff ff 83 c4 0c a3 38 30 40 00 39 1d 2c 30 40 00 75 37 50 ff 15 c0 20 40 00 8b 45 ec 8b 08 8b .......80@.9.,0@.u7P....@..E....
5f420 09 89 4d e0 50 51 e8 8e 03 00 00 59 59 c3 8b 65 e8 8b 45 e0 a3 38 30 40 00 33 db 39 1d 2c 30 40 ..M.PQ.....YY..e..E..80@.3.9.,0@
5f440 00 75 07 50 ff 15 68 20 40 00 39 1d 3c 30 40 00 75 06 ff 15 9c 20 40 00 c7 45 fc fe ff ff ff a1 .u.P..h.@.9.<0@.u.....@..E......
5f460 38 30 40 00 e8 fb 04 00 00 c3 b8 4d 5a 00 00 66 39 05 00 00 40 00 74 04 33 c0 eb 4d a1 3c 00 40 80@........MZ..f9...@.t.3..M.<.@
5f480 00 8d 80 00 00 40 00 81 38 50 45 00 00 75 e9 0f b7 48 18 81 f9 0b 01 00 00 74 1b 81 f9 0b 02 00 .....@..8PE..u...H.......t......
5f4a0 00 75 d5 83 b8 84 00 00 00 0e 76 cc 33 c9 39 88 f8 00 00 00 eb 0e 83 78 74 0e 76 bc 33 c9 39 88 .u........v.3.9........xt.v.3.9.
5f4c0 e8 00 00 00 0f 95 c1 8b c1 6a 01 a3 2c 30 40 00 ff 15 70 20 40 00 6a ff ff 15 6c 20 40 00 59 59 .........j..,0@...p.@.j...l.@.YY
5f4e0 a3 84 33 40 00 a3 88 33 40 00 ff 15 cc 20 40 00 8b 0d 74 33 40 00 89 08 ff 15 88 20 40 00 8b 0d ..3@...3@.....@...t3@.......@...
5f500 70 33 40 00 89 08 a1 a8 20 40 00 8b 00 a3 78 33 40 00 e8 56 02 00 00 e8 ac 04 00 00 83 3d 14 30 p3@......@....x3@..V.........=.0
5f520 40 00 00 75 0c 68 b5 17 40 00 ff 15 ac 20 40 00 59 e8 67 04 00 00 83 3d 10 30 40 00 ff 75 09 6a @..u.h..@.....@.Y.g....=.0@..u.j
5f540 ff ff 15 b0 20 40 00 59 33 c0 c3 e8 7b 04 00 00 e9 9f fd ff ff 8b ff 55 8b ec 81 ec 28 03 00 00 .....@.Y3...{..........U....(...
5f560 a3 48 31 40 00 89 0d 44 31 40 00 89 15 40 31 40 00 89 1d 3c 31 40 00 89 35 38 31 40 00 89 3d 34 .H1@...D1@...@1@...<1@..581@..=4
5f580 31 40 00 66 8c 15 60 31 40 00 66 8c 0d 54 31 40 00 66 8c 1d 30 31 40 00 66 8c 05 2c 31 40 00 66 1@.f..`1@.f..T1@.f..01@.f..,1@.f
5f5a0 8c 25 28 31 40 00 66 8c 2d 24 31 40 00 9c 8f 05 58 31 40 00 8b 45 00 a3 4c 31 40 00 8b 45 04 a3 .%(1@.f.-$1@....X1@..E..L1@..E..
5f5c0 50 31 40 00 8d 45 08 a3 5c 31 40 00 8b 85 e0 fc ff ff c7 05 98 30 40 00 01 00 01 00 a1 50 31 40 P1@..E..\1@..........0@......P1@
5f5e0 00 a3 4c 30 40 00 c7 05 40 30 40 00 09 04 00 c0 c7 05 44 30 40 00 01 00 00 00 a1 00 30 40 00 89 ..L0@...@0@.......D0@.......0@..
5f600 85 d8 fc ff ff a1 04 30 40 00 89 85 dc fc ff ff ff 15 1c 20 40 00 a3 90 30 40 00 6a 01 e8 3f 04 .......0@...........@...0@.j..?.
5f620 00 00 59 6a 00 ff 15 20 20 40 00 68 1c 21 40 00 ff 15 24 20 40 00 83 3d 90 30 40 00 00 75 08 6a ..Yj.....@.h.!@...$.@..=.0@..u.j
5f640 01 e8 1b 04 00 00 59 68 09 04 00 c0 ff 15 28 20 40 00 50 ff 15 2c 20 40 00 c9 c3 8b ff 55 8b ec ......Yh......(.@.P..,.@.....U..
5f660 8b 45 08 8b 00 81 38 63 73 6d e0 75 2a 83 78 10 03 75 24 8b 40 14 3d 20 05 93 19 74 15 3d 21 05 .E....8csm.u*.x..u$.@.=....t.=!.
5f680 93 19 74 0e 3d 22 05 93 19 74 07 3d 00 40 99 01 75 05 e8 d0 03 00 00 33 c0 5d c2 04 00 68 48 14 ..t.="...t.=.@..u......3.]...hH.
5f6a0 40 00 ff 15 20 20 40 00 33 c0 c3 ff 25 a4 20 40 00 6a 14 68 28 22 40 00 e8 62 02 00 00 ff 35 88 @.....@.3...%..@.j.h("@..b....5.
5f6c0 33 40 00 8b 35 8c 20 40 00 ff d6 59 89 45 e4 83 f8 ff 75 0c ff 75 08 ff 15 c4 20 40 00 59 eb 67 3@..5..@...Y.E....u..u.....@.Y.g
5f6e0 6a 08 e8 92 03 00 00 59 83 65 fc 00 ff 35 88 33 40 00 ff d6 89 45 e4 ff 35 84 33 40 00 ff d6 59 j......Y.e...5.3@....E..5.3@...Y
5f700 59 89 45 e0 8d 45 e0 50 8d 45 e4 50 ff 75 08 8b 35 6c 20 40 00 ff d6 59 50 e8 55 03 00 00 89 45 Y.E..E.P.E.P.u..5l.@...YP.U....E
5f720 dc ff 75 e4 ff d6 a3 88 33 40 00 ff 75 e0 ff d6 83 c4 14 a3 84 33 40 00 c7 45 fc fe ff ff ff e8 ..u.....3@..u........3@..E......
5f740 09 00 00 00 8b 45 dc e8 18 02 00 00 c3 6a 08 e8 19 03 00 00 59 c3 8b ff 55 8b ec ff 75 08 e8 4e .....E.......j......Y...U...u..N
5f760 ff ff ff f7 d8 1b c0 f7 d8 59 48 5d c3 8b ff 56 b8 fc 21 40 00 be fc 21 40 00 57 8b f8 3b c6 73 .........YH]...V..!@...!@.W..;.s
5f780 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 3b fe 72 f1 5f 5e c3 8b ff 56 b8 04 22 40 00 be 04 22 40 00 .....t......;.r._^...V.."@..."@.
5f7a0 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 3b fe 72 f1 5f 5e c3 ff 25 c8 20 40 00 cc W..;.s.....t......;.r._^..%..@..
5f7c0 cc cc cc 8b ff 55 8b ec 8b 4d 08 b8 4d 5a 00 00 66 39 01 74 04 33 c0 5d c3 8b 41 3c 03 c1 81 38 .....U...M..MZ..f9.t.3.]..A<...8
5f7e0 50 45 00 00 75 ef 33 d2 b9 0b 01 00 00 66 39 48 18 0f 94 c2 8b c2 5d c3 cc cc cc cc cc cc cc cc PE..u.3......f9H......].........
5f800 cc cc cc 8b ff 55 8b ec 8b 45 08 8b 48 3c 03 c8 0f b7 41 14 53 56 0f b7 71 06 33 d2 57 8d 44 08 .....U...E..H<....A.SV..q.3.W.D.
5f820 18 85 f6 76 1b 8b 7d 0c 8b 48 0c 3b f9 72 09 8b 58 08 03 d9 3b fb 72 0a 42 83 c0 28 3b d6 72 e8 ...v..}..H.;.r..X...;.r.B..(;.r.
5f840 33 c0 5f 5e 5b 5d c3 cc cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec 6a fe 68 48 22 40 00 68 3._^[]...............U..j.hH"@.h
5f860 65 17 40 00 64 a1 00 00 00 00 50 83 ec 08 53 56 57 a1 00 30 40 00 31 45 f8 33 c5 50 8d 45 f0 64 e.@.d.....P...SVW..0@.1E.3.P.E.d
5f880 a3 00 00 00 00 89 65 e8 c7 45 fc 00 00 00 00 68 00 00 40 00 e8 2a ff ff ff 83 c4 04 85 c0 74 55 ......e..E.....h..@..*........tU
5f8a0 8b 45 08 2d 00 00 40 00 50 68 00 00 40 00 e8 50 ff ff ff 83 c4 08 85 c0 74 3b 8b 40 24 c1 e8 1f .E.-..@.Ph..@..P........t;.@$...
5f8c0 f7 d0 83 e0 01 c7 45 fc fe ff ff ff 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 8b 45 ......E......M.d......Y_^[..]..E
5f8e0 ec 8b 08 8b 01 33 d2 3d 05 00 00 c0 0f 94 c2 8b c2 c3 8b 65 e8 c7 45 fc fe ff ff ff 33 c0 8b 4d .....3.=...........e..E.....3..M
5f900 f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 cc ff 25 b8 20 40 00 ff 25 b4 20 40 00 cc cc 68 .d......Y_^[..]...%..@..%..@...h
5f920 65 17 40 00 64 ff 35 00 00 00 00 8b 44 24 10 89 6c 24 10 8d 6c 24 10 2b e0 53 56 57 a1 00 30 40 e.@.d.5.....D$..l$..l$.+.SVW..0@
5f940 00 31 45 fc 33 c5 50 89 65 e8 ff 75 f8 8b 45 fc c7 45 fc fe ff ff ff 89 45 f8 8d 45 f0 64 a3 00 .1E.3.P.e..u..E..E......E..E.d..
5f960 00 00 00 c3 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b ff 55 8b ec ff 75 14 .....M.d......Y__^[..]Q...U...u.
5f980 ff 75 10 ff 75 0c ff 75 08 68 87 10 40 00 68 00 30 40 00 e8 e7 00 00 00 83 c4 18 5d c3 8b ff 56 .u..u..u.h..@.h.0@.........]...V
5f9a0 68 00 00 03 00 68 00 00 01 00 33 f6 56 e8 d9 00 00 00 83 c4 0c 85 c0 74 0d 56 56 56 56 56 e8 c2 h....h....3.V..........t.VVVVV..
5f9c0 00 00 00 83 c4 14 5e c3 33 c0 c3 8b ff 55 8b ec 83 ec 10 a1 00 30 40 00 83 65 f8 00 83 65 fc 00 ......^.3....U.......0@..e...e..
5f9e0 53 57 bf 4e e6 40 bb bb 00 00 ff ff 3b c7 74 0d 85 c3 74 09 f7 d0 a3 04 30 40 00 eb 60 56 8d 45 SW.N.@......;.t...t.....0@..`V.E
5fa00 f8 50 ff 15 3c 20 40 00 8b 75 fc 33 75 f8 ff 15 0c 20 40 00 33 f0 ff 15 10 20 40 00 33 f0 ff 15 .P..<.@..u.3u.....@.3.....@.3...
5fa20 14 20 40 00 33 f0 8d 45 f0 50 ff 15 18 20 40 00 8b 45 f4 33 45 f0 33 f0 3b f7 75 07 be 4f e6 40 ..@.3..E.P....@..E.3E.3.;.u..O.@
5fa40 bb eb 0b 85 f3 75 07 8b c6 c1 e0 10 0b f0 89 35 00 30 40 00 f7 d6 89 35 04 30 40 00 5e 5f 5b c9 .....u.........5.0@....5.0@.^_[.
5fa60 c3 ff 25 74 20 40 00 ff 25 78 20 40 00 ff 25 7c 20 40 00 ff 25 80 20 40 00 ff 25 84 20 40 00 ff ..%t.@..%x.@..%|.@..%..@..%..@..
5fa80 25 90 20 40 00 ff 25 94 20 40 00 ff 25 98 20 40 00 ff 25 d0 20 40 00 50 64 ff 35 00 00 00 00 8d %..@..%..@..%..@..%..@.Pd.5.....
5faa0 44 24 0c 2b 64 24 0c 53 56 57 89 28 8b e8 a1 00 30 40 00 33 c5 50 89 45 f0 ff 75 fc c7 45 fc ff D$.+d$.SVW.(....0@.3.P.E..u..E..
5fac0 ff ff ff 8d 45 f4 64 a3 00 00 00 00 c3 8b 4d f4 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 ....E.d.......M.d......Y__^[..]Q
5fae0 c3 8b 4d f0 33 cd e8 af f7 ff ff e9 dd ff ff ff 8d 4d d4 ff 25 54 20 40 00 8b 54 24 08 8d 42 0c ..M.3............M..%T.@..T$..B.
5fb00 8b 4a cc 33 c8 e8 90 f7 ff ff 8b 4a fc 33 c8 e8 86 f7 ff ff b8 6c 22 40 00 e9 73 ff ff ff 00 00 .J.3.......J.3.......l"@..s.....
5fb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 ....................#...#...#...
5fc20 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 )..r)..b)..H)..4)...)...(...(...
5fc40 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a (...(...(...(...).......#...$...
5fc60 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 %...%...&..d&...&...$......('...
5fc80 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 '...'...'...'...(..((..6(...'..H
5fca0 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 (..Z(..t(...(...'...'...'...'...
5fcc0 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 '..l'..^'..R'..F'..>'..>(..0'...
5fce0 27 00 00 b8 29 00 00 00 00 00 00 00 00 00 00 96 10 40 00 00 00 00 00 00 00 00 00 57 12 40 00 8a '...)............@.........W.@..
5fd00 14 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ac 4d 6f 4f 00 00 00 00 02 .@......................MoO.....
5fd20 00 00 00 6c 00 00 00 80 21 00 00 80 0f 00 00 40 30 40 00 98 30 40 00 62 61 64 20 61 6c 6c 6f 63 ...l....!......@0@..0@.bad.alloc
5fd40 61 74 69 6f 6e 00 00 00 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ation......H....................
5fd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fd80 00 00 00 00 00 00 00 00 30 40 00 f0 21 40 00 02 00 00 00 52 53 44 53 d1 8c b3 10 b4 8f 01 4a a8 ........0@..!@.....RSDS.......J.
5fda0 21 f6 cc eb 4c 5a 00 01 00 00 00 63 3a 5c 75 73 65 72 73 5c 73 65 6c 64 5c 64 6f 63 75 6d 65 6e !...LZ.....c:\users\seld\documen
5fdc0 74 73 5c 76 69 73 75 61 6c 20 73 74 75 64 69 6f 20 32 30 31 30 5c 50 72 6f 6a 65 63 74 73 5c 68 ts\visual.studio.2010\Projects\h
5fde0 69 64 64 65 6e 69 6e 70 5c 52 65 6c 65 61 73 65 5c 68 69 64 64 65 6e 69 6e 70 2e 70 64 62 00 00 iddeninp\Release\hiddeninp.pdb..
5fe00 00 00 00 65 17 00 00 e6 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff 00 ...e............................
5fe20 00 00 00 d0 ff ff ff 00 00 00 00 fe ff ff ff 07 12 40 00 1b 12 40 00 00 00 00 00 fe ff ff ff 00 .................@...@..........
5fe40 00 00 00 cc ff ff ff 00 00 00 00 fe ff ff ff 00 00 00 00 3a 15 40 00 00 00 00 00 fe ff ff ff 00 ...................:.@..........
5fe60 00 00 00 d8 ff ff ff 00 00 00 00 fe ff ff ff cb 16 40 00 df 16 40 00 ff ff ff ff dd 18 40 00 22 .................@...@.......@."
5fe80 05 93 19 01 00 00 00 64 22 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 .......d"@......................
5fea0 00 00 00 e0 22 00 00 00 00 00 00 00 00 00 00 ec 23 00 00 00 20 00 00 24 23 00 00 00 00 00 00 00 ...."...........#......$#.......
5fec0 00 00 00 f4 26 00 00 44 20 00 00 48 23 00 00 00 00 00 00 00 00 00 00 12 28 00 00 68 20 00 00 00 ....&..D...H#...........(..h....
5fee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 ....................#...#...#...
5ff00 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 )..r)..b)..H)..4)...)...(...(...
5ff20 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a (...(...(...(...).......#...$...
5ff40 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 %...%...&..d&...&...$......('...
5ff60 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 '...'...'...'...(..((..6(...'..H
5ff80 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 (..Z(..t(...(...'...'...'...'...
5ffa0 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 '..l'..^'..R'..F'..>'..>(..0'...
5ffc0 27 00 00 b8 29 00 00 00 00 00 00 95 01 47 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 b7 03 53 '...)........GetConsoleMode....S
5ffe0 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 3b 02 47 65 74 53 74 64 48 61 6e 64 6c 65 00 00 4b etConsoleMode..;.GetStdHandle..K
60000 45 52 4e 45 4c 33 32 2e 64 6c 6c 00 00 16 00 3f 3f 24 3f 36 44 55 3f 24 63 68 61 72 5f 74 72 61 ERNEL32.dll....??$?6DU?$char_tra
60020 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 31 40 40 73 74 64 its@D@std@@V?$allocator@D@1@@std
60040 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f @@YAAAV?$basic_ostream@DU?$char_
60060 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 30 40 41 41 56 31 30 40 41 42 56 3f 24 62 61 73 69 traits@D@std@@@0@AAV10@ABV?$basi
60080 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 c_string@DU?$char_traits@D@std@@
600a0 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 30 40 40 5a 00 91 06 3f 63 6f 75 74 40 73 V?$allocator@D@2@@0@@Z...?cout@s
600c0 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 td@@3V?$basic_ostream@DU?$char_t
600e0 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 00 00 4a 06 3f 63 69 6e 40 73 74 64 40 40 33 raits@D@std@@@1@A..J.?cin@std@@3
60100 56 3f 24 62 61 73 69 63 5f 69 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 V?$basic_istream@DU?$char_traits
60120 40 44 40 73 74 64 40 40 40 31 40 41 00 c2 00 3f 3f 24 67 65 74 6c 69 6e 65 40 44 55 3f 24 63 68 @D@std@@@1@A...??$getline@DU?$ch
60140 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 ar_traits@D@std@@V?$allocator@D@
60160 32 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 69 73 74 72 65 61 6d 40 44 55 3f 2@@std@@YAAAV?$basic_istream@DU?
60180 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 30 40 41 41 56 31 30 40 41 41 56 $char_traits@D@std@@@0@AAV10@AAV
601a0 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 ?$basic_string@DU?$char_traits@D
601c0 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 30 40 40 5a 00 1d 03 3f @std@@V?$allocator@D@2@@0@@Z...?
601e0 3f 36 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 ?6?$basic_ostream@DU?$char_trait
60200 73 40 44 40 73 74 64 40 40 40 73 74 64 40 40 51 41 45 41 41 56 30 31 40 50 36 41 41 41 56 30 31 s@D@std@@@std@@QAEAAV01@P6AAAV01
60220 40 41 41 56 30 31 40 40 5a 40 5a 00 00 5f 02 3f 3f 31 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 @AAV01@@Z@Z.._.??1?$basic_string
60240 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 @DU?$char_traits@D@std@@V?$alloc
60260 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 51 41 45 40 58 5a 00 00 7b 01 3f 3f 30 3f 24 62 61 ator@D@2@@std@@QAE@XZ..{.??0?$ba
60280 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 sic_string@DU?$char_traits@D@std
602a0 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 51 41 45 40 58 5a 00 @@V?$allocator@D@2@@std@@QAE@XZ.
602c0 00 b3 07 3f 65 6e 64 6c 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 ...?endl@std@@YAAAV?$basic_ostre
602e0 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 41 56 am@DU?$char_traits@D@std@@@1@AAV
60300 32 31 40 40 5a 00 00 4d 53 56 43 50 39 30 2e 64 6c 6c 00 15 01 5f 61 6d 73 67 5f 65 78 69 74 00 21@@Z..MSVCP90.dll..._amsg_exit.
60320 00 9f 00 5f 5f 67 65 74 6d 61 69 6e 61 72 67 73 00 2c 01 5f 63 65 78 69 74 00 00 7c 01 5f 65 78 ...__getmainargs.,._cexit..|._ex
60340 69 74 00 66 00 5f 58 63 70 74 46 69 6c 74 65 72 00 cc 04 65 78 69 74 00 00 a0 00 5f 5f 69 6e 69 it.f._XcptFilter...exit....__ini
60360 74 65 6e 76 00 04 02 5f 69 6e 69 74 74 65 72 6d 00 05 02 5f 69 6e 69 74 74 65 72 6d 5f 65 00 3c tenv..._initterm..._initterm_e.<
60380 01 5f 63 6f 6e 66 69 67 74 68 72 65 61 64 6c 6f 63 61 6c 65 00 e3 00 5f 5f 73 65 74 75 73 65 72 ._configthreadlocale...__setuser
603a0 6d 61 74 68 65 72 72 00 00 0b 01 5f 61 64 6a 75 73 74 5f 66 64 69 76 00 00 cb 00 5f 5f 70 5f 5f matherr...._adjust_fdiv....__p__
603c0 63 6f 6d 6d 6f 64 65 00 00 cf 00 5f 5f 70 5f 5f 66 6d 6f 64 65 00 00 6a 01 5f 65 6e 63 6f 64 65 commode....__p__fmode..j._encode
603e0 5f 70 6f 69 6e 74 65 72 00 e0 00 5f 5f 73 65 74 5f 61 70 70 5f 74 79 70 65 00 00 4b 01 5f 63 72 _pointer...__set_app_type..K._cr
60400 74 5f 64 65 62 75 67 67 65 72 5f 68 6f 6f 6b 00 00 43 00 3f 74 65 72 6d 69 6e 61 74 65 40 40 59 t_debugger_hook..C.?terminate@@Y
60420 41 58 58 5a 00 4d 53 56 43 52 39 30 2e 64 6c 6c 00 e6 03 5f 75 6e 6c 6f 63 6b 00 96 00 5f 5f 64 AXXZ.MSVCR90.dll..._unlock...__d
60440 6c 6c 6f 6e 65 78 69 74 00 76 02 5f 6c 6f 63 6b 00 1c 03 5f 6f 6e 65 78 69 74 00 60 01 5f 64 65 llonexit.v._lock..._onexit.`._de
60460 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 73 01 5f 65 78 63 65 70 74 5f 68 61 6e 64 6c 65 72 34 5f code_pointer.s._except_handler4_
60480 63 6f 6d 6d 6f 6e 00 0b 02 5f 69 6e 76 6f 6b 65 5f 77 61 74 73 6f 6e 00 00 3f 01 5f 63 6f 6e 74 common..._invoke_watson..?._cont
604a0 72 6f 6c 66 70 5f 73 00 00 bd 02 49 6e 74 65 72 6c 6f 63 6b 65 64 45 78 63 68 61 6e 67 65 00 21 rolfp_s....InterlockedExchange.!
604c0 04 53 6c 65 65 70 00 ba 02 49 6e 74 65 72 6c 6f 63 6b 65 64 43 6f 6d 70 61 72 65 45 78 63 68 61 .Sleep...InterlockedCompareExcha
604e0 6e 67 65 00 00 2d 04 54 65 72 6d 69 6e 61 74 65 50 72 6f 63 65 73 73 00 00 a9 01 47 65 74 43 75 nge..-.TerminateProcess....GetCu
60500 72 72 65 6e 74 50 72 6f 63 65 73 73 00 3e 04 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f rrentProcess.>.UnhandledExceptio
60520 6e 46 69 6c 74 65 72 00 00 15 04 53 65 74 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e nFilter....SetUnhandledException
60540 46 69 6c 74 65 72 00 d1 02 49 73 44 65 62 75 67 67 65 72 50 72 65 73 65 6e 74 00 54 03 51 75 65 Filter...IsDebuggerPresent.T.Que
60560 72 79 50 65 72 66 6f 72 6d 61 6e 63 65 43 6f 75 6e 74 65 72 00 66 02 47 65 74 54 69 63 6b 43 6f ryPerformanceCounter.f.GetTickCo
60580 75 6e 74 00 00 ad 01 47 65 74 43 75 72 72 65 6e 74 54 68 72 65 61 64 49 64 00 00 aa 01 47 65 74 unt....GetCurrentThreadId....Get
605a0 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 49 64 00 4f 02 47 65 74 53 79 73 74 65 6d 54 69 6d 65 CurrentProcessId.O.GetSystemTime
605c0 41 73 46 69 6c 65 54 69 6d 65 00 73 00 5f 5f 43 78 78 46 72 61 6d 65 48 61 6e 64 6c 65 72 33 00 AsFileTime.s.__CxxFrameHandler3.
605e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4e e6 40 bb b1 19 bf 44 ff ff ff ff ff ...................N.@....D.....
60620 ff ff ff fe ff ff ff 01 00 00 00 24 21 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...........$!@..................
60640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
606a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
606c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
606e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
607a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
607c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
607e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 ................................
60820 00 02 00 10 00 00 00 20 00 00 80 18 00 00 00 38 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 ...............8................
60840 00 01 00 01 00 00 00 50 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 68 .......P.......................h
60860 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 09 04 00 00 80 00 00 00 00 00 00 00 00 ................................
60880 00 00 00 04 00 00 00 00 00 01 00 09 04 00 00 90 00 00 00 a0 40 00 00 28 03 00 00 e4 04 00 00 00 ....................@..(........
608a0 00 00 00 c8 43 00 00 56 02 00 00 e4 04 00 00 00 00 00 00 28 03 34 00 00 00 56 00 53 00 5f 00 56 ....C..V...........(.4...V.S._.V
608c0 00 45 00 52 00 53 00 49 00 4f 00 4e 00 5f 00 49 00 4e 00 46 00 4f 00 00 00 00 00 bd 04 ef fe 00 .E.R.S.I.O.N._.I.N.F.O..........
608e0 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 17 00 00 00 00 00 00 00 04 00 00 00 01 ................................
60900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 86 02 00 00 01 00 53 00 74 00 72 00 69 00 6e 00 67 .....................S.t.r.i.n.g
60920 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 00 6f 00 00 00 62 02 00 00 01 00 30 00 34 00 30 00 39 .F.i.l.e.I.n.f.o...b.....0.4.0.9
60940 00 30 00 34 00 62 00 30 00 00 00 ca 00 51 00 01 00 46 00 69 00 6c 00 65 00 44 00 65 00 73 00 63 .0.4.b.0.....Q...F.i.l.e.D.e.s.c
60960 00 72 00 69 00 70 00 74 00 69 00 6f 00 6e 00 00 00 00 00 52 00 65 00 61 00 64 00 73 00 20 00 66 .r.i.p.t.i.o.n.....R.e.a.d.s...f
60980 00 72 00 6f 00 6d 00 20 00 73 00 74 00 64 00 69 00 6e 00 20 00 77 00 69 00 74 00 68 00 6f 00 75 .r.o.m...s.t.d.i.n...w.i.t.h.o.u
609a0 00 74 00 20 00 6c 00 65 00 61 00 6b 00 69 00 6e 00 67 00 20 00 69 00 6e 00 66 00 6f 00 20 00 74 .t...l.e.a.k.i.n.g...i.n.f.o...t
609c0 00 6f 00 20 00 74 00 68 00 65 00 20 00 74 00 65 00 72 00 6d 00 69 00 6e 00 61 00 6c 00 20 00 61 .o...t.h.e...t.e.r.m.i.n.a.l...a
609e0 00 6e 00 64 00 20 00 6f 00 75 00 74 00 70 00 75 00 74 00 73 00 20 00 62 00 61 00 63 00 6b 00 20 .n.d...o.u.t.p.u.t.s...b.a.c.k..
60a00 00 74 00 6f 00 20 00 73 00 74 00 64 00 6f 00 75 00 74 00 00 00 00 00 36 00 0b 00 01 00 46 00 69 .t.o...s.t.d.o.u.t.....6.....F.i
60a20 00 6c 00 65 00 56 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 00 00 31 00 2c 00 20 00 30 00 2c .l.e.V.e.r.s.i.o.n.....1.,...0.,
60a40 00 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 38 00 0c 00 01 00 49 00 6e 00 74 00 65 00 72 00 6e ...0.,...0.....8.....I.n.t.e.r.n
60a60 00 61 00 6c 00 4e 00 61 00 6d 00 65 00 00 00 68 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 .a.l.N.a.m.e...h.i.d.d.e.n.i.n.p
60a80 00 75 00 74 00 00 00 50 00 16 00 01 00 4c 00 65 00 67 00 61 00 6c 00 43 00 6f 00 70 00 79 00 72 .u.t...P.....L.e.g.a.l.C.o.p.y.r
60aa0 00 69 00 67 00 68 00 74 00 00 00 4a 00 6f 00 72 00 64 00 69 00 20 00 42 00 6f 00 67 00 67 00 69 .i.g.h.t...J.o.r.d.i...B.o.g.g.i
60ac0 00 61 00 6e 00 6f 00 20 00 2d 00 20 00 32 00 30 00 31 00 32 00 00 00 48 00 10 00 01 00 4f 00 72 .a.n.o...-...2.0.1.2...H.....O.r
60ae0 00 69 00 67 00 69 00 6e 00 61 00 6c 00 46 00 69 00 6c 00 65 00 6e 00 61 00 6d 00 65 00 00 00 68 .i.g.i.n.a.l.F.i.l.e.n.a.m.e...h
60b00 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 00 75 00 74 00 2e 00 65 00 78 00 65 00 00 00 3a .i.d.d.e.n.i.n.p.u.t...e.x.e...:
60b20 00 0d 00 01 00 50 00 72 00 6f 00 64 00 75 00 63 00 74 00 4e 00 61 00 6d 00 65 00 00 00 00 00 48 .....P.r.o.d.u.c.t.N.a.m.e.....H
60b40 00 69 00 64 00 64 00 65 00 6e 00 20 00 49 00 6e 00 70 00 75 00 74 00 00 00 00 00 3a 00 0b 00 01 .i.d.d.e.n...I.n.p.u.t.....:....
60b60 00 50 00 72 00 6f 00 64 00 75 00 63 00 74 00 56 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 31 .P.r.o.d.u.c.t.V.e.r.s.i.o.n...1
60b80 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 44 00 00 00 01 00 56 00 61 .,...0.,...0.,...0.....D.....V.a
60ba0 00 72 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 00 6f 00 00 00 00 00 24 00 04 00 00 00 54 00 72 .r.F.i.l.e.I.n.f.o.....$.....T.r
60bc0 00 61 00 6e 00 73 00 6c 00 61 00 74 00 69 00 6f 00 6e 00 00 00 00 00 09 04 b0 04 3c 61 73 73 65 .a.n.s.l.a.t.i.o.n.........<asse
60be0 6d 62 6c 79 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 73 63 68 65 6d 61 73 2d 6d 69 63 72 6f 73 6f 66 mbly.xmlns="urn:schemas-microsof
60c00 74 2d 63 6f 6d 3a 61 73 6d 2e 76 31 22 20 6d 61 6e 69 66 65 73 74 56 65 72 73 69 6f 6e 3d 22 31 t-com:asm.v1".manifestVersion="1
60c20 2e 30 22 3e 0d 0a 20 20 3c 74 72 75 73 74 49 6e 66 6f 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 73 63 .0">....<trustInfo.xmlns="urn:sc
60c40 68 65 6d 61 73 2d 6d 69 63 72 6f 73 6f 66 74 2d 63 6f 6d 3a 61 73 6d 2e 76 33 22 3e 0d 0a 20 20 hemas-microsoft-com:asm.v3">....
60c60 20 20 3c 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 50 72 ..<security>........<requestedPr
60c80 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 45 78 65 ivileges>..........<requestedExe
60ca0 63 75 74 69 6f 6e 4c 65 76 65 6c 20 6c 65 76 65 6c 3d 22 61 73 49 6e 76 6f 6b 65 72 22 20 75 69 cutionLevel.level="asInvoker".ui
60cc0 41 63 63 65 73 73 3d 22 66 61 6c 73 65 22 3e 3c 2f 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 Access="false"></requestedExecut
60ce0 69 6f 6e 4c 65 76 65 6c 3e 0d 0a 20 20 20 20 20 20 3c 2f 72 65 71 75 65 73 74 65 64 50 72 69 76 ionLevel>........</requestedPriv
60d00 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 3c 2f 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 3c 2f 74 72 ileges>......</security>....</tr
60d20 75 73 74 49 6e 66 6f 3e 0d 0a 20 20 3c 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 20 20 20 20 3c 64 ustInfo>....<dependency>......<d
60d40 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 6c 79 3e 0d 0a 20 20 20 20 20 20 3c 61 73 73 65 6d 62 ependentAssembly>........<assemb
60d60 6c 79 49 64 65 6e 74 69 74 79 20 74 79 70 65 3d 22 77 69 6e 33 32 22 20 6e 61 6d 65 3d 22 4d 69 lyIdentity.type="win32".name="Mi
60d80 63 72 6f 73 6f 66 74 2e 56 43 39 30 2e 43 52 54 22 20 76 65 72 73 69 6f 6e 3d 22 39 2e 30 2e 32 crosoft.VC90.CRT".version="9.0.2
60da0 31 30 32 32 2e 38 22 20 70 72 6f 63 65 73 73 6f 72 41 72 63 68 69 74 65 63 74 75 72 65 3d 22 78 1022.8".processorArchitecture="x
60dc0 38 36 22 20 70 75 62 6c 69 63 4b 65 79 54 6f 6b 65 6e 3d 22 31 66 63 38 62 33 62 39 61 31 65 31 86".publicKeyToken="1fc8b3b9a1e1
60de0 38 65 33 62 22 3e 3c 2f 61 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 79 3e 0d 0a 20 20 20 20 3c 8e3b"></assemblyIdentity>......<
60e00 2f 64 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 6c 79 3e 0d 0a 20 20 3c 2f 64 65 70 65 6e 64 65 /dependentAssembly>....</depende
60e20 6e 63 79 3e 0d 0a 3c 2f 61 73 73 65 6d 62 6c 79 3e 50 41 50 41 44 44 49 4e 47 58 58 50 41 44 44 ncy>..</assembly>PAPADDINGXXPADD
60e40 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60e60 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60e80 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60ea0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60ec0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60ee0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60f00 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60f20 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60f40 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60f60 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60f80 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60fa0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60fc0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
60fe0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
61000 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 00 10 00 00 40 01 00 00 03 30 10 30 21 INGPADDINGXXPADDING....@....0.0!
61020 30 2f 30 38 30 46 30 4c 30 54 30 5e 30 64 30 6e 30 7b 30 89 30 97 30 a1 30 a8 30 ae 30 b3 30 b8 0/080F0L0T0^0d0n0{0.0.0.0.0.0.0.
61040 30 bd 30 c2 30 c8 30 d0 30 e4 30 ff 30 08 31 23 31 2d 31 40 31 4a 31 4f 31 54 31 76 31 7b 31 84 0.0.0.0.0.0.0.1#1-1@1J1O1T1v1{1.
61060 31 89 31 96 31 a7 31 ad 31 b4 31 c8 31 cd 31 d3 31 db 31 e1 31 e7 31 f4 31 fa 31 03 32 22 32 2a 1.1.1.1.1.1.1.1.1.1.1.1.1.1.2"2*
61080 32 33 32 39 32 41 32 4d 32 5f 32 6a 32 70 32 b9 32 bf 32 c7 32 ce 32 d3 32 d9 32 df 32 e7 32 ed 23292A2M2_2j2p2.2.2.2.2.2.2.2.2.
610a0 32 f4 32 fb 32 0b 33 13 33 19 33 25 33 30 33 4e 33 54 33 5a 33 60 33 66 33 6c 33 73 33 7a 33 81 2.2.2.3.3.3%303N3T3Z3`3f3l3s3z3.
610c0 33 88 33 8f 33 96 33 9d 33 a5 33 ad 33 b5 33 c1 33 ca 33 cf 33 d5 33 df 33 e8 33 f3 33 ff 33 04 3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.
610e0 34 14 34 19 34 1f 34 25 34 3b 34 42 34 8b 34 91 34 9a 34 a1 34 ac 34 b2 34 c6 34 db 34 e6 34 fe 4.4.4.4%4;4B4.4.4.4.4.4.4.4.4.4.
61100 34 14 35 21 35 5e 35 63 35 84 35 89 35 a8 35 48 36 4d 36 5f 36 7d 36 91 36 97 36 00 37 06 37 0d 4.5!5^5c5.5.5.5H6M6_6}6.6.6.7.7.
61120 37 2a 37 77 37 7c 37 c1 37 e4 37 f1 37 fd 37 05 38 0d 38 19 38 3d 38 45 38 50 38 56 38 5c 38 62 7*7w7|7.7.7.7.7.8.8.8=8E8P8V8\8b
61140 38 68 38 6e 38 74 38 7a 38 80 38 9c 38 e2 38 02 39 00 00 00 20 00 00 24 00 00 00 dc 30 e8 30 ec 8h8n8t8z8.8.8.8.9......$....0.0.
61160 30 1c 31 20 31 74 31 78 31 1c 32 20 32 40 32 5c 32 60 32 68 32 74 32 00 30 00 00 0c 00 00 00 18 0.1.1t1x1.2.2@2\2`2h2t2.0.......
61180 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0...............................
611a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
611c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
611e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
61200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ...................<?php........
61220 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 ...namespace.Symfony\Component\P
61240 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 50 72 6f rocess;.............class.PhpPro
61260 63 65 73 73 20 65 78 74 65 6e 64 73 20 50 72 6f 63 65 73 73 0a 7b 0a 70 72 69 76 61 74 65 20 24 cess.extends.Process.{.private.$
61280 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 executableFinder;.............pu
612a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 63 72 69 70 blic.function.__construct($scrip
612c0 74 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 6e 76 20 3d 20 61 72 72 t,.$cwd.=.null,.array.$env.=.arr
612e0 61 79 28 29 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 ay(),.$timeout.=.60,.array.$opti
61300 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 ons.=.array()).{.parent::__const
61320 72 75 63 74 28 6e 75 6c 6c 2c 20 24 63 77 64 2c 20 24 65 6e 76 2c 20 24 73 63 72 69 70 74 2c 20 ruct(null,.$cwd,.$env,.$script,.
61340 24 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 78 65 $timeout,.$options);..$this->exe
61360 63 75 74 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 74 61 62 6c cutableFinder.=.new.PhpExecutabl
61380 65 46 69 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eFinder();.}.......public.functi
613a0 6f 6e 20 73 65 74 50 68 70 42 69 6e 61 72 79 28 24 70 68 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 on.setPhpBinary($php).{.$this->s
613c0 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a etCommandLine($php);.}..........
613e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 20 ..public.function.run($callback.
61400 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 =.null).{.if.(null.===.$this->ge
61420 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 tCommandLine()).{.if.(false.===.
61440 24 70 68 70 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2d 3e $php.=.$this->executableFinder->
61460 66 69 6e 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 find()).{.throw.new.\RuntimeExce
61480 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 74 68 65 20 50 48 50 20 65 78 ption('Unable.to.find.the.PHP.ex
614a0 65 63 75 74 61 62 6c 65 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 ecutable.');.}.$this->setCommand
614c0 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 Line($php);.}..return.parent::ru
614e0 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a n($callback);.}.}.<?php.........
61500 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 ..namespace.Symfony\Component\Pr
61520 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 65 63 75 74 61 62 6c 65 46 69 ocess;........class.ExecutableFi
61540 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 69 73 57 69 6e 64 6f 77 73 nder.{.private.static.$isWindows
61560 3b 0a 0a 70 72 69 76 61 74 65 20 24 73 75 66 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 27 2e 65 ;..private.$suffixes.=.array('.e
61580 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 27 2e 63 6d 64 27 2c 20 27 2e 63 6f 6d 27 29 3b 0a 0a 70 xe',.'.bat',.'.cmd',.'.com');..p
615a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 ublic.function.__construct().{.i
615c0 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 73 65 6c 66 3a 3a 24 69 73 57 69 6e 64 6f 77 73 29 20 7b 0a f.(null.===.self::$isWindows).{.
615e0 73 65 6c 66 3a 3a 24 69 73 57 69 6e 64 6f 77 73 20 3d 20 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 self::$isWindows.=.0.===.stripos
61600 28 50 48 50 5f 4f 53 2c 20 27 77 69 6e 27 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e (PHP_OS,.'win');.}.}..public.fun
61620 63 74 69 6f 6e 20 73 65 74 53 75 66 66 69 78 65 73 28 61 72 72 61 79 20 24 73 75 66 66 69 78 65 ction.setSuffixes(array.$suffixe
61640 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 20 3d 20 24 73 75 66 66 69 78 65 73 s).{.$this->suffixes.=.$suffixes
61660 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 66 66 69 78 28 24 ;.}..public.function.addSuffix($
61680 73 75 66 66 69 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 5b 5d 20 3d 20 24 73 suffix).{.$this->suffixes[].=.$s
616a0 75 66 66 69 78 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 uffix;.}...........public.functi
616c0 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 on.find($name,.$default.=.null,.
616e0 61 72 72 61 79 20 24 65 78 74 72 61 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 array.$extraDirs.=.array()).{.if
61700 20 28 69 6e 69 5f 67 65 74 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 20 7b 0a 24 73 65 .(ini_get('open_basedir')).{.$se
61720 61 72 63 68 50 61 74 68 20 3d 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f archPath.=.explode(PATH_SEPARATO
61740 52 2c 20 67 65 74 65 6e 76 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 3b 0a 24 64 69 72 R,.getenv('open_basedir'));.$dir
61760 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 65 61 72 63 68 50 61 74 s.=.array();.foreach.($searchPat
61780 68 20 61 73 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 h.as.$path).{.if.(is_dir($path))
617a0 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 69 .{.$dirs[].=.$path;.}.else.{.$fi
617c0 6c 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 64 69 72 6e 61 6d 65 28 24 70 61 74 68 29 2c le.=.str_replace(dirname($path),
617e0 20 27 27 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 28 24 66 69 6c 65 20 3d 3d 20 24 6e 61 6d 65 20 .'',.$path);.if.($file.==.$name.
61800 26 26 20 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 &&.is_executable($path)).{.retur
61820 6e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 73 20 3d 20 n.$path;.}.}.}.}.else.{.$dirs.=.
61840 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 array_merge(.explode(PATH_SEPARA
61860 54 4f 52 2c 20 67 65 74 65 6e 76 28 27 50 41 54 48 27 29 20 3f 3a 20 67 65 74 65 6e 76 28 27 50 TOR,.getenv('PATH').?:.getenv('P
61880 61 74 68 27 29 29 2c 0a 24 65 78 74 72 61 44 69 72 73 0a 29 3b 0a 7d 0a 0a 24 73 75 66 66 69 78 ath')),.$extraDirs.);.}..$suffix
618a0 65 73 20 3d 20 61 72 72 61 79 28 27 27 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 es.=.array('');.if.(defined('PHP
618c0 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 70 61 74 _WINDOWS_VERSION_BUILD')).{.$pat
618e0 68 45 78 74 20 3d 20 67 65 74 65 6e 76 28 27 50 41 54 48 45 58 54 27 29 3b 0a 24 73 75 66 66 69 hExt.=.getenv('PATHEXT');.$suffi
61900 78 65 73 20 3d 20 24 70 61 74 68 45 78 74 20 3f 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 xes.=.$pathExt.?.explode(PATH_SE
61920 50 41 52 41 54 4f 52 2c 20 24 70 61 74 68 45 78 74 29 20 3a 20 24 74 68 69 73 2d 3e 73 75 66 66 PARATOR,.$pathExt).:.$this->suff
61940 69 78 65 73 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 73 75 66 66 69 78 65 73 20 61 73 20 24 73 ixes;.}.foreach.($suffixes.as.$s
61960 75 66 66 69 78 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 uffix).{.foreach.($dirs.as.$dir)
61980 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 20 3d 20 24 64 69 72 2e 44 49 52 45 .{.if.(is_file($file.=.$dir.DIRE
619a0 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2e 24 6e 61 6d 65 2e 24 73 75 66 66 69 78 29 20 26 CTORY_SEPARATOR.$name.$suffix).&
619c0 26 20 28 73 65 6c 66 3a 3a 24 69 73 57 69 6e 64 6f 77 73 20 7c 7c 20 69 73 5f 65 78 65 63 75 74 &.(self::$isWindows.||.is_execut
619e0 61 62 6c 65 28 24 66 69 6c 65 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a able($file))).{.return.$file;.}.
61a00 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a }.}..return.$default;.}.}.<?php.
61a20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
61a40 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 onent\Process;..........class.Pr
61a60 6f 63 65 73 73 0a 7b 0a 63 6f 6e 73 74 20 45 52 52 20 3d 20 27 65 72 72 27 3b 0a 63 6f 6e 73 74 ocess.{.const.ERR.=.'err';.const
61a80 20 4f 55 54 20 3d 20 27 6f 75 74 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 52 45 41 44 .OUT.=.'out';..const.STATUS_READ
61aa0 59 20 3d 20 27 72 65 61 64 79 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 53 54 41 52 54 45 Y.=.'ready';.const.STATUS_STARTE
61ac0 44 20 3d 20 27 73 74 61 72 74 65 64 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 54 45 52 4d D.=.'started';.const.STATUS_TERM
61ae0 49 4e 41 54 45 44 20 3d 20 27 74 65 72 6d 69 6e 61 74 65 64 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 INATED.=.'terminated';..const.ST
61b00 44 49 4e 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 44 4f 55 54 20 3d 20 31 3b 0a 63 6f 6e 73 74 DIN.=.0;.const.STDOUT.=.1;.const
61b20 20 53 54 44 45 52 52 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 6c 69 .STDERR.=.2;..private.$commandli
61b40 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 76 3b 0a ne;.private.$cwd;.private.$env;.
61b60 70 72 69 76 61 74 65 20 24 73 74 64 69 6e 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 private.$stdin;.private.$timeout
61b80 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 65 78 69 ;.private.$options;.private.$exi
61ba0 74 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 tcode;.private.$processInformati
61bc0 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 on;.private.$stdout;.private.$st
61be0 64 65 72 72 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d derr;.private.$enhanceWindowsCom
61c00 70 61 74 69 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 70 69 70 65 73 3b 0a 70 72 69 76 patibility;.private.$pipes;.priv
61c20 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 74 75 73 20 3d 20 ate.$process;.private.$status.=.
61c40 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 self::STATUS_READY;..private.$fi
61c60 6c 65 48 61 6e 64 6c 65 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 42 79 74 65 73 3b 0a 0a leHandles;.private.$readBytes;..
61c80 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 65 78 69 74 43 6f 64 65 73 20 .......public.static.$exitCodes.
61ca0 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 4f 4b 27 2c 0a 31 20 3d 3e 20 27 47 65 6e 65 72 61 =.array(.0.=>.'OK',.1.=>.'Genera
61cc0 6c 20 65 72 72 6f 72 27 2c 0a 32 20 3d 3e 20 27 4d 69 73 75 73 65 20 6f 66 20 73 68 65 6c 6c 20 l.error',.2.=>.'Misuse.of.shell.
61ce0 62 75 69 6c 74 69 6e 73 27 2c 0a 0a 31 32 36 20 3d 3e 20 27 49 6e 76 6f 6b 65 64 20 63 6f 6d 6d builtins',..126.=>.'Invoked.comm
61d00 61 6e 64 20 63 61 6e 6e 6f 74 20 65 78 65 63 75 74 65 27 2c 0a 31 32 37 20 3d 3e 20 27 43 6f 6d and.cannot.execute',.127.=>.'Com
61d20 6d 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 27 2c 0a 31 32 38 20 3d 3e 20 27 49 6e 76 61 6c 69 64 mand.not.found',.128.=>.'Invalid
61d40 20 65 78 69 74 20 61 72 67 75 6d 65 6e 74 27 2c 0a 0a 0a 20 31 32 39 20 3d 3e 20 27 48 61 6e 67 .exit.argument',....129.=>.'Hang
61d60 75 70 27 2c 0a 31 33 30 20 3d 3e 20 27 49 6e 74 65 72 72 75 70 74 27 2c 0a 31 33 31 20 3d 3e 20 up',.130.=>.'Interrupt',.131.=>.
61d80 27 51 75 69 74 20 61 6e 64 20 64 75 6d 70 20 63 6f 72 65 27 2c 0a 31 33 32 20 3d 3e 20 27 49 6c 'Quit.and.dump.core',.132.=>.'Il
61da0 6c 65 67 61 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e 27 2c 0a 31 33 33 20 3d 3e 20 27 54 72 61 63 legal.instruction',.133.=>.'Trac
61dc0 65 2f 62 72 65 61 6b 70 6f 69 6e 74 20 74 72 61 70 27 2c 0a 31 33 34 20 3d 3e 20 27 50 72 6f 63 e/breakpoint.trap',.134.=>.'Proc
61de0 65 73 73 20 61 62 6f 72 74 65 64 27 2c 0a 31 33 35 20 3d 3e 20 27 42 75 73 20 65 72 72 6f 72 3a ess.aborted',.135.=>.'Bus.error:
61e00 20 22 61 63 63 65 73 73 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 20 70 6f 72 74 69 6f 6e 20 6f 66 ."access.to.undefined.portion.of
61e20 20 6d 65 6d 6f 72 79 20 6f 62 6a 65 63 74 22 27 2c 0a 31 33 36 20 3d 3e 20 27 46 6c 6f 61 74 69 .memory.object"',.136.=>.'Floati
61e40 6e 67 20 70 6f 69 6e 74 20 65 78 63 65 70 74 69 6f 6e 3a 20 22 65 72 72 6f 6e 65 6f 75 73 20 61 ng.point.exception:."erroneous.a
61e60 72 69 74 68 6d 65 74 69 63 20 6f 70 65 72 61 74 69 6f 6e 22 27 2c 0a 31 33 37 20 3d 3e 20 27 4b rithmetic.operation"',.137.=>.'K
61e80 69 6c 6c 20 28 74 65 72 6d 69 6e 61 74 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 29 27 2c 0a 31 33 ill.(terminate.immediately)',.13
61ea0 38 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 31 27 2c 0a 31 33 39 20 3d 3e 20 27 53 8.=>.'User-defined.1',.139.=>.'S
61ec0 65 67 6d 65 6e 74 61 74 69 6f 6e 20 76 69 6f 6c 61 74 69 6f 6e 27 2c 0a 31 34 30 20 3d 3e 20 27 egmentation.violation',.140.=>.'
61ee0 55 73 65 72 2d 64 65 66 69 6e 65 64 20 32 27 2c 0a 31 34 31 20 3d 3e 20 27 57 72 69 74 65 20 74 User-defined.2',.141.=>.'Write.t
61f00 6f 20 70 69 70 65 20 77 69 74 68 20 6e 6f 20 6f 6e 65 20 72 65 61 64 69 6e 67 27 2c 0a 31 34 32 o.pipe.with.no.one.reading',.142
61f20 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 20 61 6c 61 72 6d 27 2c 0a 31 34 .=>.'Signal.raised.by.alarm',.14
61f40 33 20 3d 3e 20 27 54 65 72 6d 69 6e 61 74 69 6f 6e 20 28 72 65 71 75 65 73 74 20 74 6f 20 74 65 3.=>.'Termination.(request.to.te
61f60 72 6d 69 6e 61 74 65 29 27 2c 0a 0a 20 31 34 35 20 3d 3e 20 27 43 68 69 6c 64 20 70 72 6f 63 65 rminate)',...145.=>.'Child.proce
61f80 73 73 20 74 65 72 6d 69 6e 61 74 65 64 2c 20 73 74 6f 70 70 65 64 20 28 6f 72 20 63 6f 6e 74 69 ss.terminated,.stopped.(or.conti
61fa0 6e 75 65 64 2a 29 27 2c 0a 31 34 36 20 3d 3e 20 27 43 6f 6e 74 69 6e 75 65 20 69 66 20 73 74 6f nued*)',.146.=>.'Continue.if.sto
61fc0 70 70 65 64 27 2c 0a 31 34 37 20 3d 3e 20 27 53 74 6f 70 20 65 78 65 63 75 74 69 6e 67 20 74 65 pped',.147.=>.'Stop.executing.te
61fe0 6d 70 6f 72 61 72 69 6c 79 27 2c 0a 31 34 38 20 3d 3e 20 27 54 65 72 6d 69 6e 61 6c 20 73 74 6f mporarily',.148.=>.'Terminal.sto
62000 70 20 73 69 67 6e 61 6c 27 2c 0a 31 34 39 20 3d 3e 20 27 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 p.signal',.149.=>.'Background.pr
62020 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 72 65 61 64 20 66 72 6f 6d 20 74 74 ocess.attempting.to.read.from.tt
62040 79 20 28 22 69 6e 22 29 27 2c 0a 31 35 30 20 3d 3e 20 27 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 y.("in")',.150.=>.'Background.pr
62060 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 77 72 69 74 65 20 74 6f 20 74 74 79 ocess.attempting.to.write.to.tty
62080 20 28 22 6f 75 74 22 29 27 2c 0a 31 35 31 20 3d 3e 20 27 55 72 67 65 6e 74 20 64 61 74 61 20 61 .("out")',.151.=>.'Urgent.data.a
620a0 76 61 69 6c 61 62 6c 65 20 6f 6e 20 73 6f 63 6b 65 74 27 2c 0a 31 35 32 20 3d 3e 20 27 43 50 55 vailable.on.socket',.152.=>.'CPU
620c0 20 74 69 6d 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 27 2c 0a 31 35 33 20 3d 3e 20 27 46 .time.limit.exceeded',.153.=>.'F
620e0 69 6c 65 20 73 69 7a 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 27 2c 0a 31 35 34 20 3d 3e ile.size.limit.exceeded',.154.=>
62100 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 20 74 69 6d 65 72 20 63 6f 75 6e 74 69 6e .'Signal.raised.by.timer.countin
62120 67 20 76 69 72 74 75 61 6c 20 74 69 6d 65 3a 20 22 76 69 72 74 75 61 6c 20 74 69 6d 65 72 20 65 g.virtual.time:."virtual.timer.e
62140 78 70 69 72 65 64 22 27 2c 0a 31 35 35 20 3d 3e 20 27 50 72 6f 66 69 6c 69 6e 67 20 74 69 6d 65 xpired"',.155.=>.'Profiling.time
62160 72 20 65 78 70 69 72 65 64 27 2c 0a 0a 20 31 35 37 20 3d 3e 20 27 50 6f 6c 6c 61 62 6c 65 20 65 r.expired',...157.=>.'Pollable.e
62180 76 65 6e 74 27 2c 0a 0a 20 31 35 39 20 3d 3e 20 27 42 61 64 20 73 79 73 63 61 6c 6c 27 2c 0a 29 vent',...159.=>.'Bad.syscall',.)
621a0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ;................public.function
621c0 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 63 77 64 20 .__construct($commandline,.$cwd.
621e0 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 6e 76 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 64 69 =.null,.array.$env.=.null,.$stdi
62200 6e 20 3d 20 6e 75 6c 6c 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 30 2c 20 61 72 72 61 79 20 24 n.=.null,.$timeout.=.60,.array.$
62220 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 options.=.array()).{.if.(!functi
62240 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 on_exists('proc_open')).{.throw.
62260 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 72 6f 63 65 new.\RuntimeException('The.Proce
62280 73 73 20 63 6c 61 73 73 20 72 65 6c 69 65 73 20 6f 6e 20 70 72 6f 63 5f 6f 70 65 6e 2c 20 77 68 ss.class.relies.on.proc_open,.wh
622a0 69 63 68 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 79 6f 75 72 20 50 48 50 ich.is.not.available.on.your.PHP
622c0 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d .installation.');.}..$this->comm
622e0 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 24 74 68 69 73 2d 3e 63 andline.=.$commandline;.$this->c
62300 77 64 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 63 77 64 20 3f 20 67 65 74 63 77 64 28 29 20 3a 20 wd.=.null.===.$cwd.?.getcwd().:.
62320 24 63 77 64 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 65 6e 76 29 20 7b 0a 24 74 68 69 73 $cwd;.if.(null.!==.$env).{.$this
62340 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 65 6e 76 20 61 ->env.=.array();.foreach.($env.a
62360 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 28 s.$key.=>.$value).{.$this->env[(
62380 62 69 6e 61 72 79 29 20 24 6b 65 79 5d 20 3d 20 28 62 69 6e 61 72 79 29 20 24 76 61 6c 75 65 3b binary).$key].=.(binary).$value;
623a0 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 6e 75 6c 6c 3b 0a 7d .}.}.else.{.$this->env.=.null;.}
623c0 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 24 74 68 69 73 2d 3e 73 .$this->stdin.=.$stdin;.$this->s
623e0 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 etTimeout($timeout);.$this->enha
62400 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 74 72 75 65 3b 0a nceWindowsCompatibility.=.true;.
62420 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 61 $this->options.=.array_replace(a
62440 72 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 2c 20 rray('suppress_errors'.=>.true,.
62460 27 62 69 6e 61 72 79 5f 70 69 70 65 73 27 20 3d 3e 20 74 72 75 65 29 2c 20 24 6f 70 74 69 6f 6e 'binary_pipes'.=>.true),.$option
62480 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 64 65 73 74 72 75 63 s);.}..public.function.__destruc
624a0 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 6f 70 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a t().{...$this->stop();.}........
624c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e .............public.function.run
624e0 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 ($callback.=.null).{.$this->star
62500 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 69 t($callback);..return.$this->wai
62520 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a t($callback);.}.................
62540 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c ......public.function.start($cal
62560 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e lback.=.null).{.if.($this->isRun
62580 6e 69 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 ning()).{.throw.new.\RuntimeExce
625a0 70 74 69 6f 6e 28 27 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e ption('Process.is.already.runnin
625c0 67 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 27 27 3b 0a 24 74 68 69 g');.}..$this->stdout.=.'';.$thi
625e0 73 2d 3e 73 74 64 65 72 72 20 3d 20 27 27 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 s->stderr.=.'';.$callback.=.$thi
62600 73 2d 3e 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 0a 20 s->buildCallback($callback);....
62620 0a 20 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 ....if.(defined('PHP_WINDOWS_VER
62640 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c SION_BUILD')).{.$this->fileHandl
62660 65 73 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 74 6d 70 66 es.=.array(.self::STDOUT.=>.tmpf
62680 69 6c 65 28 29 2c 0a 29 3b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 ile(),.);.$this->readBytes.=.arr
626a0 61 79 28 0a 73 65 6c 66 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 30 2c 0a 29 3b 0a 24 64 65 73 63 72 ay(.self::STDOUT.=>.0,.);.$descr
626c0 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 iptors.=.array(array('pipe',.'r'
626e0 29 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f ),.$this->fileHandles[self::STDO
62700 55 54 5d 2c 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 7d 20 65 6c 73 65 UT],.array('pipe',.'w'));.}.else
62720 20 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 .{.$descriptors.=.array(array('p
62740 69 70 65 27 2c 20 27 72 27 29 2c 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 ipe',.'r'),.array('pipe',.'w'),.
62760 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 array('pipe',.'w'));.}..$command
62780 6c 69 6e 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 69 66 20 28 line.=.$this->commandline;..if.(
627a0 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 defined('PHP_WINDOWS_VERSION_BUI
627c0 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d LD').&&.$this->enhanceWindowsCom
627e0 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 63 6d patibility).{.$commandline.=.'cm
62800 64 20 2f 56 3a 4f 4e 20 2f 45 3a 4f 4e 20 2f 43 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 d./V:ON./E:ON./C."'.$commandline
62820 2e 27 22 27 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b .'"';.if.(!isset($this->options[
62840 27 62 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 'bypass_shell'])).{.$this->optio
62860 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a ns['bypass_shell'].=.true;.}.}..
62880 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 24 63 6f 6d 6d $this->process.=.proc_open($comm
628a0 61 6e 64 6c 69 6e 65 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 24 74 68 69 73 2d 3e 70 69 andline,.$descriptors,.$this->pi
628c0 70 65 73 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 74 68 69 73 2d 3e 65 6e 76 2c 20 24 74 68 pes,.$this->cwd,.$this->env,.$th
628e0 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 is->options);..if.(!is_resource(
62900 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 $this->process)).{.throw.new.\Ru
62920 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 6c 61 75 6e 63 68 ntimeException('Unable.to.launch
62940 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 .a.new.process.');.}.$this->stat
62960 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 3b 0a 0a 66 6f 72 65 us.=.self::STATUS_STARTED;..fore
62980 61 63 68 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 73 74 ach.($this->pipes.as.$pipe).{.st
629a0 72 65 61 6d 5f 73 65 74 5f 62 6c 6f 63 6b 69 6e 67 28 24 70 69 70 65 2c 20 66 61 6c 73 65 29 3b ream_set_blocking($pipe,.false);
629c0 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 29 20 7b .}..if.(null.===.$this->stdin).{
629e0 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 .fclose($this->pipes[0]);.unset(
62a00 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 77 $this->pipes[0]);..return;.}..$w
62a20 72 69 74 65 50 69 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 ritePipes.=.array($this->pipes[0
62a40 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 24 73 74 64 ]);.unset($this->pipes[0]);.$std
62a60 69 6e 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 73 74 64 69 6e 29 3b 0a 24 73 inLen.=.strlen($this->stdin);.$s
62a80 74 64 69 6e 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 24 77 72 69 74 65 50 69 tdinOffset.=.0;..while.($writePi
62aa0 70 65 73 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f pes).{.if.(defined('PHP_WINDOWS_
62ac0 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 VERSION_BUILD')).{.$this->proces
62ae0 73 46 69 6c 65 48 61 6e 64 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 24 72 20 3d sFileHandles($callback);.}..$r.=
62b00 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 24 77 20 3d 20 24 77 72 69 74 65 50 69 70 65 73 3b .$this->pipes;.$w.=.$writePipes;
62b20 0a 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 6e 20 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 .$e.=.null;..$n.=.@stream_select
62b40 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 29 3b 0a 0a 69 ($r,.$w,.$e,.$this->timeout);..i
62b60 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 f.(false.===.$n).{.break;.}.if.(
62b80 24 6e 20 3d 3d 3d 20 30 29 20 7b 0a 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 73 $n.===.0).{.proc_terminate($this
62ba0 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 ->process);..throw.new.\RuntimeE
62bc0 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 74 69 6d 65 64 20 6f 75 74 2e xception('The.process.timed.out.
62be0 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 29 20 7b 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 77 72 69 ');.}..if.($w).{.$written.=.fwri
62c00 74 65 28 24 77 72 69 74 65 50 69 70 65 73 5b 30 5d 2c 20 28 62 69 6e 61 72 79 29 20 73 75 62 73 te($writePipes[0],.(binary).subs
62c20 74 72 28 24 74 68 69 73 2d 3e 73 74 64 69 6e 2c 20 24 73 74 64 69 6e 4f 66 66 73 65 74 29 2c 20 tr($this->stdin,.$stdinOffset),.
62c40 38 31 39 32 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 72 69 74 74 65 6e 29 20 7b 8192);.if.(false.!==.$written).{
62c60 0a 24 73 74 64 69 6e 4f 66 66 73 65 74 20 2b 3d 20 24 77 72 69 74 74 65 6e 3b 0a 7d 0a 69 66 20 .$stdinOffset.+=.$written;.}.if.
62c80 28 24 73 74 64 69 6e 4f 66 66 73 65 74 20 3e 3d 20 24 73 74 64 69 6e 4c 65 6e 29 20 7b 0a 66 63 ($stdinOffset.>=.$stdinLen).{.fc
62ca0 6c 6f 73 65 28 24 77 72 69 74 65 50 69 70 65 73 5b 30 5d 29 3b 0a 24 77 72 69 74 65 50 69 70 65 lose($writePipes[0]);.$writePipe
62cc0 73 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 20 61 73 20 24 70 s.=.null;.}.}..foreach.($r.as.$p
62ce0 69 70 65 29 20 7b 0a 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 70 69 70 ipe).{.$type.=.array_search($pip
62d00 65 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 29 3b 0a 24 64 61 74 61 20 3d 20 66 72 65 61 64 28 e,.$this->pipes);.$data.=.fread(
62d20 24 70 69 70 65 2c 20 38 31 39 32 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 64 61 74 61 29 20 $pipe,.8192);.if.(strlen($data).
62d40 3e 20 30 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c >.0).{.call_user_func($callback,
62d60 20 24 74 79 70 65 20 3d 3d 20 31 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a .$type.==.1.?.self::OUT.:.self::
62d80 45 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 ERR,.$data);.}.if.(false.===.$da
62da0 74 61 20 7c 7c 20 66 65 6f 66 28 24 70 69 70 65 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 ta.||.feof($pipe)).{.fclose($pip
62dc0 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a e);.unset($this->pipes[$type]);.
62de0 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 7d 0a }.}.}..$this->updateStatus();.}.
62e00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 ..............public.function.wa
62e20 69 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 it($callback.=.null).{.$this->up
62e40 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d dateStatus();.$callback.=.$this-
62e60 3e 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 77 68 69 6c 65 >buildCallback($callback);.while
62e80 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 20 7c 7c 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f .($this->pipes.||.(defined('PHP_
62ea0 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 WINDOWS_VERSION_BUILD').&&.$this
62ec0 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 ->fileHandles)).{.if.(defined('P
62ee0 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 HP_WINDOWS_VERSION_BUILD').&&.$t
62f00 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 his->fileHandles).{.$this->proce
62f20 73 73 46 69 6c 65 48 61 6e 64 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 21 24 74 68 69 73 2d ssFileHandles($callback,.!$this-
62f40 3e 70 69 70 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 20 7b 0a >pipes);.}..if.($this->pipes).{.
62f60 24 72 20 3d 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 24 77 20 3d 20 6e 75 6c 6c 3b 0a 24 65 $r.=.$this->pipes;.$w.=.null;.$e
62f80 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 6e 20 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 .=.null;..$n.=.@stream_select($r
62fa0 2c 20 24 77 2c 20 24 65 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 29 3b 0a 0a 69 66 20 28 ,.$w,.$e,.$this->timeout);..if.(
62fc0 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 false.===.$n).{.$this->pipes.=.a
62fe0 72 72 61 79 28 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 30 20 3d 3d 3d 20 24 rray();..continue;.}.if.(0.===.$
63000 6e 29 20 7b 0a 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 n).{.proc_terminate($this->proce
63020 73 73 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f ss);..throw.new.\RuntimeExceptio
63040 6e 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 74 69 6d 65 64 20 6f 75 74 2e 27 29 3b 0a 7d 0a 0a n('The.process.timed.out.');.}..
63060 66 6f 72 65 61 63 68 20 28 24 72 20 61 73 20 24 70 69 70 65 29 20 7b 0a 24 74 79 70 65 20 3d 20 foreach.($r.as.$pipe).{.$type.=.
63080 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 70 69 70 65 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 array_search($pipe,.$this->pipes
630a0 29 3b 0a 24 64 61 74 61 20 3d 20 66 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 39 32 29 3b 0a 69 );.$data.=.fread($pipe,.8192);.i
630c0 66 20 28 73 74 72 6c 65 6e 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 f.(strlen($data).>.0).{.call_use
630e0 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 20 3d 3d 20 31 20 3f 20 73 r_func($callback,.$type.==.1.?.s
63100 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a elf::OUT.:.self::ERR,.$data);.}.
63120 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 66 65 6f 66 28 24 70 69 70 if.(false.===.$data.||.feof($pip
63140 65 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 e)).{.fclose($pipe);.unset($this
63160 2d 3e 70 69 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e ->pipes[$type]);.}.}.}.}.$this->
63180 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 updateStatus();.if.($this->proce
631a0 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 29 20 7b 0a 74 68 72 ssInformation['signaled']).{.thr
631c0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 ow.new.\RuntimeException(sprintf
631e0 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 73 74 6f 70 70 65 64 20 62 65 63 61 75 73 65 20 6f 66 ('The.process.stopped.because.of
63200 20 61 20 22 25 73 22 20 73 69 67 6e 61 6c 2e 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 .a."%s".signal.',.$this->process
63220 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a 24 74 69 Information['stopsig']));.}..$ti
63240 6d 65 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 me.=.0;.while.($this->isRunning(
63260 29 20 26 26 20 24 74 69 6d 65 20 3c 20 31 30 30 30 30 30 30 29 20 7b 0a 24 74 69 6d 65 20 2b 3d ).&&.$time.<.1000000).{.$time.+=
63280 20 31 30 30 30 3b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 0a 0a 24 65 78 69 74 63 6f 64 .1000;.usleep(1000);.}..$exitcod
632a0 65 20 3d 20 70 72 6f 63 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a e.=.proc_close($this->process);.
632c0 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 .if.($this->processInformation['
632e0 73 69 67 6e 61 6c 65 64 27 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 signaled']).{.throw.new.\Runtime
63300 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 73 Exception(sprintf('The.process.s
63320 74 6f 70 70 65 64 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 22 25 73 22 20 73 69 67 6e 61 6c 2e topped.because.of.a."%s".signal.
63340 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 ',.$this->processInformation['st
63360 6f 70 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 opsig']));.}..return.$this->exit
63380 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e code.=.$this->processInformation
633a0 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3f 20 24 65 78 69 74 63 6f 64 65 20 3a 20 24 74 68 69 73 2d ['running'].?.$exitcode.:.$this-
633c0 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b >processInformation['exitcode'];
633e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 .}.........public.function.getOu
63400 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4f 75 74 70 75 74 28 29 3b 0a tput().{.$this->updateOutput();.
63420 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .return.$this->stdout;.}........
63440 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 .public.function.getErrorOutput(
63460 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a ).{.$this->updateErrorOutput();.
63480 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .return.$this->stderr;.}........
634a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b .public.function.getExitCode().{
634c0 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 .$this->updateStatus();..return.
634e0 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 $this->exitcode;.}.............p
63500 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 54 65 78 74 28 29 ublic.function.getExitCodeText()
63520 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 .{.$this->updateStatus();..retur
63540 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 74 68 69 73 2d 3e n.isset(self::$exitCodes[$this->
63560 65 78 69 74 63 6f 64 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 74 exitcode]).?.self::$exitCodes[$t
63580 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 his->exitcode].:.'Unknown.error'
635a0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 ;.}.........public.function.isSu
635c0 63 63 65 73 73 66 75 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 ccessful().{.$this->updateStatus
635e0 28 29 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 ();..return.0.==.$this->exitcode
63600 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 ;.}...........public.function.ha
63620 73 42 65 65 6e 53 69 67 6e 61 6c 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 sBeenSignaled().{.$this->updateS
63640 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 tatus();..return.$this->processI
63660 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a nformation['signaled'];.}.......
63680 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 53 69 67 6e 61 ....public.function.getTermSigna
636a0 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 l().{.$this->updateStatus();..re
636c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 turn.$this->processInformation['
636e0 74 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 termsig'];.}...........public.fu
63700 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d nction.hasBeenStopped().{.$this-
63720 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e >updateStatus();..return.$this->
63740 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 70 65 64 27 5d 3b 0a 7d processInformation['stopped'];.}
63760 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 ...........public.function.getSt
63780 6f 70 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 opSignal().{.$this->updateStatus
637a0 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d ();..return.$this->processInform
637c0 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ation['stopsig'];.}.......public
637e0 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 75 6e 6e 69 6e 67 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 .function.isRunning().{.if.(self
63800 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 ::STATUS_STARTED.!==.$this->stat
63820 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 us).{.return.false;.}..$this->up
63840 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f dateStatus();..return.$this->pro
63860 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 3b 0a 7d 0a 0a 0a cessInformation['running'];.}...
63880 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 74 69 ........public.function.stop($ti
638a0 6d 65 6f 75 74 3d 31 30 29 0a 7b 0a 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 20 3d 20 28 69 6e 74 meout=10).{.$timeoutMicro.=.(int
638c0 29 20 24 74 69 6d 65 6f 75 74 2a 31 30 45 36 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 ).$timeout*10E6;.if.($this->isRu
638e0 6e 6e 69 6e 67 28 29 29 20 7b 0a 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 73 2d nning()).{.proc_terminate($this-
63900 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 69 6d 65 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 31 20 3d >process);.$time.=.0;.while.(1.=
63920 3d 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 26 26 20 24 74 69 6d 65 20 3c 20 =.$this->isRunning().&&.$time.<.
63940 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 29 20 7b 0a 24 74 69 6d 65 20 2b 3d 20 31 30 30 30 3b 0a $timeoutMicro).{.$time.+=.1000;.
63960 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d usleep(1000);.}..foreach.($this-
63980 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 >pipes.as.$pipe).{.fclose($pipe)
639a0 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 65 78 ;.}.$this->pipes.=.array();..$ex
639c0 69 74 63 6f 64 65 20 3d 20 70 72 6f 63 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 itcode.=.proc_close($this->proce
639e0 73 73 29 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 2d 31 20 3d 3d 3d 20 24 74 ss);.$this->exitcode.=.-1.===.$t
63a00 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 his->processInformation['exitcod
63a20 65 27 5d 20 3f 20 24 65 78 69 74 63 6f 64 65 20 3a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 e'].?.$exitcode.:.$this->process
63a40 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 0a 69 66 20 28 64 65 Information['exitcode'];..if.(de
63a60 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 fined('PHP_WINDOWS_VERSION_BUILD
63a80 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 ')).{.foreach.($this->fileHandle
63aa0 73 20 61 73 20 24 66 69 6c 65 48 61 6e 64 6c 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 66 69 6c 65 s.as.$fileHandle).{.fclose($file
63ac0 48 61 6e 64 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 Handle);.}.$this->fileHandles.=.
63ae0 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c array();.}.}.$this->status.=.sel
63b00 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 0a 72 65 74 75 72 6e 20 24 74 f::STATUS_TERMINATED;..return.$t
63b20 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f his->exitcode;.}..public.functio
63b40 6e 20 61 64 64 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 6f n.addOutput($line).{.$this->stdo
63b60 75 74 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ut..=.$line;.}..public.function.
63b80 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 addErrorOutput($line).{.$this->s
63ba0 74 64 65 72 72 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tderr..=.$line;.}..public.functi
63bc0 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 on.getCommandLine().{.return.$th
63be0 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 is->commandline;.}..public.funct
63c00 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 29 ion.setCommandLine($commandline)
63c20 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 .{.$this->commandline.=.$command
63c40 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 line;.}..public.function.getTime
63c60 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 3b 0a 7d out().{.return.$this->timeout;.}
63c80 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 .........public.function.setTime
63ca0 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 69 out($timeout).{.if.(null.===.$ti
63cc0 6d 65 6f 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a meout).{.$this->timeout.=.null;.
63ce0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 69 6e 74 65 67 65 72 29 .return;.}..$timeout.=.(integer)
63d00 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b 0a .$timeout;..if.($timeout.<.0).{.
63d20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
63d40 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 ion('The.timeout.value.must.be.a
63d60 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 2e 27 29 3b 0a 7d 0a 0a 24 .valid.positive.integer.');.}..$
63d80 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 this->timeout.=.$timeout;.}..pub
63da0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 lic.function.getWorkingDirectory
63dc0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 77 64 3b 0a 7d 0a 0a 70 75 62 6c 69 ().{.return.$this->cwd;.}..publi
63de0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 24 c.function.setWorkingDirectory($
63e00 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 7d 0a 0a 70 75 62 cwd).{.$this->cwd.=.$cwd;.}..pub
63e20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 lic.function.getEnv().{.return.$
63e40 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 this->env;.}..public.function.se
63e60 74 45 6e 76 28 61 72 72 61 79 20 24 65 6e 76 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 tEnv(array.$env).{.$this->env.=.
63e80 24 65 6e 76 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 64 69 $env;.}..public.function.getStdi
63ea0 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 3b 0a 7d 0a 0a 70 75 n().{.return.$this->stdin;.}..pu
63ec0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 64 69 6e 28 24 73 74 64 69 6e 29 0a 7b blic.function.setStdin($stdin).{
63ee0 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 .$this->stdin.=.$stdin;.}..publi
63f00 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getOptions().{.return
63f20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$this->options;.}..public.funct
63f40 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b ion.setOptions(array.$options).{
63f60 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 70 .$this->options.=.$options;.}..p
63f80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 ublic.function.getEnhanceWindows
63fa0 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e Compatibility().{.return.$this->
63fc0 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a enhanceWindowsCompatibility;.}..
63fe0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 68 61 6e 63 65 57 69 6e 64 6f 77 public.function.setEnhanceWindow
64000 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 24 65 6e 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 sCompatibility($enhance).{.$this
64020 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 ->enhanceWindowsCompatibility.=.
64040 28 42 6f 6f 6c 65 61 6e 29 20 24 65 6e 68 61 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a (Boolean).$enhance;.}...........
64060 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 61 6c 6c 62 61 63 .protected.function.buildCallbac
64080 6b 28 24 63 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 24 6f k($callback).{.$that.=.$this;.$o
640a0 75 74 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 3b 0a 24 65 72 72 20 3d 20 73 65 6c 66 3a 3a 45 52 52 ut.=.self::OUT;.$err.=.self::ERR
640c0 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 ;.$callback.=.function.($type,.$
640e0 64 61 74 61 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 63 61 6c 6c 62 61 63 6b 2c 20 24 6f 75 data).use.($that,.$callback,.$ou
64100 74 2c 20 24 65 72 72 29 20 7b 0a 69 66 20 28 24 6f 75 74 20 3d 3d 20 24 74 79 70 65 29 20 7b 0a t,.$err).{.if.($out.==.$type).{.
64120 24 74 68 61 74 2d 3e 61 64 64 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 20 65 6c 73 65 20 $that->addOutput($data);.}.else.
64140 7b 0a 24 74 68 61 74 2d 3e 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a {.$that->addErrorOutput($data);.
64160 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 63 61 6c }..if.(null.!==.$callback).{.cal
64180 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 2c 20 24 64 l_user_func($callback,.$type,.$d
641a0 61 74 61 29 3b 0a 7d 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 63 61 6c 6c 62 61 63 6b 3b 0a 7d 0a ata);.}.};..return.$callback;.}.
641c0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 53 74 61 ....protected.function.updateSta
641e0 74 75 73 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 tus().{.if.(self::STATUS_STARTED
64200 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a .!==.$this->status).{.return;.}.
64220 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 70 72 6f .$this->processInformation.=.pro
64240 63 5f 67 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 69 66 c_get_status($this->process);.if
64260 20 28 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 .(!$this->processInformation['ru
64280 6e 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a nning']).{.$this->status.=.self:
642a0 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 69 66 20 28 2d 31 20 21 3d 3d 20 24 :STATUS_TERMINATED;.if.(-1.!==.$
642c0 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f this->processInformation['exitco
642e0 64 65 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d de']).{.$this->exitcode.=.$this-
64300 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b >processInformation['exitcode'];
64320 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 .}.}.}..protected.function.updat
64340 65 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 eErrorOutput().{.if.(isset($this
64360 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d 29 20 26 26 20 69 73 5f 72 65 73 ->pipes[self::STDERR]).&&.is_res
64380 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d ource($this->pipes[self::STDERR]
643a0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 73 74 72 65 61 )).{.$this->addErrorOutput(strea
643c0 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 m_get_contents($this->pipes[self
643e0 3a 3a 53 54 44 45 52 52 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ::STDERR]));.}.}..protected.func
64400 74 69 6f 6e 20 75 70 64 61 74 65 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 64 65 66 69 6e 65 tion.updateOutput().{.if.(define
64420 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 d('PHP_WINDOWS_VERSION_BUILD').&
64440 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a &.isset($this->fileHandles[self:
64460 3a 53 54 44 4f 55 54 5d 29 20 26 26 20 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e :STDOUT]).&&.is_resource($this->
64480 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 20 7b 0a 66 73 fileHandles[self::STDOUT])).{.fs
644a0 65 65 6b 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 eek($this->fileHandles[self::STD
644c0 4f 55 54 5d 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 73 65 6c 66 3a 3a 53 54 44 OUT],.$this->readBytes[self::STD
644e0 4f 55 54 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 75 74 70 75 74 28 73 74 72 65 61 6d 5f 67 OUT]);.$this->addOutput(stream_g
64500 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 et_contents($this->fileHandles[s
64520 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 elf::STDOUT]));.}.elseif.(isset(
64540 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 20 26 26 20 69 $this->pipes[self::STDOUT]).&&.i
64560 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 s_resource($this->pipes[self::ST
64580 44 4f 55 54 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 75 74 70 75 74 28 73 74 72 65 61 DOUT])).{.$this->addOutput(strea
645a0 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 m_get_contents($this->pipes[self
645c0 3a 3a 53 54 44 4f 55 54 5d 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ::STDOUT]));.}.}........private.
645e0 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 46 69 6c 65 48 61 6e 64 6c 65 73 28 24 63 61 6c function.processFileHandles($cal
64600 6c 62 61 63 6b 2c 20 24 63 6c 6f 73 65 45 6d 70 74 79 48 61 6e 64 6c 65 73 20 3d 20 66 61 6c 73 lback,.$closeEmptyHandles.=.fals
64620 65 29 0a 7b 0a 24 66 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 3b 0a 66 e).{.$fh.=.$this->fileHandles;.f
64640 6f 72 65 61 63 68 20 28 24 66 68 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 66 69 6c 65 48 61 6e oreach.($fh.as.$type.=>.$fileHan
64660 64 6c 65 29 20 7b 0a 66 73 65 65 6b 28 24 66 69 6c 65 48 61 6e 64 6c 65 2c 20 24 74 68 69 73 2d dle).{.fseek($fileHandle,.$this-
64680 3e 72 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 29 3b 0a 24 64 61 74 61 20 3d 20 66 72 65 61 >readBytes[$type]);.$data.=.frea
646a0 64 28 24 66 69 6c 65 48 61 6e 64 6c 65 2c 20 38 31 39 32 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e d($fileHandle,.8192);.if.(strlen
646c0 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b ($data).>.0).{.$this->readBytes[
646e0 24 74 79 70 65 5d 20 2b 3d 20 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b 0a 63 61 6c 6c 5f 75 73 $type].+=.strlen($data);.call_us
64700 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 20 3d 3d 20 31 20 3f 20 er_func($callback,.$type.==.1.?.
64720 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d self::OUT.:.self::ERR,.$data);.}
64740 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 28 24 63 6c 6f 73 65 45 .if.(false.===.$data.||.($closeE
64760 6d 70 74 79 48 61 6e 64 6c 65 73 20 26 26 20 27 27 20 3d 3d 3d 20 24 64 61 74 61 20 26 26 20 66 mptyHandles.&&.''.===.$data.&&.f
64780 65 6f 66 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 66 69 6c eof($fileHandle))).{.fclose($fil
647a0 65 48 61 6e 64 6c 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c eHandle);.unset($this->fileHandl
647c0 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a es[$type]);.}.}.}.}.<?php.......
647e0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
64800 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 42 75 69 6c Process;.......class.ProcessBuil
64820 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 der.{.private.$arguments;.privat
64840 65 20 24 63 77 64 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 76 3b 0a 70 72 69 76 61 74 65 20 24 73 e.$cwd;.private.$env;.private.$s
64860 74 64 69 6e 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 tdin;.private.$timeout;.private.
64880 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 68 65 72 69 74 45 6e 76 3b 0a 0a $options;.private.$inheritEnv;..
648a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 public.function.__construct(arra
648c0 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d y.$arguments.=.array()).{.$this-
648e0 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 24 74 68 69 73 2d >arguments.=.$arguments;..$this-
64900 3e 74 69 6d 65 6f 75 74 20 3d 20 36 30 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 >timeout.=.60;.$this->options.=.
64920 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 array();.$this->env.=.array();.$
64940 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c this->inheritEnv.=.true;.}..publ
64960 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 61 72 72 61 79 20 ic.static.function.create(array.
64980 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 6e $arguments.=.array()).{.return.n
649a0 65 77 20 73 74 61 74 69 63 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ew.static($arguments);.}.......p
649c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a ublic.function.add($argument).{.
649e0 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a $this->arguments[].=.$argument;.
64a00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .return.$this;.}..public.functio
64a20 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 n.setWorkingDirectory($cwd).{.$t
64a40 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a his->cwd.=.$cwd;..return.$this;.
64a60 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 68 65 72 69 74 45 6e 76 69 72 6f }..public.function.inheritEnviro
64a80 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 28 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 nmentVariables($inheritEnv.=.tru
64aa0 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 24 69 6e 68 65 72 69 e).{.$this->inheritEnv.=.$inheri
64ac0 74 45 6e 76 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 tEnv;..return.$this;.}..public.f
64ae0 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a unction.setEnv($name,.$value).{.
64b00 24 74 68 69 73 2d 3e 65 6e 76 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 $this->env[$name].=.$value;..ret
64b20 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 urn.$this;.}..public.function.se
64b40 74 49 6e 70 75 74 28 24 73 74 64 69 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 tInput($stdin).{.$this->stdin.=.
64b60 24 73 74 64 69 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a $stdin;..return.$this;.}........
64b80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d .public.function.setTimeout($tim
64ba0 65 6f 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 69 6d 65 6f 75 74 29 20 7b eout).{.if.(null.===.$timeout).{
64bc0 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 .$this->timeout.=.null;..return.
64be0 24 74 68 69 73 3b 0a 7d 0a 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 69 6e 74 65 67 65 72 29 20 24 $this;.}..$timeout.=.(integer).$
64c00 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b 0a 74 68 timeout;..if.($timeout.<.0).{.th
64c20 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
64c40 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 76 n('The.timeout.value.must.be.a.v
64c60 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 alid.positive.integer.');.}..$th
64c80 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 72 65 74 75 72 6e 20 is->timeout.=.$timeout;..return.
64ca0 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 $this;.}..public.function.setOpt
64cc0 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 ion($name,.$value).{.$this->opti
64ce0 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 ons[$name].=.$value;..return.$th
64d00 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 is;.}..public.function.getProces
64d20 73 28 29 0a 7b 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 s().{.if.(!count($this->argument
64d40 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 s)).{.throw.new.\LogicException(
64d60 27 59 6f 75 20 6d 75 73 74 20 61 64 64 28 29 20 63 6f 6d 6d 61 6e 64 20 61 72 67 75 6d 65 6e 74 'You.must.add().command.argument
64d80 73 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 67 65 74 50 72 6f 63 65 73 73 28 29 2e 27 29 s.before.calling.getProcess().')
64da0 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a ;.}..$options.=.$this->options;.
64dc0 0a 24 73 63 72 69 70 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 6d 61 .$script.=.implode('.',.array_ma
64de0 70 28 27 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 27 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d p('escapeshellarg',.$this->argum
64e00 65 6e 74 73 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 29 20 ents));..if.($this->inheritEnv).
64e20 7b 0a 24 65 6e 76 20 3d 20 24 74 68 69 73 2d 3e 65 6e 76 20 3f 20 24 74 68 69 73 2d 3e 65 6e 76 {.$env.=.$this->env.?.$this->env
64e40 20 2b 20 24 5f 45 4e 56 20 3a 20 6e 75 6c 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 6e 76 20 3d .+.$_ENV.:.null;.}.else.{.$env.=
64e60 20 24 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 65 .$this->env;.}..return.new.Proce
64e80 73 73 28 24 73 63 72 69 70 74 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 65 6e 76 2c 20 24 74 ss($script,.$this->cwd,.$env,.$t
64ea0 68 69 73 2d 3e 73 74 64 69 6e 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 his->stdin,.$this->timeout,.$opt
64ec0 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ions);.}.}.<?php...........names
64ee0 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 pace.Symfony\Component\Process\E
64f00 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 74 xception;.......interface.Except
64f20 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ionInterface.{.}.<?php..........
64f40 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f .namespace.Symfony\Component\Pro
64f60 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 74 cess\Exception;.......class.Runt
64f80 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 imeException.extends.\RuntimeExc
64fa0 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 eption.implements.ExceptionInter
64fc0 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 face.{.}.<?php...........namespa
64fe0 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 ce.Symfony\Component\Process\Exc
65000 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 eption;..use.Symfony\Component\P
65020 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 rocess\Process;.......class.Proc
65040 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 essFailedException.extends.Runti
65060 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a meException.{.private.$process;.
65080 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f .public.function.__construct(Pro
650a0 63 65 73 73 20 24 70 72 6f 63 65 73 73 29 0a 7b 0a 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 69 cess.$process).{.if.($process->i
650c0 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 sSuccessful()).{.throw.new.\Inva
650e0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 45 78 70 65 63 74 65 64 20 61 lidArgumentException('Expected.a
65100 20 66 61 69 6c 65 64 20 70 72 6f 63 65 73 73 2c 20 62 75 74 20 74 68 65 20 67 69 76 65 6e 20 70 .failed.process,.but.the.given.p
65120 72 6f 63 65 73 73 20 77 61 73 20 73 75 63 63 65 73 73 66 75 6c 2e 27 29 3b 0a 7d 0a 0a 70 61 72 rocess.was.successful.');.}..par
65140 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 0a 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 ent::__construct(.sprintf(.'The.
65160 63 6f 6d 6d 61 6e 64 20 22 25 73 22 20 66 61 69 6c 65 64 2e 27 2e 22 5c 6e 5c 6e 4f 75 74 70 75 command."%s".failed.'."\n\nOutpu
65180 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 22 2e 24 70 72 6f 63 65 73 73 t:\n================\n".$process
651a0 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2e 22 5c 6e 5c 6e 45 72 72 6f 72 20 4f 75 74 70 75 74 3a ->getOutput()."\n\nError.Output:
651c0 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 22 2e 24 70 72 6f 63 65 73 73 2d 3e \n================\n".$process->
651e0 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 getErrorOutput(),.$process->getC
65200 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 0a 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ommandLine().).);..$this->proces
65220 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e s.=.$process;.}..public.function
65240 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 .getProcess().{.return.$this->pr
65260 6f 63 65 73 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ocess;.}.}.<?php...........names
65280 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a pace.Symfony\Component\Process;.
652a0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 .......class.PhpExecutableFinder
652c0 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 70 .{.private.$executableFinder;..p
652e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 ublic.function.__construct().{.$
65300 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 this->executableFinder.=.new.Exe
65320 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 cutableFinder();.}.......public.
65340 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 28 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 function.find().{...if.(defined(
65360 27 50 48 50 5f 42 49 4e 41 52 59 27 29 20 26 26 20 50 48 50 5f 42 49 4e 41 52 59 20 26 26 20 28 'PHP_BINARY').&&.PHP_BINARY.&&.(
65380 27 63 6c 69 27 20 3d 3d 3d 20 50 48 50 5f 53 41 50 49 29 29 20 7b 0a 72 65 74 75 72 6e 20 50 48 'cli'.===.PHP_SAPI)).{.return.PH
653a0 50 5f 42 49 4e 41 52 59 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 27 P_BINARY;.}..if.($php.=.getenv('
653c0 50 48 50 5f 50 41 54 48 27 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 65 78 65 63 75 74 61 62 6c 65 PHP_PATH')).{.if.(!is_executable
653e0 28 24 70 68 70 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 ($php)).{.return.false;.}..retur
65400 6e 20 24 70 68 70 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 27 50 48 n.$php;.}..if.($php.=.getenv('PH
65420 50 5f 50 45 41 52 5f 50 48 50 5f 42 49 4e 27 29 29 20 7b 0a 69 66 20 28 69 73 5f 65 78 65 63 75 P_PEAR_PHP_BIN')).{.if.(is_execu
65440 74 61 62 6c 65 28 24 70 68 70 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 7d 0a table($php)).{.return.$php;.}.}.
65460 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 50 48 50 5f 42 49 4e 44 49 52 29 3b 0a 69 66 20 28 .$dirs.=.array(PHP_BINDIR);.if.(
65480 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 defined('PHP_WINDOWS_VERSION_BUI
654a0 4c 44 27 29 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 27 43 3a 5c 78 61 6d 70 70 5c 70 68 70 5c LD')).{.$dirs[].=.'C:\xampp\php\
654c0 5c 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 \';.}..return.$this->executableF
654e0 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 70 68 70 27 2c 20 66 61 6c 73 65 2c 20 24 64 69 72 73 29 inder->find('php',.false,.$dirs)
65500 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 ;.}.}.<?php...........namespace.
65520 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e Symfony\Component\Console\Comman
65540 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c d;..use.Symfony\Component\Consol
65560 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f e\Input\InputArgument;.use.Symfo
65580 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
655a0 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f Option;.use.Symfony\Component\Co
655c0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 nsole\Input\InputInterface;.use.
655e0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 Symfony\Component\Console\Output
65600 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f \OutputInterface;.use.Symfony\Co
65620 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 3b 0a 75 mponent\Console\Output\Output;.u
65640 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d se.Symfony\Component\Console\Com
65660 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 65 6c 70 43 6f mand\Command;.......class.HelpCo
65680 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 mmand.extends.Command.{.private.
656a0 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e $command;.....protected.function
656c0 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 .configure().{.$this->ignoreVali
656e0 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 3b 0a 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 dationErrors();..$this.->setName
65700 28 27 68 65 6c 70 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a ('help').->setDefinition(array(.
65720 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 new.InputArgument('command_name'
65740 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 ,.InputArgument::OPTIONAL,.'The.
65760 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 27 2c 20 27 68 65 6c 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 command.name',.'help'),.new.Inpu
65780 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e tOption('xml',.null,.InputOption
657a0 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 68 65 6c 70 20 61 73 ::VALUE_NONE,.'To.output.help.as
657c0 20 58 4d 4c 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 69 73 .XML'),.)).->setDescription('Dis
657e0 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 63 6f 6d 6d 61 6e 64 27 29 0a 2d 3e 73 65 74 plays.help.for.a.command').->set
65800 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e Help(<<<EOF.The.<info>%command.n
65820 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 68 65 6c ame%</info>.command.displays.hel
65840 70 20 66 6f 72 20 61 20 67 69 76 65 6e 20 63 6f 6d 6d 61 6e 64 3a 0a 0a 20 20 3c 69 6e 66 6f 3e p.for.a.given.command:....<info>
65860 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 6c 69 73 74 3c 2f 69 6e php.%command.full_name%.list</in
65880 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 70 75 74 20 74 68 65 20 68 65 6c fo>..You.can.also.output.the.hel
658a0 70 20 61 73 20 58 4d 4c 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d p.as.XML.by.using.the.<comment>-
658c0 2d 78 6d 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e -xml</comment>.option:....<info>
658e0 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 78 6d 6c 20 6c 69 php.%command.full_name%.--xml.li
65900 73 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 st</info>.EOF.).;.}.......public
65920 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f .function.setCommand(Command.$co
65940 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 mmand).{.$this->command.=.$comma
65960 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 nd;.}.....protected.function.exe
65980 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 cute(InputInterface.$input,.Outp
659a0 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 utInterface.$output).{.if.(null.
659c0 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d ===.$this->command).{.$this->com
659e0 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e mand.=.$this->getApplication()->
65a00 67 65 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 get($input->getArgument('command
65a20 5f 6e 61 6d 65 27 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 _name'));.}..if.($input->getOpti
65a40 6f 6e 28 27 78 6d 6c 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 on('xml')).{.$output->writeln($t
65a60 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 61 73 58 6d 6c 28 29 2c 20 4f 75 74 70 75 74 49 6e 74 his->command->asXml(),.OutputInt
65a80 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f erface::OUTPUT_RAW);.}.else.{.$o
65aa0 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 61 utput->writeln($this->command->a
65ac0 73 54 65 78 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 sText());.}..$this->command.=.nu
65ae0 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ll;.}.}.<?php...........namespac
65b00 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d e.Symfony\Component\Console\Comm
65b20 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 and;..use.Symfony\Component\Cons
65b40 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 ole\Input\InputDefinition;.use.S
65b60 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
65b80 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e nputOption;.use.Symfony\Componen
65ba0 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 t\Console\Input\InputArgument;.u
65bc0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
65be0 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 ut\InputInterface;.use.Symfony\C
65c00 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e omponent\Console\Output\OutputIn
65c20 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 terface;.use.Symfony\Component\C
65c40 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c onsole\Application;.use.Symfony\
65c60 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 Component\Console\Helper\HelperS
65c80 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 et;.........class.Command.{.priv
65ca0 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b ate.$application;.private.$name;
65cc0 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 65 73 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 69 .private.$aliases;.private.$defi
65ce0 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 3b 0a 70 72 69 76 61 74 65 20 24 nition;.private.$help;.private.$
65d00 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 56 61 6c 69 description;.private.$ignoreVali
65d20 64 61 74 69 6f 6e 45 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 dationErrors;.private.$applicati
65d40 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 64 onDefinitionMerged;.private.$cod
65d60 65 3b 0a 70 72 69 76 61 74 65 20 24 73 79 6e 6f 70 73 69 73 3b 0a 70 72 69 76 61 74 65 20 24 68 e;.private.$synopsis;.private.$h
65d80 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 elperSet;...........public.funct
65da0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ion.__construct($name.=.null).{.
65dc0 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e 70 75 74 44 65 66 $this->definition.=.new.InputDef
65de0 69 6e 69 74 69 6f 6e 28 29 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 inition();.$this->ignoreValidati
65e00 6f 6e 45 72 72 6f 72 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 onErrors.=.false;.$this->applica
65e20 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c 73 65 3b 0a 24 74 tionDefinitionMerged.=.false;.$t
65e40 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 6e 75 6c his->aliases.=.array();..if.(nul
65e60 6c 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4e 61 6d 65 28 24 6e l.!==.$name).{.$this->setName($n
65e80 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 28 29 3b 0a 0a 69 66 ame);.}..$this->configure();..if
65ea0 20 28 21 24 74 68 69 73 2d 3e 6e 61 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 .(!$this->name).{.throw.new.\Log
65ec0 69 63 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 63 61 icException('The.command.name.ca
65ee0 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c nnot.be.empty.');.}.}.......publ
65f00 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f ic.function.ignoreValidationErro
65f20 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 rs().{.$this->ignoreValidationEr
65f40 72 6f 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rors.=.true;.}.........public.fu
65f60 6e 63 74 69 6f 6e 20 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f nction.setApplication(Applicatio
65f80 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e n.$application.=.null).{.$this->
65fa0 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 69 66 20 28 application.=.$application;.if.(
65fc0 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 48 65 6c 70 65 72 $application).{.$this->setHelper
65fe0 53 65 74 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 Set($application->getHelperSet()
66000 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 6e );.}.else.{.$this->helperSet.=.n
66020 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ull;.}.}.......public.function.s
66040 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 etHelperSet(HelperSet.$helperSet
66060 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 ).{.$this->helperSet.=.$helperSe
66080 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 t;.}.......public.function.getHe
660a0 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 lperSet().{.return.$this->helper
660c0 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 Set;.}.........public.function.g
660e0 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e etApplication().{.return.$this->
66100 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 application;.}..........public.f
66120 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 unction.isEnabled().{.return.tru
66140 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 e;.}.....protected.function.conf
66160 69 67 75 72 65 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f igure().{.}..................pro
66180 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 tected.function.execute(InputInt
661a0 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 erface.$input,.OutputInterface.$
661c0 6f 75 74 70 75 74 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 output).{.throw.new.\LogicExcept
661e0 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 65 78 65 63 75 ion('You.must.override.the.execu
66200 74 65 28 29 20 6d 65 74 68 6f 64 20 69 6e 20 74 68 65 20 63 6f 6e 63 72 65 74 65 20 63 6f 6d 6d te().method.in.the.concrete.comm
66220 61 6e 64 20 63 6c 61 73 73 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 and.class.');.}........protected
66240 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 .function.interact(InputInterfac
66260 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 e.$input,.OutputInterface.$outpu
66280 74 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 t).{.}...........protected.funct
662a0 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 ion.initialize(InputInterface.$i
662c0 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b nput,.OutputInterface.$output).{
662e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .}...................public.func
66300 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 tion.run(InputInterface.$input,.
66320 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 74 68 OutputInterface.$output).{...$th
66340 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 6d 65 72 is->getSynopsis();....$this->mer
66360 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a 0a 20 74 72 geApplicationDefinition();....tr
66380 79 20 7b 0a 24 69 6e 70 75 74 2d 3e 62 69 6e 64 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 y.{.$input->bind($this->definiti
663a0 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 on);.}.catch.(\Exception.$e).{.i
663c0 66 20 28 21 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 f.(!$this->ignoreValidationError
663e0 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 s).{.throw.$e;.}.}..$this->initi
66400 61 6c 69 7a 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 24 69 6e alize($input,.$output);..if.($in
66420 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 put->isInteractive()).{.$this->i
66440 6e 74 65 72 61 63 74 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 69 6e nteract($input,.$output);.}..$in
66460 70 75 74 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 64 put->validate();..if.($this->cod
66480 65 29 20 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 74 68 69 73 e).{.return.call_user_func($this
664a0 2d 3e 63 6f 64 65 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 74 ->code,.$input,.$output);.}..ret
664c0 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 urn.$this->execute($input,.$outp
664e0 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ut);.}................public.fun
66500 63 74 69 6f 6e 20 73 65 74 43 6f 64 65 28 5c 43 6c 6f 73 75 72 65 20 24 63 6f 64 65 29 0a 7b 0a ction.setCode(\Closure.$code).{.
66520 24 74 68 69 73 2d 3e 63 6f 64 65 20 3d 20 24 63 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 $this->code.=.$code;..return.$th
66540 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 65 72 67 65 is;.}.....private.function.merge
66560 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 69 66 20 28 6e 75 ApplicationDefinition().{.if.(nu
66580 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 7c 7c 20 74 72 75 ll.===.$this->application.||.tru
665a0 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 e.===.$this->applicationDefiniti
665c0 6f 6e 4d 65 72 67 65 64 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 75 72 72 65 6e 74 41 onMerged).{.return;.}..$currentA
665e0 72 67 75 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 rguments.=.$this->definition->ge
66600 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d tArguments();.$this->definition-
66620 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e >setArguments($this->application
66640 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 ->getDefinition()->getArguments(
66660 29 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 ));.$this->definition->addArgume
66680 6e 74 73 28 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 29 3b 0a 0a 24 74 68 69 73 2d 3e nts($currentArguments);..$this->
666a0 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 74 68 69 73 2d 3e 61 70 definition->addOptions($this->ap
666c0 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f plication->getDefinition()->getO
666e0 70 74 69 6f 6e 73 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 ptions());..$this->applicationDe
66700 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a finitionMerged.=.true;.}........
66720 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e ...public.function.setDefinition
66740 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 ($definition).{.if.($definition.
66760 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 instanceof.InputDefinition).{.$t
66780 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d his->definition.=.$definition;.}
667a0 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 44 65 .else.{.$this->definition->setDe
667c0 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d finition($definition);.}..$this-
667e0 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 66 >applicationDefinitionMerged.=.f
66800 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 alse;..return.$this;.}.........p
66820 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b ublic.function.getDefinition().{
66840 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a .return.$this->definition;.}....
66860 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 74 69 ......protected.function.getNati
66880 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 veDefinition().{.return.$this->g
668a0 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 etDefinition();.}..............p
668c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 ublic.function.addArgument($name
668e0 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 ,.$mode.=.null,.$description.=.'
66900 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 ',.$default.=.null).{.$this->def
66920 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 6e 65 77 20 49 6e 70 75 74 41 72 inition->addArgument(new.InputAr
66940 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f gument($name,.$mode,.$descriptio
66960 6e 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a n,.$default));..return.$this;.}.
66980 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 ..............public.function.ad
669a0 64 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 2c dOption($name,.$shortcut.=.null,
669c0 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 .$mode.=.null,.$description.=.''
669e0 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 ,.$default.=.null).{.$this->defi
66a00 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f nition->addOption(new.InputOptio
66a20 6e 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 n($name,.$shortcut,.$mode,.$desc
66a40 72 69 70 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 ription,.$default));..return.$th
66a60 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 is;.}..................public.fu
66a80 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 nction.setName($name).{.$this->v
66aa0 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 alidateName($name);..$this->name
66ac0 20 3d 20 24 6e 61 6d 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .=.$name;..return.$this;.}......
66ae0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 ...public.function.getName().{.r
66b00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 eturn.$this->name;.}...........p
66b20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 64 ublic.function.setDescription($d
66b40 65 73 63 72 69 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e escription).{.$this->description
66b60 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a .=.$description;..return.$this;.
66b80 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 }.........public.function.getDes
66ba0 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 cription().{.return.$this->descr
66bc0 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 iption;.}...........public.funct
66be0 69 6f 6e 20 73 65 74 48 65 6c 70 28 24 68 65 6c 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 ion.setHelp($help).{.$this->help
66c00 20 3d 20 24 68 65 6c 70 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .=.$help;..return.$this;.}......
66c20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 72 ...public.function.getHelp().{.r
66c40 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c eturn.$this->help;.}........publ
66c60 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 0a 7b ic.function.getProcessedHelp().{
66c80 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 0a 24 70 6c 61 63 65 68 6f 6c .$name.=.$this->name;..$placehol
66ca0 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 27 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 27 2c 0a ders.=.array(.'%command.name%',.
66cc0 27 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 27 0a 29 3b 0a 24 72 65 70 6c 61 63 '%command.full_name%'.);.$replac
66ce0 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 24 6e 61 6d 65 2c 0a 24 5f 53 45 52 56 45 52 5b ements.=.array(.$name,.$_SERVER[
66d00 27 50 48 50 5f 53 45 4c 46 27 5d 2e 27 20 27 2e 24 6e 61 6d 65 0a 29 3b 0a 0a 72 65 74 75 72 6e 'PHP_SELF'].'.'.$name.);..return
66d20 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 2c 20 24 72 65 70 .str_replace($placeholders,.$rep
66d40 6c 61 63 65 6d 65 6e 74 73 2c 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 29 29 3b 0a 7d 0a lacements,.$this->getHelp());.}.
66d60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 ..........public.function.setAli
66d80 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 ases($aliases).{.foreach.($alias
66da0 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 4e es.as.$alias).{.$this->validateN
66dc0 61 6d 65 28 24 61 6c 69 61 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d ame($alias);.}..$this->aliases.=
66de0 20 24 61 6c 69 61 73 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a .$aliases;..return.$this;.}.....
66e00 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 ....public.function.getAliases()
66e20 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a .{.return.$this->aliases;.}.....
66e40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 29 0a ..public.function.getSynopsis().
66e60 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 29 20 {.if.(null.===.$this->synopsis).
66e80 7b 0a 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 20 3d 20 74 72 69 6d 28 73 70 72 69 6e 74 66 {.$this->synopsis.=.trim(sprintf
66ea0 28 27 25 73 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 ('%s.%s',.$this->name,.$this->de
66ec0 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 29 29 3b 0a 7d 0a 0a 72 65 finition->getSynopsis()));.}..re
66ee0 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$this->synopsis;.}.........
66f00 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 28 24 6e ....public.function.getHelper($n
66f20 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e ame).{.return.$this->helperSet->
66f40 67 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 get($name);.}.......public.funct
66f60 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 ion.asText().{.$messages.=.array
66f80 28 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 0a 27 (.'<comment>Usage:</comment>',.'
66fa0 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 0a 27 27 2c 0a 29 3b 0a .'.$this->getSynopsis(),.'',.);.
66fc0 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 7b 0a 24 6d 65 73 .if.($this->getAliases()).{.$mes
66fe0 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 41 6c 69 61 73 65 73 3a 3c 2f 63 6f sages[].=.'<comment>Aliases:</co
67000 6d 6d 65 6e 74 3e 20 3c 69 6e 66 6f 3e 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 74 68 mment>.<info>'.implode(',.',.$th
67020 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 2e 27 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a is->getAliases()).'</info>';.}..
67040 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 $messages[].=.$this->getNativeDe
67060 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 61 73 54 65 78 74 28 29 3b 0a 0a 69 66 20 28 24 68 65 6c 70 finition()->asText();..if.($help
67080 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 20 7b 0a .=.$this->getProcessedHelp()).{.
670a0 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 48 65 6c 70 3a 3c 2f 63 $messages[].=.'<comment>Help:</c
670c0 6f 6d 6d 65 6e 74 3e 27 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 20 27 2e 73 74 72 5f omment>';.$messages[].=.'.'.str_
670e0 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 68 65 6c 70 29 2e 22 5c 6e 22 replace("\n",."\n.",.$help)."\n"
67100 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 ;.}..return.implode("\n",.$messa
67120 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ges);.}.........public.function.
67140 61 73 58 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e asXml($asDom.=.false).{.$dom.=.n
67160 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b ew.\DOMDocument('1.0',.'UTF-8');
67180 0a 24 64 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 64 6f 6d .$dom->formatOutput.=.true;.$dom
671a0 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 3d 20 24 64 6f 6d ->appendChild($commandXML.=.$dom
671c0 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 3b 0a 24 63 6f ->createElement('command'));.$co
671e0 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c 20 24 74 68 mmandXML->setAttribute('id',.$th
67200 69 73 2d 3e 6e 61 6d 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 is->name);.$commandXML->setAttri
67220 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 29 3b 0a 0a 24 63 6f 6d bute('name',.$this->name);..$com
67240 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 75 73 61 67 65 58 4d 4c 20 3d mandXML->appendChild($usageXML.=
67260 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 75 73 61 67 65 27 29 29 3b 0a .$dom->createElement('usage'));.
67280 24 75 73 61 67 65 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 $usageXML->appendChild($dom->cre
672a0 61 74 65 54 65 78 74 4e 6f 64 65 28 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 67 65 74 53 79 ateTextNode(sprintf($this->getSy
672c0 6e 6f 70 73 69 73 28 29 2c 20 27 27 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 nopsis(),.'')));..$commandXML->a
672e0 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f ppendChild($descriptionXML.=.$do
67300 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 m->createElement('description'))
67320 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 ;.$descriptionXML->appendChild($
67340 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 dom->createTextNode(str_replace(
67360 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 "\n",."\n.",.$this->getDescripti
67380 6f 6e 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 on())));..$commandXML->appendChi
673a0 6c 64 28 24 68 65 6c 70 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e ld($helpXML.=.$dom->createElemen
673c0 74 28 27 68 65 6c 70 27 29 29 3b 0a 24 68 65 6c 70 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c t('help'));.$helpXML->appendChil
673e0 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 d($dom->createTextNode(str_repla
67400 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 ce("\n",."\n.",.$this->getProces
67420 73 65 64 48 65 6c 70 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 sedHelp())));..$commandXML->appe
67440 6e 64 43 68 69 6c 64 28 24 61 6c 69 61 73 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 ndChild($aliasesXML.=.$dom->crea
67460 74 65 45 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 65 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 teElement('aliases'));.foreach.(
67480 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b $this->getAliases().as.$alias).{
674a0 0a 24 61 6c 69 61 73 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 6c 69 61 73 .$aliasesXML->appendChild($alias
674c0 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 XML.=.$dom->createElement('alias
674e0 27 29 29 3b 0a 24 61 6c 69 61 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d '));.$aliasXML->appendChild($dom
67500 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 6c 69 61 73 29 29 3b 0a 7d 0a 0a 24 64 ->createTextNode($alias));.}..$d
67520 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 efinition.=.$this->getNativeDefi
67540 6e 69 74 69 6f 6e 28 29 2d 3e 61 73 58 6d 6c 28 74 72 75 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 nition()->asXml(true);.$commandX
67560 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 ML->appendChild($dom->importNode
67580 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 ($definition->getElementsByTagNa
675a0 6d 65 28 27 61 72 67 75 6d 65 6e 74 73 27 29 2d 3e 69 74 65 6d 28 30 29 2c 20 74 72 75 65 29 29 me('arguments')->item(0),.true))
675c0 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d ;.$commandXML->appendChild($dom-
675e0 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 45 6c 65 6d >importNode($definition->getElem
67600 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 6f 70 74 69 6f 6e 73 27 29 2d 3e 69 74 65 6d 28 30 entsByTagName('options')->item(0
67620 29 2c 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 3f 20 24 64 6f 6d ),.true));..return.$asDom.?.$dom
67640 20 3a 20 24 64 6f 6d 2d 3e 73 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 .:.$dom->saveXml();.}..private.f
67660 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 unction.validateName($name).{.if
67680 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 5e 5c 3a 5d 2b 28 5c 3a 5b 5e 5c 3a 5d 2b .(!preg_match('/^[^\:]+(\:[^\:]+
676a0 29 2a 24 2f 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 )*$/',.$name)).{.throw.new.\Inva
676c0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f lidArgumentException(sprintf('Co
676e0 6d 6d 61 6e 64 20 6e 61 6d 65 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c 69 64 2e 27 2c 20 24 6e mmand.name."%s".is.invalid.',.$n
67700 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d ame));.}.}.}.<?php...........nam
67720 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 espace.Symfony\Component\Console
67740 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 \Command;..use.Symfony\Component
67760 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 \Console\Input\InputArgument;.us
67780 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
677a0 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f t\InputOption;.use.Symfony\Compo
677c0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 nent\Console\Input\InputInterfac
677e0 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 e;.use.Symfony\Component\Console
67800 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d \Output\OutputInterface;.use.Sym
67820 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 fony\Component\Console\Output\Ou
67840 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tput;.use.Symfony\Component\Cons
67860 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 ole\Command\Command;.use.Symfony
67880 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 \Component\Console\Input\InputDe
678a0 66 69 6e 69 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 73 74 43 6f 6d 6d 61 6e finition;.......class.ListComman
678c0 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 d.extends.Command.{....protected
678e0 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e .function.configure().{.$this.->
67900 73 65 74 4e 61 6d 65 28 27 6c 69 73 74 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 setName('list').->setDefinition(
67920 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 0a 2d 3e 73 65 74 $this->createDefinition()).->set
67940 44 65 73 63 72 69 70 74 69 6f 6e 28 27 4c 69 73 74 73 20 63 6f 6d 6d 61 6e 64 73 27 29 0a 2d 3e Description('Lists.commands').->
67960 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e setHelp(<<<EOF.The.<info>%comman
67980 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 73 20 61 6c 6c d.name%</info>.command.lists.all
679a0 20 63 6f 6d 6d 61 6e 64 73 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 .commands:....<info>php.%command
679c0 2e 66 75 6c 6c 5f 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f .full_name%</info>..You.can.also
679e0 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 61 20 73 70 65 63 .display.the.commands.for.a.spec
67a00 69 66 69 63 20 6e 61 6d 65 73 70 61 63 65 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f ific.namespace:....<info>php.%co
67a20 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 74 65 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f mmand.full_name%.test</info>..Yo
67a40 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 70 75 74 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f u.can.also.output.the.informatio
67a60 6e 20 61 73 20 58 4d 4c 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d n.as.XML.by.using.the.<comment>-
67a80 2d 78 6d 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e -xml</comment>.option:....<info>
67aa0 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 78 6d 6c 3c 2f 69 php.%command.full_name%.--xml</i
67ac0 6e 66 6f 3e 0a 0a 49 74 27 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 67 65 74 20 nfo>..It's.also.possible.to.get.
67ae0 72 61 77 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 28 75 73 65 66 75 6c 20 66 6f 72 raw.list.of.commands.(useful.for
67b00 20 65 6d 62 65 64 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 72 75 6e 6e 65 72 29 3a 0a 0a 20 20 3c .embedding.command.runner):....<
67b20 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 72 info>php.%command.full_name%.--r
67b40 61 77 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 aw</info>.EOF.).;.}.....protecte
67b60 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 d.function.getNativeDefinition()
67b80 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f .{.return.$this->createDefinitio
67ba0 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 n();.}.....protected.function.ex
67bc0 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 ecute(InputInterface.$input,.Out
67be0 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 putInterface.$output).{.if.($inp
67c00 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d ut->getOption('xml')).{.$output-
67c20 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 >writeln($this->getApplication()
67c40 2d 3e 61 73 58 6d 6c 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d ->asXml($input->getArgument('nam
67c60 65 73 70 61 63 65 27 29 29 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 espace')),.OutputInterface::OUTP
67c80 55 54 5f 52 41 57 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 UT_RAW);.}.else.{.$output->write
67ca0 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 61 73 54 65 ln($this->getApplication()->asTe
67cc0 78 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 xt($input->getArgument('namespac
67ce0 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 29 29 3b e'),.$input->getOption('raw')));
67d00 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 .}.}..private.function.createDef
67d20 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 inition().{.return.new.InputDefi
67d40 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 nition(array(.new.InputArgument(
67d60 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 'namespace',.InputArgument::OPTI
67d80 4f 4e 41 4c 2c 20 27 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 ONAL,.'The.namespace.name'),.new
67da0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f .InputOption('xml',.null,.InputO
67dc0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 68 65 ption::VALUE_NONE,.'To.output.he
67de0 6c 70 20 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 61 lp.as.XML'),.new.InputOption('ra
67e00 77 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e w',.null,.InputOption::VALUE_NON
67e20 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 72 61 77 20 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 27 29 E,.'To.output.raw.command.list')
67e40 2c 0a 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ,.));.}.}.<?php...........namesp
67e60 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 54 65 ace.Symfony\Component\Console\Te
67e80 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ster;..use.Symfony\Component\Con
67ea0 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f sole\Application;.use.Symfony\Co
67ec0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 mponent\Console\Input\ArrayInput
67ee0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
67f00 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e Input\InputInterface;.use.Symfon
67f20 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 y\Component\Console\Output\Outpu
67f40 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tInterface;.use.Symfony\Componen
67f60 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 0a t\Console\Output\StreamOutput;..
67f80 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 54 65 73 74 65 72 0a 7b 0a 70 .....class.ApplicationTester.{.p
67fa0 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 69 6e rivate.$application;.private.$in
67fc0 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c put;.private.$output;.......publ
67fe0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 70 70 6c 69 63 61 74 ic.function.__construct(Applicat
68000 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 ion.$application).{.$this->appli
68020 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a cation.=.$application;.}........
68040 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 61 72 72 61 ........public.function.run(arra
68060 79 20 24 69 6e 70 75 74 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a y.$input,.$options.=.array()).{.
68080 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 24 69 $this->input.=.new.ArrayInput($i
680a0 6e 70 75 74 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 nput);.if.(isset($options['inter
680c0 61 63 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e active'])).{.$this->input->setIn
680e0 74 65 72 61 63 74 69 76 65 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 teractive($options['interactive'
68100 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 ]);.}..$this->output.=.new.Strea
68120 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 mOutput(fopen('php://memory',.'w
68140 27 2c 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 ',.false));.if.(isset($options['
68160 64 65 63 6f 72 61 74 65 64 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 decorated'])).{.$this->output->s
68180 65 74 44 65 63 6f 72 61 74 65 64 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 etDecorated($options['decorated'
681a0 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 ]);.}.if.(isset($options['verbos
681c0 69 74 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 ity'])).{.$this->output->setVerb
681e0 6f 73 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a osity($options['verbosity']);.}.
68200 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 .return.$this->application->run(
68220 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a $this->input,.$this->output);.}.
68240 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 70 6c 61 79 ......public.function.getDisplay
68260 28 29 0a 7b 0a 72 65 77 69 6e 64 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 ().{.rewind($this->output->getSt
68280 72 65 61 6d 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 ream());..return.stream_get_cont
682a0 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 ents($this->output->getStream())
682c0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 ;.}.......public.function.getInp
682e0 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a ut().{.return.$this->input;.}...
68300 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a ....public.function.getOutput().
68320 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 {.return.$this->output;.}.}.<?ph
68340 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
68360 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 54 65 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d mponent\Console\Tester;..use.Sym
68380 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 fony\Component\Console\Command\C
683a0 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ommand;.use.Symfony\Component\Co
683c0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 nsole\Input\ArrayInput;.use.Symf
683e0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 ony\Component\Console\Output\Str
68400 65 61 6d 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 54 65 eamOutput;.......class.CommandTe
68420 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 ster.{.private.$command;.private
68440 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a .$input;.private.$output;.......
68460 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d public.function.__construct(Comm
68480 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d and.$command).{.$this->command.=
684a0 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .$command;.}................publ
684c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 61 72 72 61 79 20 24 69 6e 70 75 74 ic.function.execute(array.$input
684e0 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 ,.array.$options.=.array()).{.$t
68500 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 24 69 6e 70 his->input.=.new.ArrayInput($inp
68520 75 74 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 ut);.if.(isset($options['interac
68540 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 tive'])).{.$this->input->setInte
68560 72 61 63 74 69 76 65 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 ractive($options['interactive'])
68580 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f ;.}..$this->output.=.new.StreamO
685a0 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c utput(fopen('php://memory',.'w',
685c0 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 .false));.if.(isset($options['de
685e0 63 6f 72 61 74 65 64 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 corated'])).{.$this->output->set
68600 44 65 63 6f 72 61 74 65 64 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 Decorated($options['decorated'])
68620 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 ;.}.if.(isset($options['verbosit
68640 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 y'])).{.$this->output->setVerbos
68660 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a 0a 72 ity($options['verbosity']);.}..r
68680 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 74 68 69 73 2d eturn.$this->command->run($this-
686a0 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a >input,.$this->output);.}.......
686c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 70 6c 61 79 28 29 0a 7b 0a 72 public.function.getDisplay().{.r
686e0 65 77 69 6e 64 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 ewind($this->output->getStream()
68700 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 );..return.stream_get_contents($
68720 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 7d 0a 0a 0a this->output->getStream());.}...
68740 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b ....public.function.getInput().{
68760 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 .return.$this->input;.}.......pu
68780 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 blic.function.getOutput().{.retu
687a0 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a rn.$this->output;.}.}.<?php.....
687c0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
687e0 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f t\Console\Formatter;.....class.O
68800 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 0a 7b 0a 0a 0a 0a 70 72 utputFormatterStyleStack.{....pr
68820 69 76 61 74 65 20 24 73 74 79 6c 65 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 ivate.$styles;.....private.$empt
68840 79 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f yStyle;.......public.function.__
68860 63 6f 6e 73 74 72 75 63 74 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e construct(OutputFormatterStyleIn
68880 74 65 72 66 61 63 65 20 24 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 terface.$emptyStyle.=.null).{.$t
688a0 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 24 65 6d 70 74 79 53 74 79 6c 65 20 3f 3a his->emptyStyle.=.$emptyStyle.?:
688c0 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 24 74 68 .new.OutputFormatterStyle();.$th
688e0 69 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 is->reset();.}.....public.functi
68900 6f 6e 20 72 65 73 65 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 20 3d 20 61 72 72 on.reset().{.$this->styles.=.arr
68920 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 75 ay();.}.......public.function.pu
68940 73 68 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 sh(OutputFormatterStyleInterface
68960 20 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 5d 20 3d 20 24 73 74 .$style).{.$this->styles[].=.$st
68980 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e yle;.}...........public.function
689a0 20 70 6f 70 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 .pop(OutputFormatterStyleInterfa
689c0 63 65 20 24 73 74 79 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 74 ce.$style.=.null).{.if.(empty($t
689e0 68 69 73 2d 3e 73 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d his->styles)).{.return.$this->em
68a00 70 74 79 53 74 79 6c 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 74 79 6c 65 ptyStyle;.}..if.(null.===.$style
68a20 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 73 74 79 6c ).{.return.array_pop($this->styl
68a40 65 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 es);.}..foreach.(array_reverse($
68a60 74 68 69 73 2d 3e 73 74 79 6c 65 73 2c 20 74 72 75 65 29 20 61 73 20 24 69 6e 64 65 78 20 3d 3e this->styles,.true).as.$index.=>
68a80 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 29 20 7b 0a 69 66 20 28 24 73 74 79 6c 65 2d 3e 61 70 .$stackedStyle).{.if.($style->ap
68aa0 70 6c 79 28 27 27 29 20 3d 3d 3d 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 2d 3e 61 70 70 6c 79 ply('').===.$stackedStyle->apply
68ac0 28 27 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 5f 73 6c ('')).{.$this->styles.=.array_sl
68ae0 69 63 65 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 2c 20 30 2c 20 24 69 6e 64 65 78 29 3b 0a 0a ice($this->styles,.0,.$index);..
68b00 72 65 74 75 72 6e 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 return.$stackedStyle;.}.}..throw
68b20 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 .new.\InvalidArgumentException('
68b40 49 6e 63 6f 72 72 65 63 74 6c 79 20 6e 65 73 74 65 64 20 73 74 79 6c 65 20 74 61 67 20 66 6f 75 Incorrectly.nested.style.tag.fou
68b60 6e 64 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 nd.');.}.......public.function.g
68b80 65 74 43 75 72 72 65 6e 74 28 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 73 etCurrent().{.if.(empty($this->s
68ba0 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 tyles)).{.return.$this->emptySty
68bc0 6c 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 63 6f 75 6e le;.}..return.$this->styles[coun
68be0 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 2d 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 t($this->styles)-1];.}.......pub
68c00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d 70 74 79 53 74 79 6c 65 28 4f 75 74 70 75 lic.function.setEmptyStyle(Outpu
68c20 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 65 6d 70 74 79 53 tFormatterStyleInterface.$emptyS
68c40 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 24 65 6d 70 tyle).{.$this->emptyStyle.=.$emp
68c60 74 79 53 74 79 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 tyStyle;..return.$this;.}.....pu
68c80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6d 70 74 79 53 74 79 6c 65 28 29 0a 7b 0a blic.function.getEmptyStyle().{.
68ca0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 3b 0a 7d 0a 7d 0a 3c 3f return.$this->emptyStyle;.}.}.<?
68cc0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
68ce0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a Component\Console\Formatter;....
68d00 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 20 .....class.OutputFormatterStyle.
68d20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 implements.OutputFormatterStyleI
68d40 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c nterface.{.private.static.$avail
68d60 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 27 62 ableForegroundColors.=.array(.'b
68d80 6c 61 63 6b 27 20 3d 3e 20 33 30 2c 0a 27 72 65 64 27 20 3d 3e 20 33 31 2c 0a 27 67 72 65 65 6e lack'.=>.30,.'red'.=>.31,.'green
68da0 27 20 3d 3e 20 33 32 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 33 33 2c 0a 27 62 6c 75 65 27 20 '.=>.32,.'yellow'.=>.33,.'blue'.
68dc0 3d 3e 20 33 34 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 33 35 2c 0a 27 63 79 61 6e 27 20 3d =>.34,.'magenta'.=>.35,.'cyan'.=
68de0 3e 20 33 36 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 33 37 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 >.36,.'white'.=>.37.);.private.s
68e00 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 tatic.$availableBackgroundColors
68e20 20 3d 20 61 72 72 61 79 28 0a 27 62 6c 61 63 6b 27 20 3d 3e 20 34 30 2c 0a 27 72 65 64 27 20 3d .=.array(.'black'.=>.40,.'red'.=
68e40 3e 20 34 31 2c 0a 27 67 72 65 65 6e 27 20 3d 3e 20 34 32 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e >.41,.'green'.=>.42,.'yellow'.=>
68e60 20 34 33 2c 0a 27 62 6c 75 65 27 20 3d 3e 20 34 34 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 .43,.'blue'.=>.44,.'magenta'.=>.
68e80 34 35 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 34 36 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 34 37 0a 45,.'cyan'.=>.46,.'white'.=>.47.
68ea0 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 );.private.static.$availableOpti
68ec0 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 62 6f 6c 64 27 20 3d 3e 20 31 2c 0a 27 75 6e 64 65 72 ons.=.array(.'bold'.=>.1,.'under
68ee0 73 63 6f 72 65 27 20 3d 3e 20 34 2c 0a 27 62 6c 69 6e 6b 27 20 3d 3e 20 35 2c 0a 27 72 65 76 65 score'.=>.4,.'blink'.=>.5,.'reve
68f00 72 73 65 27 20 3d 3e 20 37 2c 0a 27 63 6f 6e 63 65 61 6c 27 20 3d 3e 20 38 0a 29 3b 0a 0a 70 72 rse'.=>.7,.'conceal'.=>.8.);..pr
68f20 69 76 61 74 65 20 24 66 6f 72 65 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 62 61 63 6b ivate.$foreground;.private.$back
68f40 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 ground;.private.$options.=.array
68f60 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ();...........public.function.__
68f80 63 6f 6e 73 74 72 75 63 74 28 24 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 24 62 construct($foreground.=.null,.$b
68fa0 61 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 ackground.=.null,.array.$options
68fc0 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 66 6f 72 65 .=.array()).{.if.(null.!==.$fore
68fe0 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 ground).{.$this->setForeground($
69000 66 6f 72 65 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 62 61 63 foreground);.}.if.(null.!==.$bac
69020 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 kground).{.$this->setBackground(
69040 24 62 61 63 6b 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 24 6f 70 74 69 6f $background);.}.if.(count($optio
69060 6e 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e ns)).{.$this->setOptions($option
69080 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s);.}.}...........public.functio
690a0 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b n.setForeground($color.=.null).{
690c0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 66 .if.(null.===.$color).{.$this->f
690e0 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 oreground.=.null;..return;.}..if
69100 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 .(!isset(static::$availableForeg
69120 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 roundColors[$color])).{.throw.ne
69140 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\InvalidArgumentException(spri
69160 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 ntf(.'Invalid.foreground.color.s
69180 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 pecified:."%s"..Expected.one.of.
691a0 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 (%s)',.$color,.implode(',.',.arr
691c0 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 ay_keys(static::$availableForegr
691e0 6f 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 oundColors)).));.}..$this->foreg
69200 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 round.=.static::$availableForegr
69220 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a oundColors[$color];.}...........
69240 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 63 public.function.setBackground($c
69260 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c olor.=.null).{.if.(null.===.$col
69280 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a or).{.$this->background.=.null;.
692a0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 .return;.}..if.(!isset(static::$
692c0 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 availableBackgroundColors[$color
692e0 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 ])).{.throw.new.\InvalidArgument
69300 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 62 61 63 6b Exception(sprintf(.'Invalid.back
69320 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 ground.color.specified:."%s"..Ex
69340 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 pected.one.of.(%s)',.$color,.imp
69360 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 lode(',.',.array_keys(static::$a
69380 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d vailableBackgroundColors)).));.}
693a0 0a 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 ..$this->background.=.static::$a
693c0 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d vailableBackgroundColors[$color]
693e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ;.}...........public.function.se
69400 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 tOption($option).{.if.(!isset(st
69420 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d atic::$availableOptions[$option]
69440 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
69460 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f xception(sprintf(.'Invalid.optio
69480 6e 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 n.specified:."%s"..Expected.one.
694a0 6f 66 20 28 25 73 29 27 2c 0a 24 6f 70 74 69 6f 6e 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c of.(%s)',.$option,.implode(',.',
694c0 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 .array_keys(static::$availableOp
694e0 74 69 6f 6e 73 29 29 0a 29 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 61 72 72 tions)).));.}..if.(false.===.arr
69500 61 79 5f 73 65 61 72 63 68 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 ay_search(static::$availableOpti
69520 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b ons[$option],.$this->options)).{
69540 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 .$this->options[].=.static::$ava
69560 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ilableOptions[$option];.}.}.....
69580 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e .....public.function.unsetOption
695a0 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 ($option).{.if.(!isset(static::$
695c0 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 availableOptions[$option])).{.th
695e0 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
69600 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 n(sprintf(.'Invalid.option.speci
69620 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 fied:."%s"..Expected.one.of.(%s)
69640 27 2c 0a 24 6f 70 74 69 6f 6e 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f ',.$option,.implode(',.',.array_
69660 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 29 29 keys(static::$availableOptions))
69680 0a 29 29 3b 0a 7d 0a 0a 24 70 6f 73 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 73 74 61 74 .));.}..$pos.=.array_search(stat
696a0 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 ic::$availableOptions[$option],.
696c0 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 $this->options);.if.(false.!==.$
696e0 70 6f 73 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 70 6f 73 pos).{.unset($this->options[$pos
69700 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ]);.}.}.......public.function.se
69720 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 tOptions(array.$options).{.$this
69740 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 ->options.=.array();..foreach.($
69760 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 options.as.$option).{.$this->set
69780 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 Option($option);.}.}.........pub
697a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 0a 7b 0a 24 63 6f 64 lic.function.apply($text).{.$cod
697c0 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 es.=.array();..if.(null.!==.$thi
697e0 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 29 20 7b 0a 24 63 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 s->foreground).{.$codes[].=.$thi
69800 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 s->foreground;.}.if.(null.!==.$t
69820 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 63 6f 64 65 73 5b 5d 20 3d 20 24 74 his->background).{.$codes[].=.$t
69840 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 his->background;.}.if.(count($th
69860 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 24 63 6f 64 65 73 20 3d 20 61 72 72 61 79 5f 6d is->options)).{.$codes.=.array_m
69880 65 72 67 65 28 24 63 6f 64 65 73 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a erge($codes,.$this->options);.}.
698a0 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5c 30 33 33 5b 25 73 6d 25 73 5c 30 33 33 5b .return.sprintf("\033[%sm%s\033[
698c0 30 6d 22 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 2c 20 24 63 6f 64 65 73 29 2c 20 24 74 65 78 74 0m",.implode(';',.$codes),.$text
698e0 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 );.}.}.<?php...........namespace
69900 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 .Symfony\Component\Console\Forma
69920 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 46 6f tter;.........interface.OutputFo
69940 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 rmatterStyleInterface.{........p
69960 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f ublic.function.setForeground($co
69980 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 lor.=.null);.........public.func
699a0 74 69 6f 6e 20 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c tion.setBackground($color.=.null
699c0 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 );.........public.function.setOp
699e0 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 tion($option);.......public.func
69a00 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a tion.unsetOption($option);......
69a20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 .public.function.setOptions(arra
69a40 79 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 y.$options);.........public.func
69a60 74 69 6f 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a tion.apply($text);.}.<?php......
69a80 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
69aa0 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 \Console\Formatter;.........clas
69ac0 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 s.OutputFormatter.implements.Out
69ae0 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 putFormatterInterface.{....const
69b00 20 46 4f 52 4d 41 54 5f 50 41 54 54 45 52 4e 20 3d 20 27 23 28 5c 5c 5c 5c 3f 29 3c 28 2f 3f 29 .FORMAT_PATTERN.=.'#(\\\\?)<(/?)
69b20 28 5b 61 2d 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d 5d 2b 29 3f 3e 28 28 3f 3a 28 3f 21 5c 5c 5c ([a-z][a-z0-9_=;-]+)?>((?:(?!\\\
69b40 5c 3f 3c 29 2e 29 2a 29 23 69 73 27 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 63 6f 72 61 74 65 \?<).)*)#is';..private.$decorate
69b60 64 3b 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 d;.private.$styles.=.array();.pr
69b80 69 76 61 74 65 20 24 73 74 79 6c 65 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ivate.$styleStack;.........publi
69ba0 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 74 65 78 74 29 0a c.static.function.escape($text).
69bc0 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5b 5e 5c 5c 5c 5c 5d {.return.preg_replace('/([^\\\\]
69be0 3f 29 3c 2f 69 73 27 2c 20 27 24 31 5c 5c 3c 27 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a ?)</is',.'$1\\<',.$text);.}.....
69c00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
69c20 28 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 73 74 79 6c 65 ($decorated.=.null,.array.$style
69c40 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 s.=.array()).{.$this->decorated.
69c60 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 0a 24 74 68 69 73 2d 3e =.(Boolean).$decorated;..$this->
69c80 73 65 74 53 74 79 6c 65 28 27 65 72 72 6f 72 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d setStyle('error',.new.OutputForm
69ca0 61 74 74 65 72 53 74 79 6c 65 28 27 77 68 69 74 65 27 2c 20 27 72 65 64 27 29 29 3b 0a 24 74 68 atterStyle('white',.'red'));.$th
69cc0 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 69 6e 66 6f 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 is->setStyle('info',.new.OutputF
69ce0 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 67 72 65 65 6e 27 29 29 3b 0a 24 74 68 69 73 2d 3e ormatterStyle('green'));.$this->
69d00 73 65 74 53 74 79 6c 65 28 27 63 6f 6d 6d 65 6e 74 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f setStyle('comment',.new.OutputFo
69d20 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 79 65 6c 6c 6f 77 27 29 29 3b 0a 24 74 68 69 73 2d 3e rmatterStyle('yellow'));.$this->
69d40 73 65 74 53 74 79 6c 65 28 27 71 75 65 73 74 69 6f 6e 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 setStyle('question',.new.OutputF
69d60 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 63 79 61 6e 27 29 29 3b ormatterStyle('black',.'cyan'));
69d80 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 74 79 6c 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 ..foreach.($styles.as.$name.=>.$
69da0 73 74 79 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 style).{.$this->setStyle($name,.
69dc0 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 20 3d 20 $style);.}..$this->styleStack.=.
69de0 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 28 29 3b new.OutputFormatterStyleStack();
69e00 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 .}.........public.function.setDe
69e20 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 corated($decorated).{.$this->dec
69e40 6f 72 61 74 65 64 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 7d orated.=.(Boolean).$decorated;.}
69e60 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 .........public.function.isDecor
69e80 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 ated().{.return.$this->decorated
69ea0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ;.}..........public.function.set
69ec0 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c Style($name,.OutputFormatterStyl
69ee0 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c eInterface.$style).{.$this->styl
69f00 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 20 3d 20 24 73 74 79 6c 65 3b 0a es[strtolower($name)].=.$style;.
69f20 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 }...........public.function.hasS
69f40 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 tyle($name).{.return.isset($this
69f60 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 29 3b 0a 7d 0a ->styles[strtolower($name)]);.}.
69f80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 ............public.function.getS
69fa0 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 79 tyle($name).{.if.(!$this->hasSty
69fc0 6c 65 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 le($name)).{.throw.new.\InvalidA
69fe0 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 64 65 66 69 6e 65 64 20 73 74 79 6c rgumentException('Undefined.styl
6a000 65 3a 20 27 2e 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 e:.'.$name);.}..return.$this->st
6a020 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a yles[strtolower($name)];.}......
6a040 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 .....public.function.format($mes
6a060 73 61 67 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f sage).{.$message.=.preg_replace_
6a080 63 61 6c 6c 62 61 63 6b 28 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 50 41 54 54 45 52 4e 2c 20 61 callback(self::FORMAT_PATTERN,.a
6a0a0 72 72 61 79 28 24 74 68 69 73 2c 20 27 72 65 70 6c 61 63 65 53 74 79 6c 65 27 29 2c 20 24 6d 65 rray($this,.'replaceStyle'),.$me
6a0c0 73 73 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c ssage);..return.str_replace('\\<
6a0e0 27 2c 20 27 3c 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ',.'<',.$message);.}.....public.
6a100 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 53 74 61 63 6b 28 29 0a 7b 0a 72 65 74 75 72 function.getStyleStack().{.retur
6a120 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 n.$this->styleStack;.}.........p
6a140 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 53 74 79 6c 65 28 24 6d 61 rivate.function.replaceStyle($ma
6a160 74 63 68 29 0a 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 tch).{...if.('\\'.===.$match[1])
6a180 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 3d .{.return.$match[0];.}..if.(''.=
6a1a0 3d 3d 20 24 6d 61 74 63 68 5b 33 5d 29 20 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 ==.$match[3]).{.if.('/'.===.$mat
6a1c0 63 68 5b 32 5d 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f ch[2]).{...$this->styleStack->po
6a1e0 70 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 53 74 79 6c 65 28 24 p();..return.$this->applyStyle($
6a200 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 67 65 74 43 75 72 72 65 6e 74 28 29 2c 20 this->styleStack->getCurrent(),.
6a220 24 6d 61 74 63 68 5b 34 5d 29 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 27 3c 3e 27 2e 24 6d 61 $match[4]);.}....return.'<>'.$ma
6a240 74 63 68 5b 34 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c tch[4];.}..if.(isset($this->styl
6a260 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 5b 33 5d 29 5d 29 29 20 7b 0a 24 73 es[strtolower($match[3])])).{.$s
6a280 74 79 6c 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 tyle.=.$this->styles[strtolower(
6a2a0 24 6d 61 74 63 68 5b 33 5d 29 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 $match[3])];.}.else.{.$style.=.$
6a2c0 74 68 69 73 2d 3e 63 72 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 6d 61 74 this->createStyleFromString($mat
6a2e0 63 68 5b 33 5d 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 29 20 7b ch[3]);..if.(false.===.$style).{
6a300 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 .return.$match[0];.}.}..if.('/'.
6a320 3d 3d 3d 20 24 6d 61 74 63 68 5b 32 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 ===.$match[2]).{.$this->styleSta
6a340 63 6b 2d 3e 70 6f 70 28 24 73 74 79 6c 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ck->pop($style);.}.else.{.$this-
6a360 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 75 73 68 28 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 >styleStack->push($style);.}..re
6a380 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 53 74 79 6c 65 28 24 74 68 69 73 2d 3e 73 74 turn.$this->applyStyle($this->st
6a3a0 79 6c 65 53 74 61 63 6b 2d 3e 67 65 74 43 75 72 72 65 6e 74 28 29 2c 20 24 6d 61 74 63 68 5b 34 yleStack->getCurrent(),.$match[4
6a3c0 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 ]);.}.........private.function.c
6a3e0 72 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 73 74 72 69 6e 67 29 0a 7b 0a reateStyleFromString($string).{.
6a400 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 28 5b 5e 3d 5d 2b 29 3d 28 5b if.(!preg_match_all('/([^=]+)=([
6a420 5e 3b 5d 2b 29 28 3b 7c 24 29 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 72 69 6e 67 ^;]+)(;|$)/',.strtolower($string
6a440 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 29 20 7b 0a ),.$matches,.PREG_SET_ORDER)).{.
6a460 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 74 79 6c 65 20 3d 20 6e 65 77 20 4f 75 return.false;.}..$style.=.new.Ou
6a480 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 tputFormatterStyle();.foreach.($
6a4a0 6d 61 74 63 68 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 61 72 72 61 79 5f 73 68 69 66 74 matches.as.$match).{.array_shift
6a4c0 28 24 6d 61 74 63 68 29 3b 0a 0a 69 66 20 28 27 66 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d ($match);..if.('fg'.==.$match[0]
6a4e0 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 ).{.$style->setForeground($match
6a500 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 62 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 [1]);.}.elseif.('bg'.==.$match[0
6a520 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 6d 61 74 63 ]).{.$style->setBackground($matc
6a540 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 4f 70 74 69 6f h[1]);.}.else.{.$style->setOptio
6a560 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 79 6c 65 n($match[1]);.}.}..return.$style
6a580 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 ;.}..........private.function.ap
6a5a0 70 6c 79 53 74 79 6c 65 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 plyStyle(OutputFormatterStyleInt
6a5c0 65 72 66 61 63 65 20 24 73 74 79 6c 65 2c 20 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 erface.$style,.$text).{.return.$
6a5e0 74 68 69 73 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 74 this->isDecorated().&&.strlen($t
6a600 65 78 74 29 20 3e 20 30 20 3f 20 24 73 74 79 6c 65 2d 3e 61 70 70 6c 79 28 24 74 65 78 74 29 20 ext).>.0.?.$style->apply($text).
6a620 3a 20 24 74 65 78 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d :.$text;.}.}.<?php...........nam
6a640 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 espace.Symfony\Component\Console
6a660 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 \Formatter;.........interface.Ou
6a680 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a tputFormatterInterface.{........
6a6a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 public.function.setDecorated($de
6a6c0 63 6f 72 61 74 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f corated);.........public.functio
6a6e0 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.isDecorated();..........public
6a700 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 74 70 75 74 .function.setStyle($name,.Output
6a720 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 3b FormatterStyleInterface.$style);
6a740 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 ...........public.function.hasSt
6a760 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e yle($name);...........public.fun
6a780 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ction.getStyle($name);..........
6a7a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 .public.function.format($message
6a7c0 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 );.}.<?php...........namespace.S
6a7e0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 ymfony\Component\Console;..use.S
6a800 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
6a820 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f nputInterface;.use.Symfony\Compo
6a840 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 67 76 49 6e 70 75 74 3b 0a 75 73 nent\Console\Input\ArgvInput;.us
6a860 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
6a880 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e t\ArrayInput;.use.Symfony\Compon
6a8a0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f ent\Console\Input\InputDefinitio
6a8c0 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 n;.use.Symfony\Component\Console
6a8e0 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c \Input\InputOption;.use.Symfony\
6a900 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 Component\Console\Input\InputArg
6a920 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ument;.use.Symfony\Component\Con
6a940 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 sole\Output\OutputInterface;.use
6a960 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
6a980 74 5c 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c t\Output;.use.Symfony\Component\
6a9a0 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 Console\Output\ConsoleOutput;.us
6a9c0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
6a9e0 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 ut\ConsoleOutputInterface;.use.S
6aa00 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 ymfony\Component\Console\Command
6aa20 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c \Command;.use.Symfony\Component\
6aa40 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 Console\Command\HelpCommand;.use
6aa60 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 .Symfony\Component\Console\Comma
6aa80 6e 64 5c 4c 69 73 74 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 nd\ListCommand;.use.Symfony\Comp
6aaa0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a onent\Console\Helper\HelperSet;.
6aac0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 use.Symfony\Component\Console\He
6aae0 6c 70 65 72 5c 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e lper\FormatterHelper;.use.Symfon
6ab00 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f y\Component\Console\Helper\Dialo
6ab20 67 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 gHelper;...................class
6ab40 20 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 73 .Application.{.private.$commands
6ab60 3b 0a 70 72 69 76 61 74 65 20 24 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 ;.private.$wantHelps.=.false;.pr
6ab80 69 76 61 74 65 20 24 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 ivate.$runningCommand;.private.$
6aba0 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 name;.private.$version;.private.
6abc0 24 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 45 $catchExceptions;.private.$autoE
6abe0 78 69 74 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 xit;.private.$definition;.privat
6ac00 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 e.$helperSet;..........public.fu
6ac20 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 20 3d 20 27 55 4e 4b 4e nction.__construct($name.=.'UNKN
6ac40 4f 57 4e 27 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 27 55 4e 4b 4e 4f 57 4e 27 29 0a 7b 0a 24 74 OWN',.$version.=.'UNKNOWN').{.$t
6ac60 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f his->name.=.$name;.$this->versio
6ac80 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 n.=.$version;.$this->catchExcept
6aca0 69 6f 6e 73 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 74 ions.=.true;.$this->autoExit.=.t
6acc0 72 75 65 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a rue;.$this->commands.=.array();.
6ace0 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 $this->helperSet.=.$this->getDef
6ad00 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 aultHelperSet();.$this->definiti
6ad20 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e on.=.$this->getDefaultInputDefin
6ad40 69 74 69 6f 6e 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 ition();..foreach.($this->getDef
6ad60 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 aultCommands().as.$command).{.$t
6ad80 68 69 73 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a his->add($command);.}.}.........
6ada0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e .....public.function.run(InputIn
6adc0 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 6e 74 terface.$input.=.null,.OutputInt
6ade0 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c erface.$output.=.null).{.if.(nul
6ae00 6c 20 3d 3d 3d 20 24 69 6e 70 75 74 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 67 l.===.$input).{.$input.=.new.Arg
6ae20 76 49 6e 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 vInput();.}..if.(null.===.$outpu
6ae40 74 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 t).{.$output.=.new.ConsoleOutput
6ae60 28 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 ();.}..try.{.$statusCode.=.$this
6ae80 2d 3e 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 63 61 74 63 ->doRun($input,.$output);.}.catc
6aea0 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e h.(\Exception.$e).{.if.(!$this->
6aec0 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a catchExceptions).{.throw.$e;.}..
6aee0 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 if.($output.instanceof.ConsoleOu
6af00 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 tputInterface).{.$this->renderEx
6af20 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 ception($e,.$output->getErrorOut
6af40 70 75 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 put());.}.else.{.$this->renderEx
6af60 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 24 73 74 61 74 75 73 43 ception($e,.$output);.}.$statusC
6af80 6f 64 65 20 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 3b 0a 0a 24 73 74 61 74 75 73 43 6f 64 ode.=.$e->getCode();..$statusCod
6afa0 65 20 3d 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 74 61 74 75 73 43 6f 64 65 29 20 26 26 20 24 e.=.is_numeric($statusCode).&&.$
6afc0 73 74 61 74 75 73 43 6f 64 65 20 3f 20 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 31 3b 0a 7d 0a statusCode.?.$statusCode.:.1;.}.
6afe0 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 29 20 7b 0a 69 66 20 28 24 73 74 61 .if.($this->autoExit).{.if.($sta
6b000 74 75 73 43 6f 64 65 20 3e 20 32 35 35 29 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 32 tusCode.>.255).{.$statusCode.=.2
6b020 35 35 3b 0a 7d 0a 0a 20 65 78 69 74 28 24 73 74 61 74 75 73 43 6f 64 65 29 3b 0a 0a 20 7d 0a 0a 55;.}...exit($statusCode);...}..
6b040 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 return.$statusCode;.}..........p
6b060 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 ublic.function.doRun(InputInterf
6b080 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
6b0a0 70 75 74 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 put).{.$name.=.$this->getCommand
6b0c0 4e 61 6d 65 28 24 69 6e 70 75 74 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 Name($input);..if.(true.===.$inp
6b0e0 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d ut->hasParameterOption(array('--
6b100 61 6e 73 69 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 ansi'))).{.$output->setDecorated
6b120 28 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 (true);.}.elseif.(true.===.$inpu
6b140 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e t->hasParameterOption(array('--n
6b160 6f 2d 61 6e 73 69 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 o-ansi'))).{.$output->setDecorat
6b180 65 64 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 ed(false);.}..if.(true.===.$inpu
6b1a0 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 68 t->hasParameterOption(array('--h
6b1c0 65 6c 70 27 2c 20 27 2d 68 27 29 29 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 29 20 7b 0a 24 6e elp',.'-h'))).{.if.(!$name).{.$n
6b1e0 61 6d 65 20 3d 20 27 68 65 6c 70 27 3b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 ame.=.'help';.$input.=.new.Array
6b200 49 6e 70 75 74 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e 20 27 68 65 6c 70 27 29 Input(array('command'.=>.'help')
6b220 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 74 );.}.else.{.$this->wantHelps.=.t
6b240 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 rue;.}.}..if.(true.===.$input->h
6b260 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 69 6e asParameterOption(array('--no-in
6b280 74 65 72 61 63 74 69 6f 6e 27 2c 20 27 2d 6e 27 29 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 teraction',.'-n'))).{.$input->se
6b2a0 74 49 6e 74 65 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 tInteractive(false);.}..if.(func
6b2c0 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 20 24 tion_exists('posix_isatty').&&.$
6b2e0 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 68 61 73 28 27 64 69 61 6c 6f this->getHelperSet()->has('dialo
6b300 67 27 29 29 20 7b 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 g')).{.$inputStream.=.$this->get
6b320 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 67 65 74 49 HelperSet()->get('dialog')->getI
6b340 6e 70 75 74 53 74 72 65 61 6d 28 29 3b 0a 69 66 20 28 21 70 6f 73 69 78 5f 69 73 61 74 74 79 28 nputStream();.if.(!posix_isatty(
6b360 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 $inputStream)).{.$input->setInte
6b380 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d ractive(false);.}.}..if.(true.==
6b3a0 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 =.$input->hasParameterOption(arr
6b3c0 61 79 28 27 2d 2d 71 75 69 65 74 27 2c 20 27 2d 71 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d ay('--quiet',.'-q'))).{.$output-
6b3e0 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 >setVerbosity(OutputInterface::V
6b400 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 74 72 75 65 20 ERBOSITY_QUIET);.}.elseif.(true.
6b420 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 ===.$input->hasParameterOption(a
6b440 72 72 61 79 28 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 27 29 29 29 20 7b 0a 24 6f 75 74 rray('--verbose',.'-v'))).{.$out
6b460 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 put->setVerbosity(OutputInterfac
6b480 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 e::VERBOSITY_VERBOSE);.}..if.(tr
6b4a0 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f ue.===.$input->hasParameterOptio
6b4c0 6e 28 61 72 72 61 79 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 29 29 29 20 7b 0a 24 n(array('--version',.'-V'))).{.$
6b4e0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 output->writeln($this->getLongVe
6b500 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 rsion());..return.0;.}..if.(!$na
6b520 6d 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 27 6c 69 73 74 27 3b 0a 24 69 6e 70 75 74 20 3d 20 6e me).{.$name.=.'list';.$input.=.n
6b540 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e ew.ArrayInput(array('command'.=>
6b560 20 27 6c 69 73 74 27 29 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 .'list'));.}....$command.=.$this
6b580 2d 3e 66 69 6e 64 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f ->find($name);..$this->runningCo
6b5a0 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 mmand.=.$command;.$statusCode.=.
6b5c0 24 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a $command->run($input,.$output);.
6b5e0 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 $this->runningCommand.=.null;..r
6b600 65 74 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 74 61 74 75 73 43 6f 64 65 29 20 3f 20 eturn.is_numeric($statusCode).?.
6b620 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $statusCode.:.0;.}.........publi
6b640 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 c.function.setHelperSet(HelperSe
6b660 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 t.$helperSet).{.$this->helperSet
6b680 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .=.$helperSet;.}.........public.
6b6a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e function.getHelperSet().{.return
6b6c0 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .$this->helperSet;.}.......publi
6b6e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 c.function.getDefinition().{.ret
6b700 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 urn.$this->definition;.}.......p
6b720 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 24 6d 65 73 73 ublic.function.getHelp().{.$mess
6b740 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 ages.=.array(.$this->getLongVers
6b760 69 6f 6e 28 29 2c 0a 27 27 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d ion(),.'',.'<comment>Usage:</com
6b780 6d 65 6e 74 3e 27 2c 0a 73 70 72 69 6e 74 66 28 22 20 20 5b 6f 70 74 69 6f 6e 73 5d 20 63 6f 6d ment>',.sprintf("..[options].com
6b7a0 6d 61 6e 64 20 5b 61 72 67 75 6d 65 6e 74 73 5d 5c 6e 22 29 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e mand.[arguments]\n"),.'<comment>
6b7c0 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 Options:</comment>',.);..foreach
6b7e0 20 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 .($this->getDefinition()->getOpt
6b800 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d ions().as.$option).{.$messages[]
6b820 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 25 2d 32 39 73 20 25 73 20 25 73 27 2c 0a 27 3c 69 6e .=.sprintf('..%-29s.%s.%s',.'<in
6b840 66 6f 3e 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3c 2f 69 6e 66 fo>--'.$option->getName().'</inf
6b860 6f 3e 27 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 3c o>',.$option->getShortcut().?.'<
6b880 69 6e 66 6f 3e 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2e 27 info>-'.$option->getShortcut().'
6b8a0 3c 2f 69 6e 66 6f 3e 27 20 3a 20 27 20 20 27 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 </info>'.:.'..',.$option->getDes
6b8c0 63 72 69 70 74 69 6f 6e 28 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 cription().);.}..return.implode(
6b8e0 50 48 50 5f 45 4f 4c 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 PHP_EOL,.$messages);.}.........p
6b900 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e ublic.function.setCatchException
6b920 73 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 s($boolean).{.$this->catchExcept
6b940 69 6f 6e 73 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a ions.=.(Boolean).$boolean;.}....
6b960 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 45 78 69 74 .....public.function.setAutoExit
6b980 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 28 ($boolean).{.$this->autoExit.=.(
6b9a0 42 6f 6f 6c 65 61 6e 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 Boolean).$boolean;.}.........pub
6b9c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.getName().{.return.
6b9e0 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 $this->name;.}.........public.fu
6ba00 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e nction.setName($name).{.$this->n
6ba20 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ame.=.$name;.}.........public.fu
6ba40 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 nction.getVersion().{.return.$th
6ba60 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 is->version;.}.........public.fu
6ba80 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 74 nction.setVersion($version).{.$t
6baa0 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a his->version.=.$version;.}......
6bac0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f ...public.function.getLongVersio
6bae0 6e 28 29 0a 7b 0a 69 66 20 28 27 55 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 n().{.if.('UNKNOWN'.!==.$this->g
6bb00 65 74 4e 61 6d 65 28 29 20 26 26 20 27 55 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d etName().&&.'UNKNOWN'.!==.$this-
6bb20 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 >getVersion()).{.return.sprintf(
6bb40 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e '<info>%s</info>.version.<commen
6bb60 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 t>%s</comment>',.$this->getName(
6bb80 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 ),.$this->getVersion());.}..retu
6bba0 72 6e 20 27 3c 69 6e 66 6f 3e 43 6f 6e 73 6f 6c 65 20 54 6f 6f 6c 3c 2f 69 6e 66 6f 3e 27 3b 0a rn.'<info>Console.Tool</info>';.
6bbc0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 }...........public.function.regi
6bbe0 73 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 28 ster($name).{.return.$this->add(
6bc00 6e 65 77 20 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 new.Command($name));.}.........p
6bc20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 ublic.function.addCommands(array
6bc40 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 .$commands).{.foreach.($commands
6bc60 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 28 24 63 6f 6d 6d .as.$command).{.$this->add($comm
6bc80 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e and);.}.}.............public.fun
6bca0 63 74 69 6f 6e 20 61 64 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 63 ction.add(Command.$command).{.$c
6bcc0 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 0a ommand->setApplication($this);..
6bce0 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 63 if.(!$command->isEnabled()).{.$c
6bd00 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 6e 75 6c 6c 29 3b 0a 0a 72 ommand->setApplication(null);..r
6bd20 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 63 6f 6d 6d 61 eturn;.}..$this->commands[$comma
6bd40 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 66 6f 72 65 nd->getName()].=.$command;..fore
6bd60 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 ach.($command->getAliases().as.$
6bd80 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 61 6c 69 61 73 5d alias).{.$this->commands[$alias]
6bda0 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b .=.$command;.}..return.$command;
6bdc0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .}.............public.function.g
6bde0 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f et($name).{.if.(!isset($this->co
6be00 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 mmands[$name])).{.throw.new.\Inv
6be20 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 alidArgumentException(sprintf('T
6be40 68 65 20 63 6f 6d 6d 61 6e 64 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 he.command."%s".does.not.exist.'
6be60 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e ,.$name));.}..$command.=.$this->
6be80 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 6e commands[$name];..if.($this->wan
6bea0 74 48 65 6c 70 73 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c tHelps).{.$this->wantHelps.=.fal
6bec0 73 65 3b 0a 0a 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 27 se;..$helpCommand.=.$this->get('
6bee0 68 65 6c 70 27 29 3b 0a 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 help');.$helpCommand->setCommand
6bf00 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 ($command);..return.$helpCommand
6bf20 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ;.}..return.$command;.}.........
6bf40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 ..public.function.has($name).{.r
6bf60 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d eturn.isset($this->commands[$nam
6bf80 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 e]);.}.........public.function.g
6bfa0 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 etNamespaces().{.$namespaces.=.a
6bfc0 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 rray();.foreach.($this->commands
6bfe0 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 5d 20 3d 20 .as.$command).{.$namespaces[].=.
6c000 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 63 6f 6d 6d 61 6e 64 $this->extractNamespace($command
6c020 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 ->getName());..foreach.($command
6c040 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 61 6d ->getAliases().as.$alias).{.$nam
6c060 65 73 70 61 63 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 espaces[].=.$this->extractNamesp
6c080 61 63 65 28 24 61 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 ace($alias);.}.}..return.array_v
6c0a0 61 6c 75 65 73 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 alues(array_unique(array_filter(
6c0c0 24 6e 61 6d 65 73 70 61 63 65 73 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c $namespaces)));.}...........publ
6c0e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 73 ic.function.findNamespace($names
6c100 70 61 63 65 29 0a 7b 0a 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 pace).{.$allNamespaces.=.array()
6c120 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 ;.foreach.($this->getNamespaces(
6c140 29 20 61 73 20 24 6e 29 20 7b 0a 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 5b 24 6e 5d 20 3d 20 ).as.$n).{.$allNamespaces[$n].=.
6c160 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 29 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 20 3d 20 61 72 explode(':',.$n);.}..$found.=.ar
6c180 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 ray();.foreach.(explode(':',.$na
6c1a0 6d 65 73 70 61 63 65 29 20 61 73 20 24 69 20 3d 3e 20 24 70 61 72 74 29 20 7b 0a 24 61 62 62 72 mespace).as.$i.=>.$part).{.$abbr
6c1c0 65 76 73 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 61 evs.=.static::getAbbreviations(a
6c1e0 72 72 61 79 5f 75 6e 69 71 75 65 28 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 66 rray_unique(array_values(array_f
6c200 69 6c 74 65 72 28 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 75 73 ilter(array_map(function.($p).us
6c220 65 20 28 24 69 29 20 7b 20 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 70 5b 24 69 5d 29 20 3f 20 e.($i).{.return.isset($p[$i]).?.
6c240 24 70 5b 24 69 5d 20 3a 20 27 27 3b 20 7d 2c 20 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 29 29 $p[$i].:.'';.},.$allNamespaces))
6c260 29 29 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d )));..if.(!isset($abbrevs[$part]
6c280 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 54 68 65 72 65 20 61 )).{.$message.=.sprintf('There.a
6c2a0 72 65 20 6e 6f 20 63 6f 6d 6d 61 6e 64 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 22 25 re.no.commands.defined.in.the."%
6c2c0 73 22 20 6e 61 6d 65 73 70 61 63 65 2e 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 69 66 s".namespace.',.$namespace);..if
6c2e0 20 28 31 20 3c 3d 20 24 69 29 20 7b 0a 24 70 61 72 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 3a 27 .(1.<=.$i).{.$part.=.implode(':'
6c300 2c 20 24 66 6f 75 6e 64 29 2e 27 3a 27 2e 24 70 61 72 74 3b 0a 7d 0a 0a 69 66 20 28 24 61 6c 74 ,.$found).':'.$part;.}..if.($alt
6c320 65 72 6e 61 74 69 76 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 ernatives.=.$this->findAlternati
6c340 76 65 4e 61 6d 65 73 70 61 63 65 28 24 70 61 72 74 2c 20 24 61 62 62 72 65 76 73 29 29 20 7b 0a veNamespace($part,.$abbrevs)).{.
6c360 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 6f 6e $message..=."\n\nDid.you.mean.on
6c380 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 e.of.these?\n....";.$message..=.
6c3a0 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 implode("\n....",.$alternatives)
6c3c0 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 ;.}..throw.new.\InvalidArgumentE
6c3e0 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 xception($message);.}..if.(count
6c400 28 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e ($abbrevs[$part]).>.1).{.throw.n
6c420 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 ew.\InvalidArgumentException(spr
6c440 69 6e 74 66 28 27 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 22 25 73 22 20 69 73 20 61 6d 62 69 intf('The.namespace."%s".is.ambi
6c460 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 74 68 69 73 2d guous.(%s).',.$namespace,.$this-
6c480 3e 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 >getAbbreviationSuggestions($abb
6c4a0 72 65 76 73 5b 24 70 61 72 74 5d 29 29 29 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 5b 5d 20 3d 20 24 61 revs[$part])));.}..$found[].=.$a
6c4c0 62 62 72 65 76 73 5b 24 70 61 72 74 5d 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c bbrevs[$part][0];.}..return.impl
6c4e0 6f 64 65 28 27 3a 27 2c 20 24 66 6f 75 6e 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ode(':',.$found);.}.............
6c500 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 29 0a 7b ...public.function.find($name).{
6c520 0a 0a 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 ...$namespace.=.'';.$searchName.
6c540 3d 20 24 6e 61 6d 65 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 =.$name;.if.(false.!==.$pos.=.st
6c560 72 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3a 27 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 rrpos($name,.':')).{.$namespace.
6c580 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 73 75 62 73 74 72 28 24 6e =.$this->findNamespace(substr($n
6c5a0 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 29 3b 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 3d 20 24 6e ame,.0,.$pos));.$searchName.=.$n
6c5c0 61 6d 65 73 70 61 63 65 2e 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 70 6f 73 29 3b 0a 7d 0a amespace.substr($name,.$pos);.}.
6c5e0 0a 0a 20 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 ...$commands.=.array();.foreach.
6c600 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a ($this->commands.as.$command).{.
6c620 69 66 20 28 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 63 6f 6d if.($this->extractNamespace($com
6c640 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 mand->getName()).==.$namespace).
6c660 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d {.$commands[].=.$command->getNam
6c680 65 28 29 3b 0a 7d 0a 7d 0a 0a 24 61 62 62 72 65 76 73 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 e();.}.}..$abbrevs.=.static::get
6c6a0 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 63 6f 6d 6d Abbreviations(array_unique($comm
6c6c0 61 6e 64 73 29 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 ands));.if.(isset($abbrevs[$sear
6c6e0 63 68 4e 61 6d 65 5d 29 20 26 26 20 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 5b chName]).&&.1.==.count($abbrevs[
6c700 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 $searchName])).{.return.$this->g
6c720 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 5b 30 5d 29 3b 0a 7d 0a et($abbrevs[$searchName][0]);.}.
6c740 0a 69 66 20 28 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d .if.(isset($abbrevs[$searchName]
6c760 29 20 26 26 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d ).&&.count($abbrevs[$searchName]
6c780 29 20 3e 20 31 29 20 7b 0a 24 73 75 67 67 65 73 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 ).>.1).{.$suggestions.=.$this->g
6c7a0 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 etAbbreviationSuggestions($abbre
6c7c0 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e vs[$searchName]);..throw.new.\In
6c7e0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 validArgumentException(sprintf('
6c800 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 Command."%s".is.ambiguous.(%s).'
6c820 2c 20 24 6e 61 6d 65 2c 20 24 73 75 67 67 65 73 74 69 6f 6e 73 29 29 3b 0a 7d 0a 0a 0a 20 24 61 ,.$name,.$suggestions));.}....$a
6c840 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 liases.=.array();.foreach.($this
6c860 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 66 6f 72 65 61 63 ->commands.as.$command).{.foreac
6c880 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c h.($command->getAliases().as.$al
6c8a0 69 61 73 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 ias).{.if.($this->extractNamespa
6c8c0 63 65 28 24 61 6c 69 61 73 29 20 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 61 6c 69 ce($alias).==.$namespace).{.$ali
6c8e0 61 73 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 ases[].=.$alias;.}.}.}..$aliases
6c900 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 .=.static::getAbbreviations(arra
6c920 79 5f 75 6e 69 71 75 65 28 24 61 6c 69 61 73 65 73 29 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 y_unique($aliases));.if.(!isset(
6c940 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 20 7b 0a 24 6d 65 73 73 61 $aliases[$searchName])).{.$messa
6c960 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 6e 6f ge.=.sprintf('Command."%s".is.no
6c980 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 t.defined.',.$name);..if.($alter
6c9a0 6e 61 74 69 76 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 natives.=.$this->findAlternative
6c9c0 43 6f 6d 6d 61 6e 64 73 28 24 73 65 61 72 63 68 4e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 29 Commands($searchName,.$abbrevs))
6c9e0 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e .{.$message..=."\n\nDid.you.mean
6ca00 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 24 6d 65 73 73 61 67 65 20 .one.of.these?\n....";.$message.
6ca20 2e 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 .=.implode("\n....",.$alternativ
6ca40 65 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 es);.}..throw.new.\InvalidArgume
6ca60 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f ntException($message);.}..if.(co
6ca80 75 6e 74 28 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 3e 20 31 29 20 unt($aliases[$searchName]).>.1).
6caa0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
6cac0 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 61 ption(sprintf('Command."%s".is.a
6cae0 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 67 mbiguous.(%s).',.$name,.$this->g
6cb00 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 6c 69 61 73 etAbbreviationSuggestions($alias
6cb20 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 es[$searchName])));.}..return.$t
6cb40 68 69 73 2d 3e 67 65 74 28 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 5b 30 his->get($aliases[$searchName][0
6cb60 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ]);.}.............public.functio
6cb80 6e 20 61 6c 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e n.all($namespace.=.null).{.if.(n
6cba0 75 6c 6c 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 ull.===.$namespace).{.return.$th
6cbc0 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 is->commands;.}..$commands.=.arr
6cbe0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 ay();.foreach.($this->commands.a
6cc00 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 s.$name.=>.$command).{.if.($name
6cc20 73 70 61 63 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 space.===.$this->extractNamespac
6cc40 65 28 24 6e 61 6d 65 2c 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 6e 61 6d 65 73 70 61 63 65 e($name,.substr_count($namespace
6cc60 2c 20 27 3a 27 29 20 2b 20 31 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 ,.':').+.1)).{.$commands[$name].
6cc80 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 =.$command;.}.}..return.$command
6cca0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 s;.}.........public.static.funct
6ccc0 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 24 6e 61 6d 65 73 29 0a 7b 0a 24 ion.getAbbreviations($names).{.$
6cce0 61 62 62 72 65 76 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d abbrevs.=.array();.foreach.($nam
6cd00 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 66 6f 72 20 28 24 6c 65 6e 20 3d 20 73 74 72 6c 65 es.as.$name).{.for.($len.=.strle
6cd20 6e 28 24 6e 61 6d 65 29 20 2d 20 31 3b 20 24 6c 65 6e 20 3e 20 30 3b 20 2d 2d 24 6c 65 6e 29 20 n($name).-.1;.$len.>.0;.--$len).
6cd40 7b 0a 24 61 62 62 72 65 76 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 6c 65 {.$abbrev.=.substr($name,.0,.$le
6cd60 6e 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d n);.if.(!isset($abbrevs[$abbrev]
6cd80 29 29 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 20 3d 20 61 72 72 61 79 28 24 )).{.$abbrevs[$abbrev].=.array($
6cda0 6e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 name);.}.else.{.$abbrevs[$abbrev
6cdc0 5d 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 ][].=.$name;.}.}.}....foreach.($
6cde0 6e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 6e 61 6d 65 names.as.$name).{.$abbrevs[$name
6ce00 5d 20 3d 20 61 72 72 61 79 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 62 62 ].=.array($name);.}..return.$abb
6ce20 72 65 76 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e revs;.}..........public.function
6ce40 20 61 73 54 65 78 74 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 .asText($namespace.=.null,.$raw.
6ce60 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 24 6e 61 6d 65 73 70 61 63 =.false).{.$commands.=.$namespac
6ce80 65 20 3f 20 24 74 68 69 73 2d 3e 61 6c 6c 28 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 e.?.$this->all($this->findNamesp
6cea0 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 29 20 3a 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e ace($namespace)).:.$this->comman
6cec0 64 73 3b 0a 0a 24 77 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 ds;..$width.=.0;.foreach.($comma
6cee0 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 73 74 72 6c nds.as.$command).{.$width.=.strl
6cf00 65 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3e 20 24 77 69 64 74 68 en($command->getName()).>.$width
6cf20 20 3f 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3a .?.strlen($command->getName()).:
6cf40 20 24 77 69 64 74 68 3b 0a 7d 0a 24 77 69 64 74 68 20 2b 3d 20 32 3b 0a 0a 69 66 20 28 24 72 61 .$width;.}.$width.+=.2;..if.($ra
6cf60 77 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 w).{.$messages.=.array();.foreac
6cf80 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 63 6f 6d 6d 61 6e 64 73 h.($this->sortCommands($commands
6cfa0 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 66 6f 72 65 ).as.$space.=>.$commands).{.fore
6cfc0 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d ach.($commands.as.$name.=>.$comm
6cfe0 61 6e 64 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 25 2d and).{.$messages[].=.sprintf("%-
6d000 24 7b 77 69 64 74 68 7d 73 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e ${width}s.%s",.$name,.$command->
6d020 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 getDescription());.}.}..return.i
6d040 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 24 mplode(PHP_EOL,.$messages);.}..$
6d060 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 messages.=.array($this->getHelp(
6d080 29 2c 20 27 27 29 3b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 6d 65 73 73 61 ),.'');.if.($namespace).{.$messa
6d0a0 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 ges[].=.sprintf("<comment>Availa
6d0c0 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 74 68 65 20 5c 22 25 73 5c 22 20 6e 61 6d 65 ble.commands.for.the.\"%s\".name
6d0e0 73 70 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a space:</comment>",.$namespace);.
6d100 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 }.else.{.$messages[].=.'<comment
6d120 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b >Available.commands:</comment>';
6d140 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e .}....foreach.($this->sortComman
6d160 64 73 28 24 63 6f 6d 6d 61 6e 64 73 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d ds($commands).as.$space.=>.$comm
6d180 61 6e 64 73 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 20 26 26 20 27 5f 67 6c 6f ands).{.if.(!$namespace.&&.'_glo
6d1a0 62 61 6c 27 20 21 3d 3d 20 24 73 70 61 63 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d bal'.!==.$space).{.$messages[].=
6d1c0 20 27 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 73 70 61 63 65 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 .'<comment>'.$space.'</comment>'
6d1e0 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 ;.}..foreach.($commands.as.$name
6d200 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 .=>.$command).{.$messages[].=.sp
6d220 72 69 6e 74 66 28 22 20 20 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f rintf("..<info>%-${width}s</info
6d240 3e 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 >.%s",.$name,.$command->getDescr
6d260 69 70 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 50 iption());.}.}..return.implode(P
6d280 48 50 5f 45 4f 4c 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 HP_EOL,.$messages);.}..........p
6d2a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 ublic.function.asXml($namespace.
6d2c0 3d 20 6e 75 6c 6c 2c 20 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 6f 6d 6d 61 =.null,.$asDom.=.false).{.$comma
6d2e0 6e 64 73 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 20 3f 20 24 74 68 69 73 2d 3e 61 6c 6c 28 24 74 nds.=.$namespace.?.$this->all($t
6d300 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 29 20 his->findNamespace($namespace)).
6d320 3a 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c :.$this->commands;..$dom.=.new.\
6d340 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f DOMDocument('1.0',.'UTF-8');.$do
6d360 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 64 6f 6d 2d 3e 61 70 m->formatOutput.=.true;.$dom->ap
6d380 70 65 6e 64 43 68 69 6c 64 28 24 78 6d 6c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 pendChild($xml.=.$dom->createEle
6d3a0 6d 65 6e 74 28 27 73 79 6d 66 6f 6e 79 27 29 29 3b 0a 0a 24 78 6d 6c 2d 3e 61 70 70 65 6e 64 43 ment('symfony'));..$xml->appendC
6d3c0 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 hild($commandsXML.=.$dom->create
6d3e0 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 73 27 29 29 3b 0a 0a 69 66 20 28 24 6e 61 6d 65 Element('commands'));..if.($name
6d400 73 70 61 63 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 space).{.$commandsXML->setAttrib
6d420 75 74 65 28 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 20 ute('namespace',.$namespace);.}.
6d440 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 else.{.$namespacesXML.=.$dom->cr
6d460 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 73 27 29 3b 0a 24 78 6d 6c 2d eateElement('namespaces');.$xml-
6d480 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 29 3b 0a 7d 0a >appendChild($namespacesXML);.}.
6d4a0 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 ...foreach.($this->sortCommands(
6d4c0 24 63 6f 6d 6d 61 6e 64 73 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 $commands).as.$space.=>.$command
6d4e0 73 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 s).{.if.(!$namespace).{.$namespa
6d500 63 65 41 72 72 61 79 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 ceArrayXML.=.$dom->createElement
6d520 28 27 6e 61 6d 65 73 70 61 63 65 27 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 2d 3e 61 ('namespace');.$namespacesXML->a
6d540 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 29 3b 0a ppendChild($namespaceArrayXML);.
6d560 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 $namespaceArrayXML->setAttribute
6d580 28 27 69 64 27 2c 20 24 73 70 61 63 65 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d ('id',.$space);.}..foreach.($com
6d5a0 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 mands.as.$name.=>.$command).{.if
6d5c0 20 28 24 6e 61 6d 65 20 21 3d 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 .($name.!==.$command->getName())
6d5e0 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 .{.continue;.}..if.(!$namespace)
6d600 20 7b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 .{.$commandXML.=.$dom->createEle
6d620 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 ment('command');.$namespaceArray
6d640 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 29 3b 0a 24 XML->appendChild($commandXML);.$
6d660 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 commandXML->appendChild($dom->cr
6d680 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6e 6f 64 65 20 3d eateTextNode($name));.}..$node.=
6d6a0 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 73 58 6d 6c 28 74 72 75 65 29 2d 3e 67 65 74 45 6c 65 6d 65 .$command->asXml(true)->getEleme
6d6c0 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 63 6f 6d 6d 61 6e 64 27 29 2d 3e 69 74 65 6d 28 30 29 ntsByTagName('command')->item(0)
6d6e0 3b 0a 24 6e 6f 64 65 20 3d 20 24 64 6f 6d 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 6e 6f 64 65 ;.$node.=.$dom->importNode($node
6d700 2c 20 74 72 75 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 ,.true);..$commandsXML->appendCh
6d720 69 6c 64 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 3f ild($node);.}.}..return.$asDom.?
6d740 20 24 64 6f 6d 20 3a 20 24 64 6f 6d 2d 3e 73 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a .$dom.:.$dom->saveXml();.}......
6d760 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f ..public.function.renderExceptio
6d780 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 73 74 72 6c 65 6e 20 3d 20 66 75 6e 63 74 n($e,.$output).{.$strlen.=.funct
6d7a0 69 6f 6e 20 28 24 73 74 72 69 6e 67 29 20 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 ion.($string).{.if.(!function_ex
6d7c0 69 73 74 73 28 27 6d 62 5f 73 74 72 6c 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c ists('mb_strlen')).{.return.strl
6d7e0 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 en($string);.}..if.(false.===.$e
6d800 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 ncoding.=.mb_detect_encoding($st
6d820 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b ring)).{.return.strlen($string);
6d840 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 24 65 .}..return.mb_strlen($string,.$e
6d860 6e 63 6f 64 69 6e 67 29 3b 0a 7d 3b 0a 0a 64 6f 20 7b 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 ncoding);.};..do.{.$title.=.spri
6d880 6e 74 66 28 27 20 20 5b 25 73 5d 20 20 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 65 29 29 3b 0a ntf('..[%s]..',.get_class($e));.
6d8a0 24 6c 65 6e 20 3d 20 24 73 74 72 6c 65 6e 28 24 74 69 74 6c 65 29 3b 0a 24 77 69 64 74 68 20 3d $len.=.$strlen($title);.$width.=
6d8c0 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 .$this->getTerminalWidth().?.$th
6d8e0 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 is->getTerminalWidth().-.1.:.PHP
6d900 5f 49 4e 54 5f 4d 41 58 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 _INT_MAX;.$lines.=.array();.fore
6d920 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 22 7b 5c 72 3f 5c 6e 7d 22 2c 20 24 65 2d 3e 67 ach.(preg_split("{\r?\n}",.$e->g
6d940 65 74 4d 65 73 73 61 67 65 28 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 66 6f 72 65 61 63 68 etMessage()).as.$line).{.foreach
6d960 20 28 73 74 72 5f 73 70 6c 69 74 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 20 2d 20 34 29 20 61 .(str_split($line,.$width.-.4).a
6d980 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 20 s.$line).{.$lines[].=.sprintf('.
6d9a0 20 25 73 20 20 27 2c 20 24 6c 69 6e 65 29 3b 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 73 74 72 6c .%s..',.$line);.$len.=.max($strl
6d9c0 65 6e 28 24 6c 69 6e 65 29 20 2b 20 34 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 en($line).+.4,.$len);.}.}..$mess
6d9e0 61 67 65 73 20 3d 20 61 72 72 61 79 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 ages.=.array(str_repeat('.',.$le
6da00 6e 29 2c 20 24 74 69 74 6c 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 6d 61 78 28 30 n),.$title.str_repeat('.',.max(0
6da20 2c 20 24 6c 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 74 69 74 6c 65 29 29 29 29 3b 0a 0a 66 6f ,.$len.-.$strlen($title))));..fo
6da40 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 reach.($lines.as.$line).{.$messa
6da60 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c ges[].=.$line.str_repeat('.',.$l
6da80 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 en.-.$strlen($line));.}..$messag
6daa0 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 0a 24 es[].=.str_repeat('.',.$len);..$
6dac0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 output->writeln("");.$output->wr
6dae0 69 74 65 6c 6e 28 22 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 iteln("");.foreach.($messages.as
6db00 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c .$message).{.$output->writeln('<
6db20 65 72 72 6f 72 3e 27 2e 24 6d 65 73 73 61 67 65 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a error>'.$message.'</error>');.}.
6db40 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 $output->writeln("");.$output->w
6db60 72 69 74 65 6c 6e 28 22 22 29 3b 0a 0a 69 66 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 riteln("");..if.(OutputInterface
6db80 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3d 3d 3d 20 24 6f 75 74 70 75 74 2d ::VERBOSITY_VERBOSE.===.$output-
6dba0 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 >getVerbosity()).{.$output->writ
6dbc0 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 45 78 63 65 70 74 69 6f 6e 20 74 72 61 63 65 3a 3c 2f eln('<comment>Exception.trace:</
6dbe0 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 0a 20 24 74 72 61 63 65 20 3d 20 24 65 2d 3e 67 65 74 54 comment>');....$trace.=.$e->getT
6dc00 72 61 63 65 28 29 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 72 61 63 65 2c 20 61 72 race();.array_unshift($trace,.ar
6dc20 72 61 79 28 0a 27 66 75 6e 63 74 69 6f 6e 27 20 3d 3e 20 27 27 2c 0a 27 66 69 6c 65 27 20 3d 3e ray(.'function'.=>.'',.'file'.=>
6dc40 20 24 65 2d 3e 67 65 74 46 69 6c 65 28 29 20 21 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 .$e->getFile().!=.null.?.$e->get
6dc60 46 69 6c 65 28 29 20 3a 20 27 6e 2f 61 27 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 65 2d 3e 67 65 File().:.'n/a',.'line'.=>.$e->ge
6dc80 74 4c 69 6e 65 28 29 20 21 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 tLine().!=.null.?.$e->getLine().
6dca0 3a 20 27 6e 2f 61 27 2c 0a 27 61 72 67 73 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 29 29 3b 0a :.'n/a',.'args'.=>.array(),.));.
6dcc0 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 72 .for.($i.=.0,.$count.=.count($tr
6dce0 61 63 65 29 3b 20 24 69 20 3c 20 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 6c 61 73 ace);.$i.<.$count;.$i++).{.$clas
6dd00 73 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 29 20 3f s.=.isset($trace[$i]['class']).?
6dd20 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 20 3a 20 27 27 3b 0a 24 74 79 70 65 .$trace[$i]['class'].:.'';.$type
6dd40 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 .=.isset($trace[$i]['type']).?.$
6dd60 74 72 61 63 65 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 3a 20 27 27 3b 0a 24 66 75 6e 63 74 69 6f trace[$i]['type'].:.'';.$functio
6dd80 6e 20 3d 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 75 6e 63 74 69 6f 6e 27 5d 3b 0a 24 66 69 6c n.=.$trace[$i]['function'];.$fil
6dda0 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 29 20 3f 20 e.=.isset($trace[$i]['file']).?.
6ddc0 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 24 6c 69 6e $trace[$i]['file'].:.'n/a';.$lin
6dde0 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 29 20 3f 20 e.=.isset($trace[$i]['line']).?.
6de00 24 74 72 61 63 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 0a 24 6f 75 $trace[$i]['line'].:.'n/a';..$ou
6de20 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 20 25 73 25 73 25 73 28 29 tput->writeln(sprintf('.%s%s%s()
6de40 20 61 74 20 3c 69 6e 66 6f 3e 25 73 3a 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 24 63 6c 61 73 73 2c .at.<info>%s:%s</info>',.$class,
6de60 20 24 74 79 70 65 2c 20 24 66 75 6e 63 74 69 6f 6e 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 .$type,.$function,.$file,.$line)
6de80 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 );.}..$output->writeln("");.$out
6dea0 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 7d 0a 7d 20 77 68 69 6c 65 20 28 24 65 20 put->writeln("");.}.}.while.($e.
6dec0 3d 20 24 65 2d 3e 67 65 74 50 72 65 76 69 6f 75 73 28 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 =.$e->getPrevious());..if.(null.
6dee0 21 3d 3d 20 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6f 75 !==.$this->runningCommand).{.$ou
6df00 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c tput->writeln(sprintf('<info>%s<
6df20 2f 69 6e 66 6f 3e 27 2c 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 /info>',.sprintf($this->runningC
6df40 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 ommand->getSynopsis(),.$this->ge
6df60 74 4e 61 6d 65 28 29 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 tName())));.$output->writeln("")
6df80 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ;.$output->writeln("");.}.}.....
6dfa0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c ..protected.function.getTerminal
6dfc0 57 69 64 74 68 28 29 0a 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f Width().{.if.(defined('PHP_WINDO
6dfe0 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 69 66 20 28 24 61 6e 73 69 63 WS_VERSION_BUILD')).{.if.($ansic
6e000 6f 6e 20 3d 20 67 65 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 29 20 7b 0a 72 65 74 75 72 6e on.=.getenv('ANSICON')).{.return
6e020 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 64 2b 29 78 2e 2a 24 7d 27 2c 20 27 24 .preg_replace('{^(\d+)x.*$}',.'$
6e040 31 27 2c 20 24 61 6e 73 69 63 6f 6e 29 3b 0a 7d 0a 0a 65 78 65 63 28 27 6d 6f 64 65 20 43 4f 4e 1',.$ansicon);.}..exec('mode.CON
6e060 27 2c 20 24 65 78 65 63 44 61 74 61 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b ',.$execData);.if.(preg_match('{
6e080 63 6f 6c 75 6d 6e 73 3a 5c 73 2a 28 5c 64 2b 29 7d 69 27 2c 20 24 65 78 65 63 44 61 74 61 5b 34 columns:\s*(\d+)}i',.$execData[4
6e0a0 5d 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b ],.$matches)).{.return.$matches[
6e0c0 31 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 22 7b 72 6f 77 73 2e 28 1];.}.}..if.(preg_match("{rows.(
6e0e0 5c 64 2b 29 3b 2e 63 6f 6c 75 6d 6e 73 2e 28 5c 64 2b 29 3b 7d 69 22 2c 20 24 74 68 69 73 2d 3e \d+);.columns.(\d+);}i",.$this->
6e100 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 getSttyColumns(),.$match)).{.ret
6e120 75 72 6e 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 urn.$match[2];.}.}.......protect
6e140 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 48 65 69 67 68 74 28 29 0a ed.function.getTerminalHeight().
6e160 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 {.if.(defined('PHP_WINDOWS_VERSI
6e180 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 69 66 20 28 24 61 6e 73 69 63 6f 6e 20 3d 20 67 65 74 ON_BUILD')).{.if.($ansicon.=.get
6e1a0 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 env('ANSICON')).{.return.preg_re
6e1c0 70 6c 61 63 65 28 27 7b 5e 5c 64 2b 78 5c 64 2b 20 5c 28 5c 64 2b 78 28 5c 64 2b 29 5c 29 24 7d place('{^\d+x\d+.\(\d+x(\d+)\)$}
6e1e0 27 2c 20 27 24 31 27 2c 20 74 72 69 6d 28 24 61 6e 73 69 63 6f 6e 29 29 3b 0a 7d 0a 0a 65 78 65 ',.'$1',.trim($ansicon));.}..exe
6e200 63 28 27 6d 6f 64 65 20 43 4f 4e 27 2c 20 24 65 78 65 63 44 61 74 61 29 3b 0a 69 66 20 28 70 72 c('mode.CON',.$execData);.if.(pr
6e220 65 67 5f 6d 61 74 63 68 28 27 7b 6c 69 6e 65 73 3a 5c 73 2a 28 5c 64 2b 29 7d 69 27 2c 20 24 65 eg_match('{lines:\s*(\d+)}i',.$e
6e240 78 65 63 44 61 74 61 5b 33 5d 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 xecData[3],.$matches)).{.return.
6e260 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 $matches[1];.}.}..if.(preg_match
6e280 28 22 7b 72 6f 77 73 2e 28 5c 64 2b 29 3b 2e 63 6f 6c 75 6d 6e 73 2e 28 5c 64 2b 29 3b 7d 69 22 ("{rows.(\d+);.columns.(\d+);}i"
6e2a0 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 2c 20 24 6d 61 74 63 ,.$this->getSttyColumns(),.$matc
6e2c0 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a h)).{.return.$match[1];.}.}.....
6e2e0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e ....protected.function.getComman
6e300 64 4e 61 6d 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 72 dName(InputInterface.$input).{.r
6e320 65 74 75 72 6e 20 24 69 6e 70 75 74 2d 3e 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 eturn.$input->getFirstArgument()
6e340 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ;.}.......protected.function.get
6e360 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 DefaultInputDefinition().{.retur
6e380 6e 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 n.new.InputDefinition(array(.new
6e3a0 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 2c 20 49 6e 70 75 74 41 .InputArgument('command',.InputA
6e3c0 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 rgument::REQUIRED,.'The.command.
6e3e0 74 6f 20 65 78 65 63 75 74 65 27 29 2c 0a 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 to.execute'),..new.InputOption('
6e400 2d 2d 68 65 6c 70 27 2c 20 27 2d 68 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 --help',.'-h',.InputOption::VALU
6e420 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 68 69 73 20 68 65 6c 70 20 6d 65 73 73 61 E_NONE,.'Display.this.help.messa
6e440 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 71 75 69 65 74 27 ge.'),.new.InputOption('--quiet'
6e460 2c 20 27 2d 71 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c ,.'-q',.InputOption::VALUE_NONE,
6e480 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 61 6e 79 20 6d 65 73 73 61 67 65 2e 27 29 2c 0a .'Do.not.output.any.message.'),.
6e4a0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 new.InputOption('--verbose',.'-v
6e4c0 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 6e 63 ',.InputOption::VALUE_NONE,.'Inc
6e4e0 72 65 61 73 65 20 76 65 72 62 6f 73 69 74 79 20 6f 66 20 6d 65 73 73 61 67 65 73 2e 27 29 2c 0a rease.verbosity.of.messages.'),.
6e500 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 new.InputOption('--version',.'-V
6e520 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 ',.InputOption::VALUE_NONE,.'Dis
6e540 70 6c 61 79 20 74 68 69 73 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 2e 27 29 play.this.application.version.')
6e560 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 61 6e 73 69 27 2c 20 27 27 2c 20 ,.new.InputOption('--ansi',.'',.
6e580 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 20 InputOption::VALUE_NONE,.'Force.
6e5a0 41 4e 53 49 20 6f 75 74 70 75 74 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ANSI.output.'),.new.InputOption(
6e5c0 27 2d 2d 6e 6f 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 '--no-ansi',.'',.InputOption::VA
6e5e0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 20 41 4e 53 49 20 6f 75 74 70 75 74 2e 27 LUE_NONE,.'Disable.ANSI.output.'
6e600 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 ),.new.InputOption('--no-interac
6e620 74 69 6f 6e 27 2c 20 27 2d 6e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f tion',.'-n',.InputOption::VALUE_
6e640 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 61 73 6b 20 61 6e 79 20 69 6e 74 65 72 61 63 74 69 76 NONE,.'Do.not.ask.any.interactiv
6e660 65 20 71 75 65 73 74 69 6f 6e 2e 27 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 e.question.'),.));.}.......prote
6e680 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 cted.function.getDefaultCommands
6e6a0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 48 65 6c 70 43 6f 6d 6d 61 6e ().{.return.array(new.HelpComman
6e6c0 64 28 29 2c 20 6e 65 77 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a d(),.new.ListCommand());.}......
6e6e0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 65 .protected.function.getDefaultHe
6e700 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 48 65 6c 70 65 72 53 65 74 lperSet().{.return.new.HelperSet
6e720 28 61 72 72 61 79 28 0a 6e 65 77 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a 6e (array(.new.FormatterHelper(),.n
6e740 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ew.DialogHelper(),.));.}.......p
6e760 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 rivate.function.getSttyColumns()
6e780 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 .{.if.(!function_exists('proc_op
6e7a0 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 73 70 en')).{.return;.}..$descriptorsp
6e7c0 65 63 20 3d 20 61 72 72 61 79 28 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 ec.=.array(1.=>.array('pipe',.'w
6e7e0 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 24 70 '),.2.=>.array('pipe',.'w'));.$p
6e800 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 27 73 74 74 79 20 2d 61 20 7c 20 67 72 rocess.=.proc_open('stty.-a.|.gr
6e820 65 70 20 63 6f 6c 75 6d 6e 73 27 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 2c 20 24 70 ep.columns',.$descriptorspec,.$p
6e840 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 79 28 27 73 75 70 70 72 65 73 ipes,.null,.null,.array('suppres
6e860 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 69 66 20 28 69 73 5f 72 65 73 6f s_errors'.=>.true));.if.(is_reso
6e880 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 6e 66 6f 20 3d 20 73 74 72 65 61 6d urce($process)).{.$info.=.stream
6e8a0 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 _get_contents($pipes[1]);.fclose
6e8c0 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 32 5d 29 3b 0a ($pipes[1]);.fclose($pipes[2]);.
6e8e0 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 proc_close($process);..return.$i
6e900 6e 66 6f 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f nfo;.}.}.........private.functio
6e920 6e 20 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 6e 61 6d n.sortCommands($commands).{.$nam
6e940 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 espacedCommands.=.array();.forea
6e960 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 ch.($commands.as.$name.=>.$comma
6e980 6e 64 29 20 7b 0a 24 6b 65 79 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 nd).{.$key.=.$this->extractNames
6e9a0 70 61 63 65 28 24 6e 61 6d 65 2c 20 31 29 3b 0a 69 66 20 28 21 24 6b 65 79 29 20 7b 0a 24 6b 65 pace($name,.1);.if.(!$key).{.$ke
6e9c0 79 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d y.=.'_global';.}..$namespacedCom
6e9e0 6d 61 6e 64 73 5b 24 6b 65 79 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d mands[$key][$name].=.$command;.}
6ea00 0a 6b 73 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 29 3b 0a 0a 66 6f .ksort($namespacedCommands);..fo
6ea20 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 61 73 20 26 24 reach.($namespacedCommands.as.&$
6ea40 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 6b 73 6f 72 74 28 24 63 6f 6d 6d 61 6e 64 73 29 3b 0a 7d 0a commands).{.ksort($commands);.}.
6ea60 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a .return.$namespacedCommands;.}..
6ea80 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 .......private.function.getAbbre
6eaa0 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 viationSuggestions($abbrevs).{.r
6eac0 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 2c 20 25 73 25 73 27 2c 20 24 61 62 62 72 65 eturn.sprintf('%s,.%s%s',.$abbre
6eae0 76 73 5b 30 5d 2c 20 24 61 62 62 72 65 76 73 5b 31 5d 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 vs[0],.$abbrevs[1],.count($abbre
6eb00 76 73 29 20 3e 20 32 20 3f 20 73 70 72 69 6e 74 66 28 27 20 61 6e 64 20 25 64 20 6d 6f 72 65 27 vs).>.2.?.sprintf('.and.%d.more'
6eb20 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 2d 20 32 29 20 3a 20 27 27 29 3b 0a 7d 0a ,.count($abbrevs).-.2).:.'');.}.
6eb40 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 .........private.function.extrac
6eb60 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 tNamespace($name,.$limit.=.null)
6eb80 0a 7b 0a 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 3b .{.$parts.=.explode(':',.$name);
6eba0 0a 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c .array_pop($parts);..return.impl
6ebc0 6f 64 65 28 27 3a 27 2c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6c 69 6d 69 74 20 3f 20 24 70 61 72 74 ode(':',.null.===.$limit.?.$part
6ebe0 73 20 3a 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 70 61 72 74 73 2c 20 30 2c 20 24 6c 69 6d 69 s.:.array_slice($parts,.0,.$limi
6ec00 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e t));.}..........private.function
6ec20 20 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 43 6f 6d 6d 61 6e 64 73 28 24 6e 61 6d 65 2c 20 .findAlternativeCommands($name,.
6ec40 24 61 62 62 72 65 76 73 29 0a 7b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e $abbrevs).{.$callback.=.function
6ec60 28 24 69 74 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 24 69 74 65 6d 2d 3e 67 65 74 4e 61 6d 65 28 ($item).{.return.$item->getName(
6ec80 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 );.};..return.$this->findAlterna
6eca0 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 2c 20 24 61 tives($name,.$this->commands,.$a
6ecc0 62 62 72 65 76 73 2c 20 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 bbrevs,.$callback);.}..........p
6ece0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 4e rivate.function.findAlternativeN
6ed00 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 amespace($name,.$abbrevs).{.retu
6ed20 72 6e 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 rn.$this->findAlternatives($name
6ed40 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 2c 20 24 61 62 62 72 65 ,.$this->getNamespaces(),.$abbre
6ed60 76 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 vs);.}.............private.funct
6ed80 69 6f 6e 20 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6c ion.findAlternatives($name,.$col
6eda0 6c 65 63 74 69 6f 6e 2c 20 24 61 62 62 72 65 76 73 2c 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e lection,.$abbrevs,.$callback.=.n
6edc0 75 6c 6c 29 0a 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ull).{.$alternatives.=.array();.
6ede0 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 .foreach.($collection.as.$item).
6ee00 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 24 69 74 65 {.if.(null.!==.$callback).{.$ite
6ee20 6d 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 69 m.=.call_user_func($callback,.$i
6ee40 74 65 6d 29 3b 0a 7d 0a 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d tem);.}..$lev.=.levenshtein($nam
6ee60 65 2c 20 24 69 74 65 6d 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e e,.$item);.if.($lev.<=.strlen($n
6ee80 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 69 74 ame)./.3.||.false.!==.strpos($it
6eea0 65 6d 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 em,.$name)).{.$alternatives[$ite
6eec0 6d 5d 20 3d 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 61 6c 74 65 72 6e 61 74 69 76 m].=.$lev;.}.}..if.(!$alternativ
6eee0 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 62 62 72 65 76 73 20 61 73 20 24 6b 65 79 20 es).{.foreach.($abbrevs.as.$key.
6ef00 3d 3e 20 24 76 61 6c 75 65 73 29 20 7b 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e =>.$values).{.$lev.=.levenshtein
6ef20 28 24 6e 61 6d 65 2c 20 24 6b 65 79 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 ($name,.$key);.if.($lev.<=.strle
6ef40 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 n($name)./.3.||.false.!==.strpos
6ef60 28 24 6b 65 79 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 ($key,.$name)).{.foreach.($value
6ef80 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 76 61 s.as.$value).{.$alternatives[$va
6efa0 6c 75 65 5d 20 3d 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 61 73 6f 72 74 28 24 61 6c 74 lue].=.$lev;.}.}.}.}..asort($alt
6efc0 65 72 6e 61 74 69 76 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 ernatives);..return.array_keys($
6efe0 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a alternatives);.}.}.<?php........
6f000 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ...namespace.Symfony\Component\C
6f020 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 onsole\Input;.........class.Inpu
6f040 74 41 72 67 75 6d 65 6e 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 51 55 49 52 45 44 20 3d 20 31 3b 0a tArgument.{.const.REQUIRED.=.1;.
6f060 63 6f 6e 73 74 20 4f 50 54 49 4f 4e 41 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 49 53 5f 41 52 52 const.OPTIONAL.=.2;.const.IS_ARR
6f080 41 59 20 3d 20 34 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 AY.=.4;..private.$name;.private.
6f0a0 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 $mode;.private.$default;.private
6f0c0 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .$description;..............publ
6f0e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 ic.function.__construct($name,.$
6f100 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 mode.=.null,.$description.=.'',.
6f120 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 $default.=.null).{.if.(null.===.
6f140 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 4f 50 54 49 4f 4e 41 4c 3b $mode).{.$mode.=.self::OPTIONAL;
6f160 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c 7c 20 24 6d 6f .}.elseif.(!is_int($mode).||.$mo
6f180 64 65 20 3e 20 37 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 de.>.7.||.$mode.<.1).{.throw.new
6f1a0 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e .\InvalidArgumentException(sprin
6f1c0 74 66 28 27 41 72 67 75 6d 65 6e 74 20 6d 6f 64 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 76 61 tf('Argument.mode."%s".is.not.va
6f1e0 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d lid.',.$mode));.}..$this->name.=
6f200 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 24 74 68 .$name;.$this->mode.=.$mode;.$th
6f220 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a is->description.=.$description;.
6f240 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a .$this->setDefault($default);.}.
6f260 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a ......public.function.getName().
6f280 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 {.return.$this->name;.}.......pu
6f2a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 71 75 69 72 65 64 28 29 0a 7b 0a 72 65 74 blic.function.isRequired().{.ret
6f2c0 75 72 6e 20 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 52 45 urn.self::REQUIRED.===.(self::RE
6f2e0 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 QUIRED.&.$this->mode);.}.......p
6f300 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 74 75 72 ublic.function.isArray().{.retur
6f320 6e 20 73 65 6c 66 3a 3a 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 49 53 5f 41 n.self::IS_ARRAY.===.(self::IS_A
6f340 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 RRAY.&.$this->mode);.}.........p
6f360 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 ublic.function.setDefault($defau
6f380 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 lt.=.null).{.if.(self::REQUIRED.
6f3a0 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 ===.$this->mode.&&.null.!==.$def
6f3c0 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f ault).{.throw.new.\LogicExceptio
6f3e0 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 65 78 n('Cannot.set.a.default.value.ex
6f400 63 65 70 74 20 66 6f 72 20 50 61 72 61 6d 65 74 65 72 3a 3a 4f 50 54 49 4f 4e 41 4c 20 6d 6f 64 cept.for.Parameter::OPTIONAL.mod
6f420 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b e.');.}..if.($this->isArray()).{
6f440 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 .if.(null.===.$default).{.$defau
6f460 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 61 72 72 61 lt.=.array();.}.elseif.(!is_arra
6f480 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 y($default)).{.throw.new.\LogicE
6f4a0 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f 72 20 61 6e xception('A.default.value.for.an
6f4c0 20 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 .array.argument.must.be.an.array
6f4e0 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 64 65 66 61 .');.}.}..$this->default.=.$defa
6f500 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ult;.}.......public.function.get
6f520 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c Default().{.return.$this->defaul
6f540 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 t;.}.......public.function.getDe
6f560 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 scription().{.return.$this->desc
6f580 72 69 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d ription;.}.}.<?php...........nam
6f5a0 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 espace.Symfony\Component\Console
6f5c0 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 \Input;.............abstract.cla
6f5e0 73 73 20 49 6e 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 49 6e 74 65 72 66 61 ss.Input.implements.InputInterfa
6f600 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 6f 74 ce.{.protected.$definition;.prot
6f620 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 67 75 6d ected.$options;.protected.$argum
6f640 65 6e 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 74 ents;.protected.$interactive.=.t
6f660 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e rue;.......public.function.__con
6f680 73 74 72 75 63 74 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 struct(InputDefinition.$definiti
6f6a0 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 69 6e on.=.null).{.if.(null.===.$defin
6f6c0 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 ition).{.$this->definition.=.new
6f6e0 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 .InputDefinition();.}.else.{.$th
6f700 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 76 61 is->bind($definition);.$this->va
6f720 6c 69 64 61 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 lidate();.}.}.......public.funct
6f740 69 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 ion.bind(InputDefinition.$defini
6f760 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 tion).{.$this->arguments.=.array
6f780 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 ();.$this->options.=.array();.$t
6f7a0 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a his->definition.=.$definition;..
6f7c0 24 74 68 69 73 2d 3e 70 61 72 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 $this->parse();.}.....abstract.p
6f7e0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 3b 0a 0a 0a 0a 0a 0a rotected.function.parse();......
6f800 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 0a 7b 0a 69 66 .public.function.validate().{.if
6f820 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3c 20 24 74 68 69 .(count($this->arguments).<.$thi
6f840 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 s->definition->getArgumentRequir
6f860 65 64 43 6f 75 6e 74 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 edCount()).{.throw.new.\RuntimeE
6f880 78 63 65 70 74 69 6f 6e 28 27 4e 6f 74 20 65 6e 6f 75 67 68 20 61 72 67 75 6d 65 6e 74 73 2e 27 xception('Not.enough.arguments.'
6f8a0 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 );.}.}.......public.function.isI
6f8c0 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 74 nteractive().{.return.$this->int
6f8e0 65 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f eractive;.}.......public.functio
6f900 6e 20 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 0a 7b n.setInteractive($interactive).{
6f920 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 .$this->interactive.=.(Boolean).
6f940 24 69 6e 74 65 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $interactive;.}.......public.fun
6f960 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 ction.getArguments().{.return.ar
6f980 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 ray_merge($this->definition->get
6f9a0 41 72 67 75 6d 65 6e 74 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d ArgumentDefaults(),.$this->argum
6f9c0 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ents);.}...........public.functi
6f9e0 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 on.getArgument($name).{.if.(!$th
6fa00 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d is->definition->hasArgument($nam
6fa20 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 e)).{.throw.new.\InvalidArgument
6fa40 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 Exception(sprintf('The."%s".argu
6fa60 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a ment.does.not.exist.',.$name));.
6fa80 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 }..return.isset($this->arguments
6faa0 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d [$name]).?.$this->arguments[$nam
6fac0 65 5d 20 3a 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d e].:.$this->definition->getArgum
6fae0 65 6e 74 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a ent($name)->getDefault();.}.....
6fb00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 .....public.function.setArgument
6fb20 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 ($name,.$value).{.if.(!$this->de
6fb40 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a finition->hasArgument($name)).{.
6fb60 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
6fb80 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 ion(sprintf('The."%s".argument.d
6fba0 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 oes.not.exist.',.$name));.}..$th
6fbc0 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d is->arguments[$name].=.$value;.}
6fbe0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 .........public.function.hasArgu
6fc00 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 ment($name).{.return.$this->defi
6fc20 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a nition->hasArgument($name);.}...
6fc40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 ....public.function.getOptions()
6fc60 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 .{.return.array_merge($this->def
6fc80 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 inition->getOptionDefaults(),.$t
6fca0 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 his->options);.}...........publi
6fcc0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 c.function.getOption($name).{.if
6fce0 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 .(!$this->definition->hasOption(
6fd00 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 $name)).{.throw.new.\InvalidArgu
6fd20 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 mentException(sprintf('The."%s".
6fd40 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 option.does.not.exist.',.$name))
6fd60 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 ;.}..return.isset($this->options
6fd80 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d [$name]).?.$this->options[$name]
6fda0 20 3a 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 .:.$this->definition->getOption(
6fdc0 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a $name)->getDefault();.}.........
6fde0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 .public.function.setOption($name
6fe00 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 ,.$value).{.if.(!$this->definiti
6fe20 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 on->hasOption($name)).{.throw.ne
6fe40 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\InvalidArgumentException(spri
6fe60 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 ntf('The."%s".option.does.not.ex
6fe80 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e ist.',.$name));.}..$this->option
6fea0 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 s[$name].=.$value;.}.........pub
6fec0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a lic.function.hasOption($name).{.
6fee0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 return.$this->definition->hasOpt
6ff00 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ion($name);.}.}.<?php...........
6ff20 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 namespace.Symfony\Component\Cons
6ff40 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 ole\Input;.............class.Str
6ff60 69 6e 67 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 41 72 67 76 49 6e 70 75 74 0a 7b 0a 63 6f 6e ingInput.extends.ArgvInput.{.con
6ff80 73 74 20 52 45 47 45 58 5f 53 54 52 49 4e 47 20 3d 20 27 28 5b 5e 20 5d 2b 3f 29 28 3f 3a 20 7c st.REGEX_STRING.=.'([^.]+?)(?:.|
6ffa0 28 3f 3c 21 5c 5c 5c 5c 29 22 7c 28 3f 3c 21 5c 5c 5c 5c 29 5c 27 7c 24 29 27 3b 0a 63 6f 6e 73 (?<!\\\\)"|(?<!\\\\)\'|$)';.cons
6ffc0 74 20 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 20 3d 20 27 28 3f 3a 22 28 5b 5e t.REGEX_QUOTED_STRING.=.'(?:"([^
6ffe0 22 5c 5c 5c 5c 5d 2a 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 29 22 7c 5c 27 28 "\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'(
70000 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 29 2a 29 5c [^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\
70020 27 29 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ')';..........public.function.__
70040 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 70 75 74 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f construct($input,.InputDefinitio
70060 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a n.$definition.=.null).{.parent::
70080 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 28 29 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e __construct(array(),.$definition
700a0 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 54 6f 6b 65 6e 73 28 24 74 68 69 73 2d 3e 74 6f 6b 65 );..$this->setTokens($this->toke
700c0 6e 69 7a 65 28 24 69 6e 70 75 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 nize($input));.}...........priva
700e0 74 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 29 0a 7b 0a 24 te.function.tokenize($input).{.$
70100 69 6e 70 75 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5c 72 5c 6e 7c 5c 72 7c input.=.preg_replace('/(\r\n|\r|
70120 5c 6e 7c 5c 74 29 2f 27 2c 20 27 20 27 2c 20 24 69 6e 70 75 74 29 3b 0a 0a 24 74 6f 6b 65 6e 73 \n|\t)/',.'.',.$input);..$tokens
70140 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 69 6e .=.array();.$length.=.strlen($in
70160 70 75 74 29 3b 0a 24 63 75 72 73 6f 72 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 24 63 75 72 73 6f put);.$cursor.=.0;.while.($curso
70180 72 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f r.<.$length).{.if.(preg_match('/
701a0 5c 73 2b 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 \s+/A',.$input,.$match,.null,.$c
701c0 75 72 73 6f 72 29 29 20 7b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ursor)).{.}.elseif.(preg_match('
701e0 2f 28 5b 5e 3d 22 5c 27 20 5d 2b 3f 29 28 3d 3f 29 28 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f /([^="\'.]+?)(=?)('.self::REGEX_
70200 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2b 29 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d QUOTED_STRING.'+)/A',.$input,.$m
70220 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b atch,.null,.$cursor)).{.$tokens[
70240 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e 24 6d 61 74 63 68 5b 32 5d 2e 73 74 72 69 70 63 73 6c ].=.$match[1].$match[2].stripcsl
70260 61 73 68 65 73 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 22 5c 27 27 2c 20 27 ashes(str_replace(array('"\'',.'
70280 5c 27 22 27 2c 20 27 5c 27 5c 27 27 2c 20 27 22 22 27 29 2c 20 27 27 2c 20 73 75 62 73 74 72 28 \'"',.'\'\'',.'""'),.'',.substr(
702a0 24 6d 61 74 63 68 5b 33 5d 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 33 5d 29 20 $match[3],.1,.strlen($match[3]).
702c0 2d 20 32 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 -.2)));.}.elseif.(preg_match('/'
702e0 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c .self::REGEX_QUOTED_STRING.'/A',
70300 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 .$input,.$match,.null,.$cursor))
70320 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 75 62 .{.$tokens[].=.stripcslashes(sub
70340 73 74 72 28 24 6d 61 74 63 68 5b 30 5d 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b str($match[0],.1,.strlen($match[
70360 30 5d 29 20 2d 20 32 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 0]).-.2));.}.elseif.(preg_match(
70380 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 6e '/'.self::REGEX_STRING.'/A',.$in
703a0 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 put,.$match,.null,.$cursor)).{.$
703c0 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 24 6d 61 74 63 68 5b tokens[].=.stripcslashes($match[
703e0 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 0a 20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 1]);.}.else.{.....throw.new.\Inv
70400 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 alidArgumentException(sprintf('U
70420 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 20 69 6e 70 75 74 20 6e 65 61 72 20 22 2e 2e 2e 20 25 nable.to.parse.input.near."....%
70440 73 20 2e 2e 2e 22 27 2c 20 73 75 62 73 74 72 28 24 69 6e 70 75 74 2c 20 24 63 75 72 73 6f 72 2c s...."',.substr($input,.$cursor,
70460 20 31 30 29 29 29 3b 0a 0a 20 7d 0a 0a 24 63 75 72 73 6f 72 20 2b 3d 20 73 74 72 6c 65 6e 28 24 .10)));...}..$cursor.+=.strlen($
70480 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 73 3b 0a 7d 0a match[0]);.}..return.$tokens;.}.
704a0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
704c0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a ony\Component\Console\Input;....
704e0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 4f 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 56 .....class.InputOption.{.const.V
70500 41 4c 55 45 5f 4e 4f 4e 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 52 45 51 55 49 ALUE_NONE.=.1;.const.VALUE_REQUI
70520 52 45 44 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 20 RED.=.2;.const.VALUE_OPTIONAL.=.
70540 34 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d 20 38 3b 0a 0a 70 72 4;.const.VALUE_IS_ARRAY.=.8;..pr
70560 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 3b 0a ivate.$name;.private.$shortcut;.
70580 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b private.$mode;.private.$default;
705a0 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .private.$description;..........
705c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
705e0 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 6f 64 65 20 ($name,.$shortcut.=.null,.$mode.
70600 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 =.null,.$description.=.'',.$defa
70620 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 ult.=.null).{.if.(0.===.strpos($
70640 6e 61 6d 65 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 6e name,.'--')).{.$name.=.substr($n
70660 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6e 61 6d 65 29 29 20 7b 0a ame,.2);.}..if.(empty($name)).{.
70680 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
706a0 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d ion('An.option.name.cannot.be.em
706c0 70 74 79 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 68 6f 72 74 63 75 74 29 29 pty.');.}..if.(empty($shortcut))
706e0 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c .{.$shortcut.=.null;.}..if.(null
70700 20 21 3d 3d 20 24 73 68 6f 72 74 63 75 74 29 20 7b 0a 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 73 .!==.$shortcut).{.if.('-'.===.$s
70720 68 6f 72 74 63 75 74 5b 30 5d 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 73 75 62 73 74 72 hortcut[0]).{.$shortcut.=.substr
70740 28 24 73 68 6f 72 74 63 75 74 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 68 ($shortcut,.1);.}..if.(empty($sh
70760 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 ortcut)).{.throw.new.\InvalidArg
70780 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 73 68 6f 72 74 63 umentException('An.option.shortc
707a0 75 74 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 ut.cannot.be.empty.');.}.}..if.(
707c0 6e 75 6c 6c 20 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a null.===.$mode).{.$mode.=.self::
707e0 56 41 4c 55 45 5f 4e 4f 4e 45 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6d VALUE_NONE;.}.elseif.(!is_int($m
70800 6f 64 65 29 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 31 35 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 ode).||.$mode.>.15.||.$mode.<.1)
70820 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
70840 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4f 70 74 69 6f 6e 20 6d 6f 64 65 20 22 25 73 22 eption(sprintf('Option.mode."%s"
70860 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 .is.not.valid.',.$mode));.}..$th
70880 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 is->name.=.$name;.$this->shortcu
708a0 74 20 3d 20 24 73 68 6f 72 74 63 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f t.=.$shortcut;.$this->mode.=.$mo
708c0 64 65 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 de;.$this->description.=.$descri
708e0 70 74 69 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 20 26 26 20 ption;..if.($this->isArray().&&.
70900 21 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e !$this->acceptValue()).{.throw.n
70920 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6d ew.\InvalidArgumentException('Im
70940 70 6f 73 73 69 62 6c 65 20 74 6f 20 68 61 76 65 20 61 6e 20 6f 70 74 69 6f 6e 20 6d 6f 64 65 20 possible.to.have.an.option.mode.
70960 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 69 66 20 74 68 65 20 6f 70 74 69 6f 6e 20 64 6f 65 VALUE_IS_ARRAY.if.the.option.doe
70980 73 20 6e 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 s.not.accept.a.value.');.}..$thi
709a0 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a s->setDefault($default);.}......
709c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 63 75 74 28 29 0a 7b .public.function.getShortcut().{
709e0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->shortcut;.}......
70a00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 .public.function.getName().{.ret
70a20 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 urn.$this->name;.}.......public.
70a40 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 56 61 6c 75 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.acceptValue().{.return.
70a60 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 7c 7c 20 24 74 68 69 $this->isValueRequired().||.$thi
70a80 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 s->isValueOptional();.}.......pu
70aa0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 0a blic.function.isValueRequired().
70ac0 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 3d {.return.self::VALUE_REQUIRED.==
70ae0 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d =.(self::VALUE_REQUIRED.&.$this-
70b00 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 >mode);.}.......public.function.
70b20 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a isValueOptional().{.return.self:
70b40 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 :VALUE_OPTIONAL.===.(self::VALUE
70b60 5f 4f 50 54 49 4f 4e 41 4c 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a _OPTIONAL.&.$this->mode);.}.....
70b80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 ..public.function.isArray().{.re
70ba0 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 turn.self::VALUE_IS_ARRAY.===.(s
70bc0 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 elf::VALUE_IS_ARRAY.&.$this->mod
70be0 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 e);.}.........public.function.se
70c00 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 tDefault($default.=.null).{.if.(
70c20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 self::VALUE_NONE.===.(self::VALU
70c40 45 5f 4e 4f 4e 45 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 6e 75 6c 6c 20 21 3d E_NONE.&.$this->mode).&&.null.!=
70c60 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 =.$default).{.throw.new.\LogicEx
70c80 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 ception('Cannot.set.a.default.va
70ca0 6c 75 65 20 77 68 65 6e 20 75 73 69 6e 67 20 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e lue.when.using.Option::VALUE_NON
70cc0 45 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 E.mode.');.}..if.($this->isArray
70ce0 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 ()).{.if.(null.===.$default).{.$
70d00 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 default.=.array();.}.elseif.(!is
70d20 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c _array($default)).{.throw.new.\L
70d40 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 ogicException('A.default.value.f
70d60 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 70 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 or.an.array.option.must.be.an.ar
70d80 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 74 ray.');.}.}..$this->default.=.$t
70da0 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 24 64 65 66 61 75 6c 74 20 3a 20 his->acceptValue().?.$default.:.
70dc0 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 false;.}.......public.function.g
70de0 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 61 etDefault().{.return.$this->defa
70e00 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ult;.}.......public.function.get
70e20 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 Description().{.return.$this->de
70e40 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 scription;.}........public.funct
70e60 69 6f 6e 20 65 71 75 61 6c 73 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a ion.equals(InputOption.$option).
70e80 7b 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 {.return.$option->getName().===.
70ea0 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 $this->getName().&&.$option->get
70ec0 53 68 6f 72 74 63 75 74 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 6f 72 74 63 75 Shortcut().===.$this->getShortcu
70ee0 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3d 3d 3d t().&&.$option->getDefault().===
70f00 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d .$this->getDefault().&&.$option-
70f20 3e 69 73 41 72 72 61 79 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 0a >isArray().===.$this->isArray().
70f40 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3d 3d &&.$option->isValueRequired().==
70f60 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 0a 26 26 20 24 6f =.$this->isValueRequired().&&.$o
70f80 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3d 3d 3d 20 24 74 68 ption->isValueOptional().===.$th
70fa0 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 3b 0a 7d 0a 7d 0a 3c 3f 70 68 is->isValueOptional().;.}.}.<?ph
70fc0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
70fe0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mponent\Console\Input;..........
71000 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 67 76 49 6e 70 ...................class.ArgvInp
71020 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 6f 6b 65 ut.extends.Input.{.private.$toke
71040 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ns;.private.$parsed;..........pu
71060 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 blic.function.__construct(array.
71080 24 61 72 67 76 20 3d 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 $argv.=.null,.InputDefinition.$d
710a0 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d efinition.=.null).{.if.(null.===
710c0 20 24 61 72 67 76 29 20 7b 0a 24 61 72 67 76 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 .$argv).{.$argv.=.$_SERVER['argv
710e0 27 5d 3b 0a 7d 0a 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 67 76 29 3b 0a 0a 24 74 '];.}....array_shift($argv);..$t
71100 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 61 72 67 76 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f his->tokens.=.$argv;..parent::__
71120 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 construct($definition);.}..prote
71140 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 6f 6b 65 6e 73 28 61 72 72 61 79 20 24 74 cted.function.setTokens(array.$t
71160 6f 6b 65 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 74 6f 6b 65 6e 73 okens).{.$this->tokens.=.$tokens
71180 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 ;.}.....protected.function.parse
711a0 28 29 0a 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 ().{.$parseOptions.=.true;.$this
711c0 2d 3e 70 61 72 73 65 64 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 69 6c 65 20 ->parsed.=.$this->tokens;.while.
711e0 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 (null.!==.$token.=.array_shift($
71200 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b 0a 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f this->parsed)).{.if.($parseOptio
71220 6e 73 20 26 26 20 27 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 ns.&&.''.==.$token).{.$this->par
71240 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 seArgument($token);.}.elseif.($p
71260 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 2d 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b arseOptions.&&.'--'.==.$token).{
71280 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 .$parseOptions.=.false;.}.elseif
712a0 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 .($parseOptions.&&.0.===.strpos(
712c0 24 74 6f 6b 65 6e 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 6f 6e $token,.'--')).{.$this->parseLon
712e0 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 gOption($token);.}.elseif.($pars
71300 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b eOptions.&&.'-'.===.$token[0]).{
71320 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 .$this->parseShortOption($token)
71340 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 ;.}.else.{.$this->parseArgument(
71360 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e $token);.}.}.}.......private.fun
71380 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b ction.parseShortOption($token).{
713a0 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 31 29 3b 0a 0a 69 66 20 .$name.=.substr($token,.1);..if.
713c0 28 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 3e 20 31 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d (strlen($name).>.1).{.if.($this-
713e0 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 >definition->hasShortcut($name[0
71400 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 ]).&&.$this->definition->getOpti
71420 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 5d 29 2d 3e 61 63 63 65 70 74 56 onForShortcut($name[0])->acceptV
71440 61 6c 75 65 28 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f alue()).{...$this->addShortOptio
71460 6e 28 24 6e 61 6d 65 5b 30 5d 2c 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 31 29 29 3b 0a 7d n($name[0],.substr($name,.1));.}
71480 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 .else.{.$this->parseShortOptionS
714a0 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 et($name);.}.}.else.{.$this->add
714c0 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a ShortOption($name,.null);.}.}...
714e0 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f 72 ......private.function.parseShor
71500 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 tOptionSet($name).{.$len.=.strle
71520 6e 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6c 65 6e n($name);.for.($i.=.0;.$i.<.$len
71540 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e ;.$i++).{.if.(!$this->definition
71560 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 5d 29 29 20 7b 0a 74 68 72 6f ->hasShortcut($name[$i])).{.thro
71580 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 w.new.\RuntimeException(sprintf(
715a0 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 'The."-%s".option.does.not.exist
715c0 2e 27 2c 20 24 6e 61 6d 65 5b 24 69 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 .',.$name[$i]));.}..$option.=.$t
715e0 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f his->definition->getOptionForSho
71600 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 5d 29 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 rtcut($name[$i]);.if.($option->a
71620 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 cceptValue()).{.$this->addLongOp
71640 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 69 20 3d 3d 3d 20 tion($option->getName(),.$i.===.
71660 24 6c 65 6e 20 2d 20 31 20 3f 20 6e 75 6c 6c 20 3a 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 $len.-.1.?.null.:.substr($name,.
71680 24 69 20 2b 20 31 29 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 $i.+.1));..break;.}.else.{.$this
716a0 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 ->addLongOption($option->getName
716c0 28 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 (),.true);.}.}.}.......private.f
716e0 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a unction.parseLongOption($token).
71700 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 32 29 3b 0a 0a 69 66 {.$name.=.substr($token,.2);..if
71720 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c .(false.!==.$pos.=.strpos($name,
71740 20 27 3d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 .'=')).{.$this->addLongOption(su
71760 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 2c 20 73 75 62 73 74 72 28 24 6e 61 bstr($name,.0,.$pos),.substr($na
71780 6d 65 2c 20 24 70 6f 73 20 2b 20 31 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e me,.$pos.+.1));.}.else.{.$this->
717a0 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a addLongOption($name,.null);.}.}.
717c0 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 72 ........private.function.parseAr
717e0 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 63 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 gument($token).{.$c.=.count($thi
71800 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 s->arguments);....if.($this->def
71820 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 63 29 29 20 7b 0a 24 61 72 67 inition->hasArgument($c)).{.$arg
71840 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e .=.$this->definition->getArgumen
71860 74 28 24 63 29 3b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 t($c);.$this->arguments[$arg->ge
71880 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 2d 3e 69 73 41 72 72 61 79 28 29 3f 20 61 72 72 61 tName()].=.$arg->isArray()?.arra
718a0 79 28 24 74 6f 6b 65 6e 29 20 3a 20 24 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 69 66 20 y($token).:.$token;....}.elseif.
718c0 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 ($this->definition->hasArgument(
718e0 24 63 20 2d 20 31 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 $c.-.1).&&.$this->definition->ge
71900 74 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a tArgument($c.-.1)->isArray()).{.
71920 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 $arg.=.$this->definition->getArg
71940 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 3b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b ument($c.-.1);.$this->arguments[
71960 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 0a 0a 20 $arg->getName()][].=.$token;....
71980 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 }.else.{.throw.new.\RuntimeExcep
719a0 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d 0a 7d tion('Too.many.arguments.');.}.}
719c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 ..........private.function.addSh
719e0 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 ortOption($shortcut,.$value).{.i
71a00 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 f.(!$this->definition->hasShortc
71a20 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 ut($shortcut)).{.throw.new.\Runt
71a40 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 imeException(sprintf('The."-%s".
71a60 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 option.does.not.exist.',.$shortc
71a80 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 ut));.}..$this->addLongOption($t
71aa0 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f his->definition->getOptionForSho
71ac0 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 rtcut($shortcut)->getName(),.$va
71ae0 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f lue);.}..........private.functio
71b00 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b n.addLongOption($name,.$value).{
71b20 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 .if.(!$this->definition->hasOpti
71b40 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 on($name)).{.throw.new.\RuntimeE
71b60 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 xception(sprintf('The."--%s".opt
71b80 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d ion.does.not.exist.',.$name));.}
71ba0 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 ..$option.=.$this->definition->g
71bc0 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 etOption($name);..if.(null.===.$
71be0 76 61 6c 75 65 20 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 value.&&.$option->acceptValue())
71c00 20 7b 0a 0a 20 0a 20 24 6e 65 78 74 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 .{.....$next.=.array_shift($this
71c20 2d 3e 70 61 72 73 65 64 29 3b 0a 69 66 20 28 27 2d 27 20 21 3d 3d 20 24 6e 65 78 74 5b 30 5d 29 ->parsed);.if.('-'.!==.$next[0])
71c40 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 6e 65 78 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 61 72 72 61 .{.$value.=.$next;.}.else.{.arra
71c60 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 2c 20 24 6e 65 78 74 29 3b y_unshift($this->parsed,.$next);
71c80 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 .}.}..if.(null.===.$value).{.if.
71ca0 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 74 ($option->isValueRequired()).{.t
71cc0 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e hrow.new.\RuntimeException(sprin
71ce0 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 61 tf('The."--%s".option.requires.a
71d00 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 .value.',.$name));.}..$value.=.$
71d20 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 24 6f 70 74 option->isValueOptional().?.$opt
71d40 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 ion->getDefault().:.true;.}..if.
71d60 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 ($option->isArray()).{.$this->op
71d80 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 20 65 6c 73 65 20 tions[$name][].=.$value;.}.else.
71da0 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 {.$this->options[$name].=.$value
71dc0 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 ;.}.}.......public.function.getF
71de0 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d irstArgument().{.foreach.($this-
71e00 3e 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 >tokens.as.$token).{.if.($token.
71e20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 &&.'-'.===.$token[0]).{.continue
71e40 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ;.}..return.$token;.}.}.........
71e60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 65 72 4f ...public.function.hasParameterO
71e80 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 ption($values).{.$values.=.(arra
71ea0 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f 6b y).$values;..foreach.($this->tok
71ec0 65 6e 73 20 61 73 20 24 76 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 ens.as.$v).{.if.(in_array($v,.$v
71ee0 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 alues)).{.return.true;.}.}..retu
71f00 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 rn.false;.}.............public.f
71f20 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 unction.getParameterOption($valu
71f40 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 6c 75 65 73 20 es,.$default.=.false).{.$values.
71f60 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 24 74 6f 6b 65 6e 73 20 3d 20 24 74 =.(array).$values;..$tokens.=.$t
71f80 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 69 6c 65 20 28 24 74 6f 6b 65 6e 20 3d 20 61 72 72 his->tokens;.while.($token.=.arr
71fa0 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 ay_shift($tokens)).{.foreach.($v
71fc0 61 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 alues.as.$value).{.if.(0.===.str
71fe0 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 pos($token,.$value)).{.if.(false
72000 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 27 3d 27 29 29 .!==.$pos.=.strpos($token,.'='))
72020 20 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 24 70 6f 73 20 2b 20 .{.return.substr($token,.$pos.+.
72040 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 1);.}..return.array_shift($token
72060 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 7d 0a s);.}.}.}..return.$default;.}.}.
72080 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
720a0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a y\Component\Console\Input;......
720c0 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a .interface.InputInterface.{.....
720e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e .public.function.getFirstArgumen
72100 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 t();............public.function.
72120 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 3b 0a 0a 0a 0a hasParameterOption($values);....
72140 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 .........public.function.getPara
72160 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 meterOption($values,.$default.=.
72180 66 61 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 69 false);.......public.function.bi
721a0 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b nd(InputDefinition.$definition);
721c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 .........public.function.validat
721e0 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 e();.......public.function.getAr
72200 67 75 6d 65 6e 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 guments();.........public.functi
72220 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a on.getArgument($name);..........
72240 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d public.function.setArgument($nam
72260 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 e,.$value);.........public.funct
72280 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ion.hasArgument($name);.......pu
722a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a blic.function.getOptions();.....
722c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e ....public.function.getOption($n
722e0 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ame);..........public.function.s
72300 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a etOption($name,.$value);........
72320 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 .public.function.hasOption($name
72340 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 );.......public.function.isInter
72360 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 active();.......public.function.
72380 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 3b 0a 7d 0a setInteractive($interactive);.}.
723a0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
723c0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a y\Component\Console\Input;......
723e0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 .......class.ArrayInput.extends.
72400 49 6e 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 0a Input.{.private.$parameters;....
72420 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ......public.function.__construc
72440 74 28 61 72 72 61 79 20 24 70 61 72 61 6d 65 74 65 72 73 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 t(array.$parameters,.InputDefini
72460 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 tion.$definition.=.null).{.$this
72480 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 3d 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 70 61 72 ->parameters.=.$parameters;..par
724a0 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d ent::__construct($definition);.}
724c0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 .......public.function.getFirstA
724e0 72 67 75 6d 65 6e 74 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 rgument().{.foreach.($this->para
72500 6d 65 74 65 72 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 meters.as.$key.=>.$value).{.if.(
72520 24 6b 65 79 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 $key.&&.'-'.===.$key[0]).{.conti
72540 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a nue;.}..return.$value;.}.}......
72560 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 ......public.function.hasParamet
72580 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 erOption($values).{.$values.=.(a
725a0 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e rray).$values;..foreach.($this->
725c0 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 21 69 parameters.as.$k.=>.$v).{.if.(!i
725e0 73 5f 69 6e 74 28 24 6b 29 29 20 7b 0a 24 76 20 3d 20 24 6b 3b 0a 7d 0a 0a 69 66 20 28 69 6e 5f s_int($k)).{.$v.=.$k;.}..if.(in_
72600 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 array($v,.$values)).{.return.tru
72620 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a e;.}.}..return.false;.}.........
72640 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 ....public.function.getParameter
72660 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 Option($values,.$default.=.false
72680 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a ).{.$values.=.(array).$values;..
726a0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b foreach.($this->parameters.as.$k
726c0 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 6b 29 20 26 26 20 69 6e 5f 61 .=>.$v).{.if.(is_int($k).&&.in_a
726e0 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 rray($v,.$values)).{.return.true
72700 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 2c 20 24 76 61 6c 75 65 73 ;.}.elseif.(in_array($k,.$values
72720 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 )).{.return.$v;.}.}..return.$def
72740 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 ault;.}.....protected.function.p
72760 61 72 73 65 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 arse().{.foreach.($this->paramet
72780 65 72 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 30 20 3d ers.as.$key.=>.$value).{.if.(0.=
727a0 3d 3d 20 73 74 72 70 6f 73 28 24 6b 65 79 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e ==.strpos($key,.'--')).{.$this->
727c0 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 32 29 2c 20 24 addLongOption(substr($key,.2),.$
727e0 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 value);.}.elseif.('-'.===.$key[0
72800 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 73 75 62 73 74 ]).{.$this->addShortOption(subst
72820 72 28 24 6b 65 79 2c 20 31 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 r($key,.1),.$value);.}.else.{.$t
72840 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a his->addArgument($key,.$value);.
72860 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 }.}.}..........private.function.
72880 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 addShortOption($shortcut,.$value
728a0 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 ).{.if.(!$this->definition->hasS
728c0 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 hortcut($shortcut)).{.throw.new.
728e0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \InvalidArgumentException(sprint
72900 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 f('The."-%s".option.does.not.exi
72920 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 st.',.$shortcut));.}..$this->add
72940 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 LongOption($this->definition->ge
72960 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 tOptionForShortcut($shortcut)->g
72980 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 etName(),.$value);.}...........p
729a0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e rivate.function.addLongOption($n
729c0 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e ame,.$value).{.if.(!$this->defin
729e0 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 ition->hasOption($name)).{.throw
72a00 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
72a20 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e printf('The."--%s".option.does.n
72a40 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 ot.exist.',.$name));.}..$option.
72a60 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 =.$this->definition->getOption($
72a80 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 name);..if.(null.===.$value).{.i
72aa0 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 29 20 7b f.($option->isValueRequired()).{
72ac0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
72ae0 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 tion(sprintf('The."--%s".option.
72b00 72 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a requires.a.value.',.$name));.}..
72b20 24 76 61 6c 75 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 $value.=.$option->isValueOptiona
72b40 6c 28 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 l().?.$option->getDefault().:.tr
72b60 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 ue;.}..$this->options[$name].=.$
72b80 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 value;.}..........private.functi
72ba0 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a on.addArgument($name,.$value).{.
72bc0 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d if.(!$this->definition->hasArgum
72be0 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ent($name)).{.throw.new.\Invalid
72c00 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 ArgumentException(sprintf('The."
72c20 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 %s".argument.does.not.exist.',.$
72c40 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d name));.}..$this->arguments[$nam
72c60 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e].=.$value;.}.}.<?php..........
72c80 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
72ca0 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 sole\Input;................class
72cc0 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 .InputDefinition.{.private.$argu
72ce0 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 70 ments;.private.$requiredCount;.p
72d00 72 69 76 61 74 65 20 24 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c rivate.$hasAnArrayArgument.=.fal
72d20 73 65 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 4f 70 74 69 6f 6e 61 6c 3b 0a 70 72 69 76 61 74 se;.private.$hasOptional;.privat
72d40 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 73 3b 0a e.$options;.private.$shortcuts;.
72d60 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ........public.function.__constr
72d80 75 63 74 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 61 72 72 61 79 28 29 29 uct(array.$definition.=.array())
72da0 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 .{.$this->setDefinition($definit
72dc0 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ion);.}.........public.function.
72de0 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 setDefinition(array.$definition)
72e00 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e .{.$arguments.=.array();.$option
72e20 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f s.=.array();.foreach.($definitio
72e40 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 24 69 74 65 6d 20 69 6e 73 74 61 6e 63 65 n.as.$item).{.if.($item.instance
72e60 6f 66 20 49 6e 70 75 74 4f 70 74 69 6f 6e 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 24 of.InputOption).{.$options[].=.$
72e80 69 74 65 6d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 69 item;.}.else.{.$arguments[].=.$i
72ea0 74 65 6d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 tem;.}.}..$this->setArguments($a
72ec0 72 67 75 6d 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 rguments);.$this->setOptions($op
72ee0 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tions);.}.........public.functio
72f00 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 n.setArguments($arguments.=.arra
72f20 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 y()).{.$this->arguments.=.array(
72f40 29 3b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 20 3d 20 30 3b 0a 24 74 68 );.$this->requiredCount.=.0;.$th
72f60 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e is->hasOptional.=.false;.$this->
72f80 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 hasAnArrayArgument.=.false;.$thi
72fa0 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a s->addArguments($arguments);.}..
72fc0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 .......public.function.addArgume
72fe0 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 nts($arguments.=.array()).{.if.(
73000 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 null.!==.$arguments).{.foreach.(
73020 24 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 $arguments.as.$argument).{.$this
73040 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 7d 0a ->addArgument($argument);.}.}.}.
73060 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 ..........public.function.addArg
73080 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 29 0a 7b ument(InputArgument.$argument).{
730a0 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 .if.(isset($this->arguments[$arg
730c0 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ument->getName()])).{.throw.new.
730e0 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 61 72 67 75 \LogicException(sprintf('An.argu
73100 6d 65 6e 74 20 77 69 74 68 20 6e 61 6d 65 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 ment.with.name."%s".already.exis
73120 74 73 2e 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a ts.',.$argument->getName()));.}.
73140 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 29 20 .if.($this->hasAnArrayArgument).
73160 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e {.throw.new.\LogicException('Can
73180 6e 6f 74 20 61 64 64 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 61 72 72 not.add.an.argument.after.an.arr
731a0 61 79 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 ay.argument.');.}..if.($argument
731c0 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 ->isRequired().&&.$this->hasOpti
731e0 6f 6e 61 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f onal).{.throw.new.\LogicExceptio
73200 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 20 72 65 71 75 69 72 65 64 20 61 72 67 75 6d 65 6e n('Cannot.add.a.required.argumen
73220 74 20 61 66 74 65 72 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6f 6e 65 2e 27 29 3b 0a 7d 0a 0a 69 t.after.an.optional.one.');.}..i
73240 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 68 69 73 f.($argument->isArray()).{.$this
73260 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a ->hasAnArrayArgument.=.true;.}..
73280 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 2b if.($argument->isRequired()).{.+
732a0 2b 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a +$this->requiredCount;.}.else.{.
732c0 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 $this->hasOptional.=.true;.}..$t
732e0 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d his->arguments[$argument->getNam
73300 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e()].=.$argument;.}.............
73320 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d public.function.getArgument($nam
73340 65 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 e).{.$arguments.=.is_int($name).
73360 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 ?.array_values($this->arguments)
73380 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 .:.$this->arguments;..if.(!$this
733a0 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ->hasArgument($name)).{.throw.ne
733c0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\InvalidArgumentException(spri
733e0 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 ntf('The."%s".argument.does.not.
73400 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 72 67 exist.',.$name));.}..return.$arg
73420 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 uments[$name];.}...........publi
73440 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a c.function.hasArgument($name).{.
73460 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f 20 61 72 72 $arguments.=.is_int($name).?.arr
73480 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a 20 24 74 ay_values($this->arguments).:.$t
734a0 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 61 his->arguments;..return.isset($a
734c0 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rguments[$name]);.}.........publ
734e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 ic.function.getArguments().{.ret
73500 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 urn.$this->arguments;.}.......pu
73520 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 43 6f 75 6e 74 28 29 blic.function.getArgumentCount()
73540 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d .{.return.$this->hasAnArrayArgum
73560 65 6e 74 20 3f 20 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3a 20 63 6f 75 6e 74 28 24 74 68 69 73 2d ent.?.PHP_INT_MAX.:.count($this-
73580 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >arguments);.}.......public.func
735a0 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 6e 74 28 29 0a tion.getArgumentRequiredCount().
735c0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d {.return.$this->requiredCount;.}
735e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 .......public.function.getArgume
73600 6e 74 44 65 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 29 ntDefaults().{.$values.=.array()
73620 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 ;.foreach.($this->arguments.as.$
73640 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 argument).{.$values[$argument->g
73660 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c etName()].=.$argument->getDefaul
73680 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a t();.}..return.$values;.}.......
736a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 ..public.function.setOptions($op
736c0 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e tions.=.array()).{.$this->option
736e0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 20 3d 20 s.=.array();.$this->shortcuts.=.
73700 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 array();.$this->addOptions($opti
73720 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ons);.}.........public.function.
73740 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b addOptions($options.=.array()).{
73760 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b .foreach.($options.as.$option).{
73780 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a .$this->addOption($option);.}.}.
737a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 ..........public.function.addOpt
737c0 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 69 ion(InputOption.$option).{.if.(i
737e0 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 sset($this->options[$option->get
73800 4e 61 6d 65 28 29 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 24 74 68 Name()]).&&.!$option->equals($th
73820 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 is->options[$option->getName()])
73840 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 ).{.throw.new.\LogicException(sp
73860 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 64 20 22 25 73 22 20 61 6c 72 65 rintf('An.option.named."%s".alre
73880 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 ady.exists.',.$option->getName()
738a0 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 ));.}.elseif.(isset($this->short
738c0 63 75 74 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 5d 29 20 26 26 cuts[$option->getShortcut()]).&&
738e0 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 .!$option->equals($this->options
73900 5b 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 [$this->shortcuts[$option->getSh
73920 6f 72 74 63 75 74 28 29 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 ortcut()]])).{.throw.new.\LogicE
73940 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 77 69 74 68 xception(sprintf('An.option.with
73960 20 73 68 6f 72 74 63 75 74 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c .shortcut."%s".already.exists.',
73980 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 3b 0a 7d 0a 0a 24 74 .$option->getShortcut()));.}..$t
739a0 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d his->options[$option->getName()]
739c0 20 3d 20 24 6f 70 74 69 6f 6e 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 .=.$option;.if.($option->getShor
739e0 74 63 75 74 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6f 70 74 69 tcut()).{.$this->shortcuts[$opti
73a00 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 on->getShortcut()].=.$option->ge
73a20 74 4e 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tName();.}.}.............public.
73a40 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 function.getOption($name).{.if.(
73a60 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f !$this->hasOption($name)).{.thro
73a80 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 w.new.\InvalidArgumentException(
73aa0 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 sprintf('The."--%s".option.does.
73ac0 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 not.exist.',.$name));.}..return.
73ae0 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a $this->options[$name];.}........
73b00 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 ...public.function.hasOption($na
73b20 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e me).{.return.isset($this->option
73b40 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s[$name]);.}.........public.func
73b60 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getOptions().{.return.$this
73b80 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->options;.}.........public.func
73ba0 74 69 6f 6e 20 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e tion.hasShortcut($name).{.return
73bc0 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6e 61 6d 65 5d 29 3b .isset($this->shortcuts[$name]);
73be0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 .}.........public.function.getOp
73c00 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 0a 7b 0a 72 65 74 tionForShortcut($shortcut).{.ret
73c20 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 73 68 6f 72 urn.$this->getOption($this->shor
73c40 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a tcutToName($shortcut));.}.......
73c60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 public.function.getOptionDefault
73c80 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 s().{.$values.=.array();.foreach
73ca0 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 .($this->options.as.$option).{.$
73cc0 76 61 6c 75 65 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 6f 70 values[$option->getName()].=.$op
73ce0 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 tion->getDefault();.}..return.$v
73d00 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 alues;.}...........private.funct
73d20 69 6f 6e 20 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 29 0a 7b 0a ion.shortcutToName($shortcut).{.
73d40 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f if.(!isset($this->shortcuts[$sho
73d60 72 74 63 75 74 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 rtcut])).{.throw.new.\InvalidArg
73d80 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 umentException(sprintf('The."-%s
73da0 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 ".option.does.not.exist.',.$shor
73dc0 74 63 75 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 tcut));.}..return.$this->shortcu
73de0 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ts[$shortcut];.}.......public.fu
73e00 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 29 0a 7b 0a 24 65 6c 65 6d 65 6e 74 73 nction.getSynopsis().{.$elements
73e20 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4f .=.array();.foreach.($this->getO
73e40 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 ptions().as.$option).{.$shortcut
73e60 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 73 70 72 69 .=.$option->getShortcut().?.spri
73e80 6e 74 66 28 27 2d 25 73 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 ntf('-%s|',.$option->getShortcut
73ea0 28 29 29 20 3a 20 27 27 3b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 ()).:.'';.$elements[].=.sprintf(
73ec0 27 5b 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 '['.($option->isValueRequired().
73ee0 3f 20 27 25 73 2d 2d 25 73 3d 22 2e 2e 2e 22 27 20 3a 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 ?.'%s--%s="..."'.:.($option->isV
73f00 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 27 25 73 2d 2d 25 73 5b 3d 22 2e 2e 2e 22 5d alueOptional().?.'%s--%s[="..."]
73f20 27 20 3a 20 27 25 73 2d 2d 25 73 27 29 29 2e 27 5d 27 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 '.:.'%s--%s')).']',.$shortcut,.$
73f40 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 option->getName());.}..foreach.(
73f60 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 $this->getArguments().as.$argume
73f80 6e 74 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 61 72 67 nt).{.$elements[].=.sprintf($arg
73fa0 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 25 73 27 20 3a 20 27 5b 25 ument->isRequired().?.'%s'.:.'[%
73fc0 73 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 28 24 61 72 67 75 s]',.$argument->getName().($argu
73fe0 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 31 27 20 3a 20 27 27 29 29 3b 0a 0a 69 ment->isArray().?.'1'.:.''));..i
74000 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 65 6c 65 6d f.($argument->isArray()).{.$elem
74020 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 2e 2e 2e 20 5b 25 73 4e 5d 27 2c 20 24 61 ents[].=.sprintf('....[%sN]',.$a
74040 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e rgument->getName());.}.}..return
74060 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 65 6c 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a .implode('.',.$elements);.}.....
74080 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 0a 20 24 ..public.function.asText().{...$
740a0 6d 61 78 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 max.=.0;.foreach.($this->getOpti
740c0 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 ons().as.$option).{.$nameLength.
740e0 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 2b 20 32 =.strlen($option->getName()).+.2
74100 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a ;.if.($option->getShortcut()).{.
74120 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 $nameLength.+=.strlen($option->g
74140 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 2b 20 33 3b 0a 7d 0a 0a 24 6d 61 78 20 3d 20 6d 61 78 etShortcut()).+.3;.}..$max.=.max
74160 28 24 6d 61 78 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 ($max,.$nameLength);.}.foreach.(
74180 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 $this->getArguments().as.$argume
741a0 6e 74 29 20 7b 0a 24 6d 61 78 20 3d 20 6d 61 78 28 24 6d 61 78 2c 20 73 74 72 6c 65 6e 28 24 61 nt).{.$max.=.max($max,.strlen($a
741c0 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a 2b 2b 24 6d 61 78 3b 0a rgument->getName()));.}.++$max;.
741e0 0a 24 74 65 78 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 .$text.=.array();..if.($this->ge
74200 74 41 72 67 75 6d 65 6e 74 73 28 29 29 20 7b 0a 24 74 65 78 74 5b 5d 20 3d 20 27 3c 63 6f 6d 6d tArguments()).{.$text[].=.'<comm
74220 65 6e 74 3e 41 72 67 75 6d 65 6e 74 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 66 6f 72 65 61 ent>Arguments:</comment>';.forea
74240 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 ch.($this->getArguments().as.$ar
74260 67 75 6d 65 6e 74 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 gument).{.if.(null.!==.$argument
74280 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 24 61 72 ->getDefault().&&.(!is_array($ar
742a0 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e 74 28 24 gument->getDefault()).||.count($
742c0 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 64 65 66 argument->getDefault()))).{.$def
742e0 61 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 75 ault.=.sprintf('<comment>.(defau
74300 6c 74 3a 20 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 lt:.%s)</comment>',.$this->forma
74320 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 tDefaultValue($argument->getDefa
74340 75 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b ult()));.}.else.{.$default.=.'';
74360 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 .}..$description.=.str_replace("
74380 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 70 61 64 28 27 27 2c 20 24 6d 61 78 20 2b 20 32 2c 20 \n",."\n".str_pad('',.$max.+.2,.
743a0 27 20 27 29 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 '.'),.$argument->getDescription(
743c0 29 29 3b 0a 0a 24 74 65 78 74 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 ));..$text[].=.sprintf(".<info>%
743e0 2d 24 7b 6d 61 78 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 25 73 22 2c 20 24 61 72 67 75 6d 65 6e 74 -${max}s</info>.%s%s",.$argument
74400 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 66 61 ->getName(),.$description,.$defa
74420 75 6c 74 29 3b 0a 7d 0a 0a 24 74 65 78 74 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 69 66 20 28 24 74 ult);.}..$text[].=.'';.}..if.($t
74440 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 7b 0a 24 74 65 78 74 5b 5d 20 3d 20 27 his->getOptions()).{.$text[].=.'
74460 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 0a 66 <comment>Options:</comment>';..f
74480 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 oreach.($this->getOptions().as.$
744a0 6f 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c option).{.if.($option->acceptVal
744c0 75 65 28 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 ue().&&.null.!==.$option->getDef
744e0 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 ault().&&.(!is_array($option->ge
74500 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 tDefault()).||.count($option->ge
74520 74 44 65 66 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 73 70 72 69 6e tDefault()))).{.$default.=.sprin
74540 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 75 6c 74 3a 20 25 73 29 3c 2f 63 6f 6d tf('<comment>.(default:.%s)</com
74560 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 ment>',.$this->formatDefaultValu
74580 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 e($option->getDefault()));.}.els
745a0 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 70 6c 65 20 e.{.$default.=.'';.}..$multiple.
745c0 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 3c 63 6f 6d 6d 65 6e 74 =.$option->isArray().?.'<comment
745e0 3e 20 28 6d 75 6c 74 69 70 6c 65 20 76 61 6c 75 65 73 20 61 6c 6c 6f 77 65 64 29 3c 2f 63 6f 6d >.(multiple.values.allowed)</com
74600 6d 65 6e 74 3e 27 20 3a 20 27 27 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 5f ment>'.:.'';.$description.=.str_
74620 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 70 61 64 28 27 27 2c 20 24 replace("\n",."\n".str_pad('',.$
74640 6d 61 78 20 2b 20 32 2c 20 27 20 27 29 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 max.+.2,.'.'),.$option->getDescr
74660 69 70 74 69 6f 6e 28 29 29 3b 0a 0a 24 6f 70 74 69 6f 6e 4d 61 78 20 3d 20 24 6d 61 78 20 2d 20 iption());..$optionMax.=.$max.-.
74680 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 2d 20 32 3b 0a strlen($option->getName()).-.2;.
746a0 24 74 65 78 74 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e $text[].=.sprintf(".<info>%s</in
746c0 66 6f 3e 20 25 2d 24 7b 6f 70 74 69 6f 6e 4d 61 78 7d 73 25 73 25 73 25 73 22 2c 0a 27 2d 2d 27 fo>.%-${optionMax}s%s%s%s",.'--'
746e0 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 .$option->getName(),.$option->ge
74700 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 28 2d 25 73 29 20 27 2c 20 tShortcut().?.sprintf('(-%s).',.
74720 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 2c 0a 24 64 $option->getShortcut()).:.'',.$d
74740 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 66 61 75 6c 74 2c 0a 24 6d 75 6c 74 69 70 6c 65 0a escription,.$default,.$multiple.
74760 29 3b 0a 7d 0a 0a 24 74 65 78 74 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d );.}..$text[].=.'';.}..return.im
74780 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 plode("\n",.$text);.}.........pu
747a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 66 61 6c blic.function.asXml($asDom.=.fal
747c0 73 65 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 se).{.$dom.=.new.\DOMDocument('1
747e0 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 .0',.'UTF-8');.$dom->formatOutpu
74800 74 20 3d 20 74 72 75 65 3b 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 t.=.true;.$dom->appendChild($def
74820 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 initionXML.=.$dom->createElement
74840 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 29 3b 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c ('definition'));..$definitionXML
74860 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c 20 3d 20 24 64 ->appendChild($argumentsXML.=.$d
74880 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 72 67 75 6d 65 6e 74 73 27 29 29 3b om->createElement('arguments'));
748a0 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 .foreach.($this->getArguments().
748c0 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c 2d 3e 61 as.$argument).{.$argumentsXML->a
748e0 70 70 65 6e 64 43 68 69 6c 64 28 24 61 72 67 75 6d 65 6e 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e ppendChild($argumentXML.=.$dom->
74900 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 72 67 75 6d 65 6e 74 27 29 29 3b 0a 24 61 72 67 createElement('argument'));.$arg
74920 75 6d 65 6e 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 umentXML->setAttribute('name',.$
74940 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 61 72 67 75 6d 65 6e 74 58 argument->getName());.$argumentX
74960 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 72 65 71 75 69 72 65 64 27 2c 20 ML->setAttribute('is_required',.
74980 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 3f 20 31 20 3a 20 30 29 $argument->isRequired().?.1.:.0)
749a0 3b 0a 24 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 ;.$argumentXML->setAttribute('is
749c0 5f 61 72 72 61 79 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 _array',.$argument->isArray().?.
749e0 31 20 3a 20 30 29 3b 0a 24 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 1.:.0);.$argumentXML->appendChil
74a00 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 d($descriptionXML.=.$dom->create
74a20 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 Element('description'));.$descri
74a40 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 ptionXML->appendChild($dom->crea
74a60 74 65 54 65 78 74 4e 6f 64 65 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 teTextNode($argument->getDescrip
74a80 74 69 6f 6e 28 29 29 29 3b 0a 0a 24 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 tion()));..$argumentXML->appendC
74aa0 68 69 6c 64 28 24 64 65 66 61 75 6c 74 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 hild($defaultsXML.=.$dom->create
74ac0 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 73 20 Element('defaults'));.$defaults.
74ae0 3d 20 69 73 5f 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 =.is_array($argument->getDefault
74b00 28 29 29 20 3f 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 ()).?.$argument->getDefault().:.
74b20 28 69 73 5f 62 6f 6f 6c 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 (is_bool($argument->getDefault()
74b40 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e ).?.array(var_export($argument->
74b60 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 28 24 61 72 67 75 6d 65 6e getDefault(),.true)).:.($argumen
74b80 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e t->getDefault().?.array($argumen
74ba0 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 66 6f t->getDefault()).:.array()));.fo
74bc0 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 66 61 75 6c 74 29 20 7b 0a reach.($defaults.as.$default).{.
74be0 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 $defaultsXML->appendChild($defau
74c00 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 ltXML.=.$dom->createElement('def
74c20 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c ault'));.$defaultXML->appendChil
74c40 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 64 65 66 61 75 6c 74 29 d($dom->createTextNode($default)
74c60 29 3b 0a 7d 0a 7d 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 );.}.}..$definitionXML->appendCh
74c80 69 6c 64 28 24 6f 70 74 69 6f 6e 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c ild($optionsXML.=.$dom->createEl
74ca0 65 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ement('options'));.foreach.($thi
74cc0 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6f s->getOptions().as.$option).{.$o
74ce0 70 74 69 6f 6e 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 70 74 69 6f 6e 58 4d ptionsXML->appendChild($optionXM
74d00 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 27 L.=.$dom->createElement('option'
74d20 29 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 ));.$optionXML->setAttribute('na
74d40 6d 65 27 2c 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 me',.'--'.$option->getName());.$
74d60 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 6f 72 74 63 75 optionXML->setAttribute('shortcu
74d80 74 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 2d 27 t',.$option->getShortcut().?.'-'
74da0 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3a 20 27 27 29 3b 0a 24 .$option->getShortcut().:.'');.$
74dc0 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 61 63 63 65 70 74 5f optionXML->setAttribute('accept_
74de0 76 61 6c 75 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f value',.$option->acceptValue().?
74e00 20 31 20 3a 20 30 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 .1.:.0);.$optionXML->setAttribut
74e20 65 28 27 69 73 5f 76 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e e('is_value_required',.$option->
74e40 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 70 74 isValueRequired().?.1.:.0);.$opt
74e60 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 6d 75 6c 74 69 70 6c ionXML->setAttribute('is_multipl
74e80 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b e',.$option->isArray().?.1.:.0);
74ea0 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 .$optionXML->appendChild($descri
74ec0 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 ptionXML.=.$dom->createElement('
74ee0 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d description'));.$descriptionXML-
74f00 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 >appendChild($dom->createTextNod
74f20 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a e($option->getDescription()));..
74f40 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 6f if.($option->acceptValue()).{.$o
74f60 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 73 58 ptionXML->appendChild($defaultsX
74f80 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c ML.=.$dom->createElement('defaul
74fa0 74 73 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 6f 70 74 ts'));.$defaults.=.is_array($opt
74fc0 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 ion->getDefault()).?.$option->ge
74fe0 74 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 6f 70 74 69 6f 6e 2d 3e 67 tDefault().:.(is_bool($option->g
75000 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 etDefault()).?.array(var_export(
75020 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 $option->getDefault(),.true)).:.
75040 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 79 28 24 ($option->getDefault().?.array($
75060 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 option->getDefault()).:.array())
75080 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 66 61 75 6c );.foreach.($defaults.as.$defaul
750a0 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 t).{.$defaultsXML->appendChild($
750c0 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 defaultXML.=.$dom->createElement
750e0 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 70 65 6e ('default'));.$defaultXML->appen
75100 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 64 65 66 dChild($dom->createTextNode($def
75120 61 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 3f 20 24 ault));.}.}.}..return.$asDom.?.$
75140 64 6f 6d 20 3a 20 24 64 6f 6d 2d 3e 73 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 dom.:.$dom->saveXml();.}..privat
75160 65 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 64 e.function.formatDefaultValue($d
75180 65 66 61 75 6c 74 29 0a 7b 0a 72 65 74 75 72 6e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 efault).{.return.json_encode($de
751a0 66 61 75 6c 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 fault);.}.}.<?php...........name
751c0 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b space.Symfony\Component\Console;
751e0 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ..use.Symfony\Component\Console\
75200 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 Application;.use.Symfony\Compone
75220 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 nt\Console\Input\StringInput;.us
75240 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
75260 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f ut\ConsoleOutput;.use.Symfony\Co
75280 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3b 0a mponent\Process\ProcessBuilder;.
752a0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 68 use.Symfony\Component\Process\Ph
752c0 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 pExecutableFinder;...........cla
752e0 73 73 20 53 68 65 6c 6c 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b ss.Shell.{.private.$application;
75300 0a 70 72 69 76 61 74 65 20 24 68 69 73 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 .private.$history;.private.$outp
75320 75 74 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 52 65 61 64 6c 69 6e 65 3b 0a 70 72 69 76 61 74 ut;.private.$hasReadline;.privat
75340 65 20 24 70 72 6f 6d 70 74 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 e.$prompt;.private.$processIsola
75360 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f tion;..........public.function._
75380 5f 63 6f 6e 73 74 72 75 63 74 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 _construct(Application.$applicat
753a0 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 20 3d 20 66 75 6e 63 ion).{.$this->hasReadline.=.func
753c0 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 72 65 61 64 6c 69 6e 65 27 29 3b 0a 24 74 68 69 73 2d 3e tion_exists('readline');.$this->
753e0 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 application.=.$application;.$thi
75400 73 2d 3e 68 69 73 74 6f 72 79 20 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2e 27 2f 2e 68 s->history.=.getenv('HOME').'/.h
75420 69 73 74 6f 72 79 5f 27 2e 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 istory_'.$application->getName()
75440 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 ;.$this->output.=.new.ConsoleOut
75460 70 75 74 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 20 3d 20 24 61 70 70 6c 69 63 61 74 put();.$this->prompt.=.$applicat
75480 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 3e 20 27 3b 0a 24 74 68 69 73 2d 3e 70 72 6f ion->getName().'.>.';.$this->pro
754a0 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 cessIsolation.=.false;.}.....pub
754c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c lic.function.run().{.$this->appl
754e0 69 63 61 74 69 6f 6e 2d 3e 73 65 74 41 75 74 6f 45 78 69 74 28 66 61 6c 73 65 29 3b 0a 24 74 68 ication->setAutoExit(false);.$th
75500 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 is->application->setCatchExcepti
75520 6f 6e 73 28 74 72 75 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 ons(true);..if.($this->hasReadli
75540 6e 65 29 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 72 65 61 64 5f 68 69 73 74 6f 72 79 28 24 74 68 69 ne).{.readline_read_history($thi
75560 73 2d 3e 68 69 73 74 6f 72 79 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 63 6f 6d 70 6c 65 74 69 6f 6e s->history);.readline_completion
75580 5f 66 75 6e 63 74 69 6f 6e 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 61 75 74 6f 63 6f 6d 70 _function(array($this,.'autocomp
755a0 6c 65 74 65 72 27 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 leter'));.}..$this->output->writ
755c0 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 48 65 61 64 65 72 28 29 29 3b 0a 24 70 68 70 20 3d 20 eln($this->getHeader());.$php.=.
755e0 6e 75 6c 6c 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f null;.if.($this->processIsolatio
75600 6e 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 n).{.$finder.=.new.PhpExecutable
75620 46 69 6e 64 65 72 28 29 3b 0a 24 70 68 70 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 Finder();.$php.=.$finder->find()
75640 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c 3c 45 4f 46 0a ;.$this->output->writeln(<<<EOF.
75660 3c 69 6e 66 6f 3e 52 75 6e 6e 69 6e 67 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 69 73 6f 6c 61 <info>Running.with.process.isola
75680 74 69 6f 6e 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 3a 3c tion,.you.should.consider.this:<
756a0 2f 69 6e 66 6f 3e 0a 20 20 2a 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 /info>...*.each.command.is.execu
756c0 74 65 64 20 61 73 20 73 65 70 61 72 61 74 65 20 70 72 6f 63 65 73 73 2c 0a 20 20 2a 20 63 6f 6d ted.as.separate.process,...*.com
756e0 6d 61 6e 64 73 20 64 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 69 6e 74 65 72 61 63 74 69 76 69 74 mands.don't.support.interactivit
75700 79 2c 20 61 6c 6c 20 70 61 72 61 6d 73 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 64 20 65 78 70 y,.all.params.must.be.passed.exp
75720 6c 69 63 69 74 6c 79 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 6f 75 74 70 75 74 20 69 73 20 licitly,...*.commands.output.is.
75740 6e 6f 74 20 63 6f 6c 6f 72 69 7a 65 64 2e 0a 0a 45 4f 46 0a 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 not.colorized...EOF.);.}..while.
75760 28 74 72 75 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 6c (true).{.$command.=.$this->readl
75780 69 6e 65 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6d 6d 61 6e 64 29 20 ine();..if.(false.===.$command).
757a0 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 22 29 3b 0a {.$this->output->writeln("\n");.
757c0 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e .break;.}..if.($this->hasReadlin
757e0 65 29 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 61 64 64 5f 68 69 73 74 6f 72 79 28 24 63 6f 6d 6d 61 e).{.readline_add_history($comma
75800 6e 64 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 77 72 69 74 65 5f 68 69 73 74 6f 72 79 28 24 74 68 69 nd);.readline_write_history($thi
75820 73 2d 3e 68 69 73 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 s->history);.}..if.($this->proce
75840 73 73 49 73 6f 6c 61 74 69 6f 6e 29 20 7b 0a 24 70 62 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 ssIsolation).{.$pb.=.new.Process
75860 42 75 69 6c 64 65 72 28 29 3b 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 70 62 0a 2d 3e 61 64 64 Builder();..$process.=.$pb.->add
75880 28 24 70 68 70 29 0a 2d 3e 61 64 64 28 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d ($php).->add($_SERVER['argv'][0]
758a0 29 0a 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 2d 3e 69 6e 68 65 72 69 74 45 6e 76 69 72 ).->add($command).->inheritEnvir
758c0 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 28 74 72 75 65 29 0a 2d 3e 67 65 74 50 72 6f 63 65 onmentVariables(true).->getProce
758e0 73 73 28 29 0a 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b ss().;..$output.=.$this->output;
75900 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 66 75 6e 63 74 69 6f 6e 28 24 74 79 70 65 2c 20 24 .$process->run(function($type,.$
75920 64 61 74 61 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 data).use.($output).{.$output->w
75940 72 69 74 65 6c 6e 28 24 64 61 74 61 29 3b 0a 7d 29 3b 0a 0a 24 72 65 74 20 3d 20 24 70 72 6f 63 riteln($data);.});..$ret.=.$proc
75960 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 ess->getExitCode();.}.else.{.$re
75980 74 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 6e 65 77 20 t.=.$this->application->run(new.
759a0 53 74 72 69 6e 67 49 6e 70 75 74 28 24 63 6f 6d 6d 61 6e 64 29 2c 20 24 74 68 69 73 2d 3e 6f 75 StringInput($command),.$this->ou
759c0 74 70 75 74 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 72 65 74 29 20 7b 0a 24 74 68 69 tput);.}..if.(0.!==.$ret).{.$thi
759e0 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 s->output->writeln(sprintf('<err
75a00 6f 72 3e 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 61 or>The.command.terminated.with.a
75a20 6e 20 65 72 72 6f 72 20 73 74 61 74 75 73 20 28 25 73 29 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 72 n.error.status.(%s)</error>',.$r
75a40 65 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 et));.}.}.}.......protected.func
75a60 74 69 6f 6e 20 67 65 74 48 65 61 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 tion.getHeader().{.return.<<<EOF
75a80 0a 0a 57 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 3c 69 6e 66 6f 3e 7b 24 74 68 69 73 2d 3e 61 ..Welcome.to.the.<info>{$this->a
75aa0 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 7d 3c 2f 69 6e 66 6f 3e 20 73 68 pplication->getName()}</info>.sh
75ac0 65 6c 6c 20 28 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f ell.(<comment>{$this->applicatio
75ae0 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 2e 0a 0a 41 74 n->getVersion()}</comment>)...At
75b00 20 74 68 65 20 70 72 6f 6d 70 74 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 3e 68 65 6c 70 3c .the.prompt,.type.<comment>help<
75b20 2f 63 6f 6d 6d 65 6e 74 3e 20 66 6f 72 20 73 6f 6d 65 20 68 65 6c 70 2c 0a 6f 72 20 3c 63 6f 6d /comment>.for.some.help,.or.<com
75b40 6d 65 6e 74 3e 6c 69 73 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 74 6f 20 67 65 74 20 61 20 6c 69 73 ment>list</comment>.to.get.a.lis
75b60 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a 54 6f 20 65 78 69 t.of.available.commands...To.exi
75b80 74 20 74 68 65 20 73 68 65 6c 6c 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 3e 5e 44 3c 2f 63 t.the.shell,.type.<comment>^D</c
75ba0 6f 6d 6d 65 6e 74 3e 2e 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 omment>...EOF;.}.........private
75bc0 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 28 24 74 65 78 74 29 0a 7b .function.autocompleter($text).{
75be0 0a 24 69 6e 66 6f 20 3d 20 72 65 61 64 6c 69 6e 65 5f 69 6e 66 6f 28 29 3b 0a 24 74 65 78 74 20 .$info.=.readline_info();.$text.
75c00 3d 20 73 75 62 73 74 72 28 24 69 6e 66 6f 5b 27 6c 69 6e 65 5f 62 75 66 66 65 72 27 5d 2c 20 30 =.substr($info['line_buffer'],.0
75c20 2c 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 3b 0a 0a 69 66 20 28 24 69 6e 66 6f 5b 27 70 6f 69 ,.$info['end']);..if.($info['poi
75c40 6e 74 27 5d 20 21 3d 3d 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 nt'].!==.$info['end']).{.return.
75c60 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 true;.}....if.(false.===.strpos(
75c80 24 74 65 78 74 2c 20 27 20 27 29 20 7c 7c 20 21 24 74 65 78 74 29 20 7b 0a 72 65 74 75 72 6e 20 $text,.'.').||.!$text).{.return.
75ca0 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 61 array_keys($this->application->a
75cc0 6c 6c 28 29 29 3b 0a 7d 0a 0a 0a 20 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 ll());.}....try.{.$command.=.$th
75ce0 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 28 73 75 62 73 74 72 28 24 74 65 is->application->find(substr($te
75d00 78 74 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 29 29 3b 0a 7d 20 63 xt,.0,.strpos($text,.'.')));.}.c
75d20 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 atch.(\Exception.$e).{.return.tr
75d40 75 65 3b 0a 7d 0a 0a 24 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 29 3b 0a ue;.}..$list.=.array('--help');.
75d60 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e foreach.($command->getDefinition
75d80 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 ()->getOptions().as.$option).{.$
75da0 6c 69 73 74 5b 5d 20 3d 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 list[].=.'--'.$option->getName()
75dc0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 ;.}..return.$list;.}.......priva
75de0 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 6c 69 6e 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 te.function.readline().{.if.($th
75e00 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 72 65 61 64 6c is->hasReadline).{.$line.=.readl
75e20 69 6e 65 28 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 ine($this->prompt);.}.else.{.$th
75e40 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 29 is->output->write($this->prompt)
75e60 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 53 54 44 49 4e 2c 20 31 30 32 34 29 3b 0a 24 6c ;.$line.=.fgets(STDIN,.1024);.$l
75e80 69 6e 65 20 3d 20 28 21 24 6c 69 6e 65 20 26 26 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 20 3d ine.=.(!$line.&&.strlen($line).=
75ea0 3d 20 30 29 20 3f 20 66 61 6c 73 65 20 3a 20 72 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a =.0).?.false.:.rtrim($line);.}..
75ec0 72 65 74 75 72 6e 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e return.$line;.}..public.function
75ee0 20 67 65 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .getProcessIsolation().{.return.
75f00 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c $this->processIsolation;.}..publ
75f20 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 28 ic.function.setProcessIsolation(
75f40 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 $processIsolation).{.$this->proc
75f60 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 70 72 6f 63 65 73 essIsolation.=.(Boolean).$proces
75f80 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a sIsolation;.}.}.<?php...........
75fa0 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 namespace.Symfony\Component\Cons
75fc0 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ole\Output;..use.Symfony\Compone
75fe0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 nt\Console\Formatter\OutputForma
76000 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f tterInterface;.use.Symfony\Compo
76020 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 nent\Console\Formatter\OutputFor
76040 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 matter;...............abstract.c
76060 6c 61 73 73 20 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 lass.Output.implements.OutputInt
76080 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 79 3b 0a 70 72 69 erface.{.private.$verbosity;.pri
760a0 76 61 74 65 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 vate.$formatter;...........publi
760c0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 c.function.__construct($verbosit
760e0 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 y.=.self::VERBOSITY_NORMAL,.$dec
76100 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e orated.=.null,.OutputFormatterIn
76120 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 terface.$formatter.=.null).{.$th
76140 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 62 6f 73 is->verbosity.=.null.===.$verbos
76160 69 74 79 20 3f 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 ity.?.self::VERBOSITY_NORMAL.:.$
76180 76 65 72 62 6f 73 69 74 79 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 verbosity;.$this->formatter.=.nu
761a0 6c 6c 20 3d 3d 3d 20 24 66 6f 72 6d 61 74 74 65 72 20 3f 20 6e 65 77 20 4f 75 74 70 75 74 46 6f ll.===.$formatter.?.new.OutputFo
761c0 72 6d 61 74 74 65 72 28 29 20 3a 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 24 74 68 69 73 2d 3e 66 rmatter().:.$formatter;.$this->f
761e0 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 28 42 6f 6f 6c 65 61 6e 29 ormatter->setDecorated((Boolean)
76200 20 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$decorated);.}.........public.f
76220 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 unction.setFormatter(OutputForma
76240 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 68 69 tterInterface.$formatter).{.$thi
76260 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a s->formatter.=.$formatter;.}....
76280 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 .....public.function.getFormatte
762a0 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 3b 0a 7d r().{.return.$this->formatter;.}
762c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f .........public.function.setDeco
762e0 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 rated($decorated).{.$this->forma
76300 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 tter->setDecorated((Boolean).$de
76320 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 corated);.}.........public.funct
76340 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ion.isDecorated().{.return.$this
76360 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a ->formatter->isDecorated();.}...
76380 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 ......public.function.setVerbosi
763a0 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 ty($level).{.$this->verbosity.=.
763c0 28 69 6e 74 29 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 (int).$level;.}.........public.f
763e0 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 unction.getVerbosity().{.return.
76400 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 $this->verbosity;.}..........pub
76420 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 lic.function.writeln($messages,.
76440 24 74 79 70 65 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 $type.=.0).{.$this->write($messa
76460 67 65 73 2c 20 74 72 75 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ges,.true,.$type);.}............
76480 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 .public.function.write($messages
764a0 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 30 29 0a 7b ,.$newline.=.false,.$type.=.0).{
764c0 0a 69 66 20 28 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 3d 3d 20 24 .if.(self::VERBOSITY_QUIET.===.$
764e0 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d this->verbosity).{.return;.}..$m
76500 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 0a 66 6f essages.=.(array).$messages;..fo
76520 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a reach.($messages.as.$message).{.
76540 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 switch.($type).{.case.OutputInte
76560 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 3a 0a 24 6d 65 73 73 61 67 65 20 3d rface::OUTPUT_NORMAL:.$message.=
76580 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 .$this->formatter->format($messa
765a0 67 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 ge);.break;.case.OutputInterface
765c0 3a 3a 4f 55 54 50 55 54 5f 52 41 57 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 ::OUTPUT_RAW:.break;.case.Output
765e0 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 50 4c 41 49 4e 3a 0a 24 6d 65 73 73 61 67 Interface::OUTPUT_PLAIN:.$messag
76600 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d e.=.strip_tags($this->formatter-
76620 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 >format($message));.break;.defau
76640 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 lt:.throw.new.\InvalidArgumentEx
76660 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 6f 75 74 70 75 74 20 ception(sprintf('Unknown.output.
76680 74 79 70 65 20 67 69 76 65 6e 20 28 25 73 29 27 2c 20 24 74 79 70 65 29 29 3b 0a 7d 0a 0a 24 74 type.given.(%s)',.$type));.}..$t
766a0 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 his->doWrite($message,.$newline)
766c0 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 ;.}.}........abstract.protected.
766e0 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c function.doWrite($message,.$newl
76700 69 6e 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ine);.}.<?php...........namespac
76720 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
76740 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 4f 75 74 70 75 74 20 65 ut;...........class.NullOutput.e
76760 78 74 65 6e 64 73 20 4f 75 74 70 75 74 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 xtends.Output.{.......protected.
76780 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c function.doWrite($message,.$newl
767a0 69 6e 65 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ine).{.}.}.<?php...........names
767c0 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f pace.Symfony\Component\Console\O
767e0 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f utput;..use.Symfony\Component\Co
76800 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a nsole\Output\OutputInterface;...
76820 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 .....interface.ConsoleOutputInte
76840 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a rface.extends.OutputInterface.{.
76860 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 ...public.function.getErrorOutpu
76880 74 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 t();..public.function.setErrorOu
768a0 74 70 75 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 3b 0a 7d 0a tput(OutputInterface.$error);.}.
768c0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
768e0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 y\Component\Console\Output;..use
76900 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 .Symfony\Component\Console\Forma
76920 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a tter\OutputFormatterInterface;..
76940 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 65 61 6d 4f 75 74 70 75 ...............class.StreamOutpu
76960 74 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 72 65 t.extends.Output.{.private.$stre
76980 61 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f am;...............public.functio
769a0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 74 72 65 61 6d 2c 20 24 76 65 72 62 6f 73 69 74 n.__construct($stream,.$verbosit
769c0 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 y.=.self::VERBOSITY_NORMAL,.$dec
769e0 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e orated.=.null,.OutputFormatterIn
76a00 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 terface.$formatter.=.null).{.if.
76a20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 73 74 72 65 61 6d 29 20 7c 7c 20 27 73 74 72 65 61 (!is_resource($stream).||.'strea
76a40 6d 27 20 21 3d 3d 20 67 65 74 5f 72 65 73 6f 75 72 63 65 5f 74 79 70 65 28 24 73 74 72 65 61 6d m'.!==.get_resource_type($stream
76a60 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
76a80 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 63 6c 61 73 73 xception('The.StreamOutput.class
76aa0 20 6e 65 65 64 73 20 61 20 73 74 72 65 61 6d 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 .needs.a.stream.as.its.first.arg
76ac0 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 20 3d 20 24 73 74 ument.');.}..$this->stream.=.$st
76ae0 72 65 61 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 ream;..if.(null.===.$decorated).
76b00 7b 0a 24 64 65 63 6f 72 61 74 65 64 20 3d 20 24 74 68 69 73 2d 3e 68 61 73 43 6f 6c 6f 72 53 75 {.$decorated.=.$this->hasColorSu
76b20 70 70 6f 72 74 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f pport($decorated);.}..parent::__
76b40 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 construct($verbosity,.$decorated
76b60 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ,.$formatter);.}.......public.fu
76b80 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 nction.getStream().{.return.$thi
76ba0 73 2d 3e 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 s->stream;.}..........protected.
76bc0 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c function.doWrite($message,.$newl
76be0 69 6e 65 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 40 66 77 72 69 74 65 28 24 74 68 ine).{.if.(false.===.@fwrite($th
76c00 69 73 2d 3e 73 74 72 65 61 6d 2c 20 24 6d 65 73 73 61 67 65 2e 28 24 6e 65 77 6c 69 6e 65 20 3f is->stream,.$message.($newline.?
76c20 20 50 48 50 5f 45 4f 4c 20 3a 20 27 27 29 29 29 20 7b 0a 0a 20 0a 20 74 68 72 6f 77 20 6e 65 77 .PHP_EOL.:.''))).{.....throw.new
76c40 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 77 72 .\RuntimeException('Unable.to.wr
76c60 69 74 65 20 6f 75 74 70 75 74 2e 27 29 3b 0a 0a 20 7d 0a 0a 66 66 6c 75 73 68 28 24 74 68 69 73 ite.output.');...}..fflush($this
76c80 2d 3e 73 74 72 65 61 6d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ->stream);.}............protecte
76ca0 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 0a 7b 0a 0a d.function.hasColorSupport().{..
76cc0 20 69 66 20 28 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3d 3d 20 27 5c 5c 27 .if.(DIRECTORY_SEPARATOR.==.'\\'
76ce0 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 67 65 74 65 6e 76 28 27 41 4e 53 ).{.return.false.!==.getenv('ANS
76d00 49 43 4f 4e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 ICON');.}..return.function_exist
76d20 73 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 20 40 70 6f 73 69 78 5f 69 73 61 74 s('posix_isatty').&&.@posix_isat
76d40 74 79 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 0a 20 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ty($this->stream);...}.}.<?php..
76d60 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
76d80 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e nent\Console\Output;..use.Symfon
76da0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 y\Component\Console\Formatter\Ou
76dc0 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a tputFormatterInterface;.........
76de0 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 interface.OutputInterface.{.cons
76e00 74 20 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 56 45 52 t.VERBOSITY_QUIET.=.0;.const.VER
76e20 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 BOSITY_NORMAL.=.1;.const.VERBOSI
76e40 54 59 5f 56 45 52 42 4f 53 45 20 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 4e 4f TY_VERBOSE.=.2;..const.OUTPUT_NO
76e60 52 4d 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 52 41 57 20 3d 20 31 3b 0a RMAL.=.0;.const.OUTPUT_RAW.=.1;.
76e80 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 50 4c 41 49 4e 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a const.OUTPUT_PLAIN.=.2;.........
76ea0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 ....public.function.write($messa
76ec0 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 30 ges,.$newline.=.false,.$type.=.0
76ee0 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 );..........public.function.writ
76f00 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 30 29 3b 0a 0a 0a 0a 0a 0a eln($messages,.$type.=.0);......
76f20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 ...public.function.setVerbosity(
76f40 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $level);.........public.function
76f60 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .getVerbosity();.........public.
76f80 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 function.setDecorated($decorated
76fa0 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 );.........public.function.isDec
76fc0 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f orated();.........public.functio
76fe0 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e n.setFormatter(OutputFormatterIn
77000 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 terface.$formatter);.........pub
77020 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a 3c lic.function.getFormatter();.}.<
77040 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 ?php...........namespace.Symfony
77060 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 \Component\Console\Output;..use.
77080 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 Symfony\Component\Console\Format
770a0 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 ter\OutputFormatter;.use.Symfony
770c0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 \Component\Console\Formatter\Out
770e0 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f putFormatterInterface;.use.Symfo
77100 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 ny\Component\Console\Output\Cons
77120 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a oleOutputInterface;.............
77140 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 ....class.ConsoleOutput.extends.
77160 53 74 72 65 61 6d 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 6f 6c 65 4f StreamOutput.implements.ConsoleO
77180 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 64 65 72 72 utputInterface.{.private.$stderr
771a0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 ;............public.function.__c
771c0 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 onstruct($verbosity.=.self::VERB
771e0 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c OSITY_NORMAL,.$decorated.=.null,
77200 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 .OutputFormatterInterface.$forma
77220 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 tter.=.null).{.$outputStream.=.'
77240 70 68 70 3a 2f 2f 73 74 64 6f 75 74 27 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 php://stdout';.if.(!$this->hasSt
77260 64 6f 75 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d doutSupport()).{.$outputStream.=
77280 20 27 70 68 70 3a 2f 2f 6f 75 74 70 75 74 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f .'php://output';.}..parent::__co
772a0 6e 73 74 72 75 63 74 28 66 6f 70 65 6e 28 24 6f 75 74 70 75 74 53 74 72 65 61 6d 2c 20 27 77 27 nstruct(fopen($outputStream,.'w'
772c0 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d ),.$verbosity,.$decorated,.$form
772e0 61 74 74 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 6e 65 77 20 53 74 72 atter);..$this->stderr.=.new.Str
77300 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 73 74 64 65 72 72 27 2c 20 eamOutput(fopen('php://stderr',.
77320 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 'w'),.$verbosity,.$decorated,.$f
77340 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ormatter);.}..public.function.se
77360 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a tDecorated($decorated).{.parent:
77380 3a 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 24 74 68 69 73 :setDecorated($decorated);.$this
773a0 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 ->stderr->setDecorated($decorate
773c0 64 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 d);.}..public.function.setFormat
773e0 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f ter(OutputFormatterInterface.$fo
77400 72 6d 61 74 74 65 72 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 46 6f 72 6d 61 74 74 65 72 28 rmatter).{.parent::setFormatter(
77420 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 46 $formatter);.$this->stderr->setF
77440 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ormatter($formatter);.}..public.
77460 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a function.setVerbosity($level).{.
77480 70 61 72 65 6e 74 3a 3a 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 24 74 parent::setVerbosity($level);.$t
774a0 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c his->stderr->setVerbosity($level
774c0 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f );.}.....public.function.getErro
774e0 72 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 rOutput().{.return.$this->stderr
77500 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 ;.}..public.function.setErrorOut
77520 70 75 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 0a 7b 0a 24 74 put(OutputInterface.$error).{.$t
77540 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a his->stderr.=.$error;.}.........
77560 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 64 6f 75 74 53 ...protected.function.hasStdoutS
77580 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 27 4f 53 34 30 30 27 20 21 3d 20 70 68 upport().{.return.('OS400'.!=.ph
775a0 70 5f 75 6e 61 6d 65 28 27 73 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a p_uname('s'));.}.}.<?php........
775c0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ...namespace.Symfony\Component\C
775e0 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 onsole\Helper;.........interface
77600 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .HelperInterface.{........public
77620 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 .function.setHelperSet(HelperSet
77640 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .$helperSet.=.null);.........pub
77660 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 0a 0a lic.function.getHelperSet();....
77680 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a .....public.function.getName();.
776a0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
776c0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 ony\Component\Console\Helper;..u
776e0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 se.Symfony\Component\Console\For
77700 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c matter\OutputFormatter;.......cl
77720 61 73 73 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 ass.FormatterHelper.extends.Help
77740 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f er.{..........public.function.fo
77760 72 6d 61 74 53 65 63 74 69 6f 6e 28 24 73 65 63 74 69 6f 6e 2c 20 24 6d 65 73 73 61 67 65 2c 20 rmatSection($section,.$message,.
77780 24 73 74 79 6c 65 20 3d 20 27 69 6e 66 6f 27 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 $style.=.'info').{.return.sprint
777a0 66 28 27 3c 25 73 3e 5b 25 73 5d 3c 2f 25 73 3e 20 25 73 27 2c 20 24 73 74 79 6c 65 2c 20 24 73 f('<%s>[%s]</%s>.%s',.$style,.$s
777c0 65 63 74 69 6f 6e 2c 20 24 73 74 79 6c 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a ection,.$style,.$message);.}....
777e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 42 6c 6f .......public.function.formatBlo
77800 63 6b 28 24 6d 65 73 73 61 67 65 73 2c 20 24 73 74 79 6c 65 2c 20 24 6c 61 72 67 65 20 3d 20 66 ck($messages,.$style,.$large.=.f
77820 61 6c 73 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 alse).{.$messages.=.(array).$mes
77840 73 61 67 65 73 3b 0a 0a 24 6c 65 6e 20 3d 20 30 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 sages;..$len.=.0;.$lines.=.array
77860 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 ();.foreach.($messages.as.$messa
77880 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 ge).{.$message.=.OutputFormatter
778a0 3a 3a 65 73 63 61 70 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 ::escape($message);.$lines[].=.s
778c0 70 72 69 6e 74 66 28 24 6c 61 72 67 65 20 3f 20 27 20 20 25 73 20 20 27 20 3a 20 27 20 25 73 20 printf($large.?.'..%s..'.:.'.%s.
778e0 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 74 68 69 73 2d 3e ',.$message);.$len.=.max($this->
77900 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 20 2b 20 28 24 6c 61 72 67 65 20 3f 20 34 20 3a strlen($message).+.($large.?.4.:
77920 20 32 29 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 24 6c 61 72 67 .2),.$len);.}..$messages.=.$larg
77940 65 20 3f 20 61 72 72 61 79 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 e.?.array(str_repeat('.',.$len))
77960 20 3a 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 .:.array();.foreach.($lines.as.$
77980 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 2e 73 74 72 5f line).{.$messages[].=.$line.str_
779a0 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e repeat('.',.$len.-.$this->strlen
779c0 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a 69 66 20 28 24 6c 61 72 67 65 29 20 7b 0a 24 6d 65 73 73 61 ($line));.}.if.($large).{.$messa
779e0 67 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 7d ges[].=.str_repeat('.',.$len);.}
77a00 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 26 24 6d 65 73 73 61 67 ..foreach.($messages.as.&$messag
77a20 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 25 73 3c e).{.$message.=.sprintf('<%s>%s<
77a40 2f 25 73 3e 27 2c 20 24 73 74 79 6c 65 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 29 /%s>',.$style,.$message,.$style)
77a60 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 ;.}..return.implode("\n",.$messa
77a80 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e ges);.}.........private.function
77aa0 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e .strlen($string).{.if.(!function
77ac0 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 6c 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 _exists('mb_strlen')).{.return.s
77ae0 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d trlen($string);.}..if.(false.===
77b00 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 .$encoding.=.mb_detect_encoding(
77b20 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e $string)).{.return.strlen($strin
77b40 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c g);.}..return.mb_strlen($string,
77b60 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$encoding);.}.......public.func
77b80 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 66 6f 72 6d 61 74 74 tion.getName().{.return.'formatt
77ba0 65 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 er';.}.}.<?php...........namespa
77bc0 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c ce.Symfony\Component\Console\Hel
77be0 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 per;..use.Symfony\Component\Cons
77c00 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 ole\Command\Command;.......class
77c20 20 48 65 6c 70 65 72 53 65 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 73 3b 0a 70 .HelperSet.{.private.$helpers;.p
77c40 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rivate.$command;.......public.fu
77c60 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 68 65 6c 70 65 72 nction.__construct(array.$helper
77c80 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 20 3d 20 s.=.array()).{.$this->helpers.=.
77ca0 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 68 65 6c 70 65 72 73 20 61 73 20 24 61 array();.foreach.($helpers.as.$a
77cc0 6c 69 61 73 20 3d 3e 20 24 68 65 6c 70 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 28 24 68 lias.=>.$helper).{.$this->set($h
77ce0 65 6c 70 65 72 2c 20 69 73 5f 69 6e 74 28 24 61 6c 69 61 73 29 20 3f 20 6e 75 6c 6c 20 3a 20 24 elper,.is_int($alias).?.null.:.$
77d00 61 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 alias);.}.}........public.functi
77d20 6f 6e 20 73 65 74 28 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 20 24 68 65 6c 70 65 72 2c 20 on.set(HelperInterface.$helper,.
77d40 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b $alias.=.null).{.$this->helpers[
77d60 24 68 65 6c 70 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 69 $helper->getName()].=.$helper;.i
77d80 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c f.(null.!==.$alias).{.$this->hel
77da0 70 65 72 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 7d 0a 0a 24 68 65 6c 70 pers[$alias].=.$helper;.}..$help
77dc0 65 72 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a er->setHelperSet($this);.}......
77de0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a ...public.function.has($name).{.
77e00 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d return.isset($this->helpers[$nam
77e20 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e e]);.}...........public.function
77e40 20 67 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 28 24 6e .get($name).{.if.(!$this->has($n
77e60 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 ame)).{.throw.new.\InvalidArgume
77e80 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 68 65 6c 70 65 72 20 ntException(sprintf('The.helper.
77ea0 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a "%s".is.not.defined.',.$name));.
77ec0 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 3b }..return.$this->helpers[$name];
77ee0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d .}.......public.function.setComm
77f00 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 and(Command.$command.=.null).{.$
77f20 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a this->command.=.$command;.}.....
77f40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b ..public.function.getCommand().{
77f60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 .return.$this->command;.}.}.<?ph
77f80 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
77fa0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d mponent\Console\Helper;..use.Sym
77fc0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 fony\Component\Console\Output\Ou
77fe0 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f tputInterface;.......class.Dialo
78000 67 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 65 gHelper.extends.Helper.{.private
78020 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .$inputStream;.............publi
78040 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 c.function.ask(OutputInterface.$
78060 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 output,.$question,.$default.=.nu
78080 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b ll).{.$output->write($question);
780a0 0a 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 ..$ret.=.fgets($this->inputStrea
780c0 6d 20 3f 3a 20 53 54 44 49 4e 2c 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d m.?:.STDIN,.4096);.if.(false.===
780e0 20 24 72 65 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 .$ret).{.throw.new.\RuntimeExcep
78100 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 tion('Aborted');.}.$ret.=.trim($
78120 72 65 74 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 72 65 74 29 20 3e 20 30 20 3f ret);..return.strlen($ret).>.0.?
78140 20 24 72 65 74 20 3a 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$ret.:.$default;.}.............
78160 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 public.function.askConfirmation(
78180 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 OutputInterface.$output,.$questi
781a0 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 61 6e 73 77 65 72 20 3d on,.$default.=.true).{.$answer.=
781c0 20 27 7a 27 3b 0a 77 68 69 6c 65 20 28 24 61 6e 73 77 65 72 20 26 26 20 21 69 6e 5f 61 72 72 61 .'z';.while.($answer.&&.!in_arra
781e0 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 2c 20 61 72 72 61 79 28 y(strtolower($answer[0]),.array(
78200 27 79 27 2c 20 27 6e 27 29 29 29 20 7b 0a 24 61 6e 73 77 65 72 20 3d 20 24 74 68 69 73 2d 3e 61 'y',.'n'))).{.$answer.=.$this->a
78220 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 66 sk($output,.$question);.}..if.(f
78240 61 6c 73 65 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 alse.===.$default).{.return.$ans
78260 77 65 72 20 26 26 20 27 79 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 wer.&&.'y'.==.strtolower($answer
78280 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 61 6e 73 77 65 72 20 7c 7c 20 27 79 27 20 [0]);.}..return.!$answer.||.'y'.
782a0 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 0a 0a ==.strtolower($answer[0]);.}....
782c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 ...............public.function.a
782e0 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f skAndValidate(OutputInterface.$o
78300 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 utput,.$question,.$validator,.$a
78320 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c ttempts.=.false,.$default.=.null
78340 29 0a 7b 0a 24 65 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 20 ).{.$error.=.null;.while.(false.
78360 3d 3d 3d 20 24 61 74 74 65 6d 70 74 73 20 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a ===.$attempts.||.$attempts--).{.
78380 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e if.(null.!==.$error).{.$output->
783a0 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 writeln($this->getHelperSet()->g
783c0 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 et('formatter')->formatBlock($er
783e0 72 6f 72 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 65 72 72 6f 72 27 29 29 3b 0a 7d 0a ror->getMessage(),.'error'));.}.
78400 0a 24 76 61 6c 75 65 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 .$value.=.$this->ask($output,.$q
78420 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 uestion,.$default);..try.{.retur
78440 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 76 61 n.call_user_func($validator,.$va
78460 6c 75 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 72 72 6f 72 lue);.}.catch.(\Exception.$error
78480 29 20 7b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ).{.}.}..throw.$error;.}........
784a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 .public.function.setInputStream(
784c0 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 $stream).{.$this->inputStream.=.
784e0 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $stream;.}.......public.function
78500 20 67 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .getInputStream().{.return.$this
78520 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ->inputStream;.}.......public.fu
78540 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 69 61 6c 6f nction.getName().{.return.'dialo
78560 67 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 g';.}.}.<?php...........namespac
78580 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 e.Symfony\Component\Console\Help
785a0 65 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 48 65 6c 70 65 72 20 er;.......abstract.class.Helper.
785c0 69 6d 70 6c 65 6d 65 6e 74 73 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f implements.HelperInterface.{.pro
785e0 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 0a 0a tected.$helperSet.=.null;.......
78600 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c public.function.setHelperSet(Hel
78620 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 perSet.$helperSet.=.null).{.$thi
78640 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a s->helperSet.=.$helperSet;.}....
78660 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 ...public.function.getHelperSet(
78680 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 7d ).{.return.$this->helperSet;.}.}
786a0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
786c0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ny\Component\Finder;............
786e0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6e 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 .....class.Finder.implements.\It
78700 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f eratorAggregate,.\Countable.{.co
78720 6e 73 74 20 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 nst.IGNORE_VCS_FILES.=.1;.const.
78740 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 IGNORE_DOT_FILES.=.2;..private.$
78760 6d 6f 64 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 mode.=.0;.private.$names.=.array
78780 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b ();.private.$notNames.=.array();
787a0 0a 70 72 69 76 61 74 65 20 24 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 .private.$exclude.=.array();.pri
787c0 76 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 vate.$filters.=.array();.private
787e0 20 24 64 65 70 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 69 7a .$depths.=.array();.private.$siz
78800 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 6c 6c 6f 77 4c 69 6e es.=.array();.private.$followLin
78820 6b 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 ks.=.false;.private.$sort.=.fals
78840 65 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 e;.private.$ignore.=.0;.private.
78860 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 65 73 20 $dirs.=.array();.private.$dates.
78880 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 73 20 3d 20 =.array();.private.$iterators.=.
788a0 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 array();.private.$contains.=.arr
788c0 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 ay();.private.$notContains.=.arr
788e0 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 76 63 73 50 61 74 74 65 72 ay();..private.static.$vcsPatter
78900 6e 73 20 3d 20 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c 20 27 43 56 53 27 ns.=.array('.svn',.'_svn',.'CVS'
78920 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 27 2e 6d 6f ,.'_darcs',.'.arch-params',.'.mo
78940 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 27 29 3b notone',.'.bzr',.'.git',.'.hg');
78960 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
78980 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 73 74 61 74 69 63 3a 3a 49 47 4e ().{.$this->ignore.=.static::IGN
789a0 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 7c 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 ORE_VCS_FILES.|.static::IGNORE_D
789c0 4f 54 5f 46 49 4c 45 53 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 OT_FILES;.}.........public.stati
789e0 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 c.function.create().{.return.new
78a00 20 73 65 6c 66 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .self();.}.........public.functi
78a20 6f 6e 20 64 69 72 65 63 74 6f 72 69 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d on.directories().{.$this->mode.=
78a40 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 .Iterator\FileTypeFilterIterator
78a60 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ::ONLY_DIRECTORIES;..return.$thi
78a80 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c s;.}.........public.function.fil
78aa0 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 49 74 65 72 61 74 6f 72 5c 46 69 es().{.$this->mode.=.Iterator\Fi
78ac0 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 leTypeFilterIterator::ONLY_FILES
78ae0 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ;..return.$this;.}..............
78b00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 70 74 68 28 24 6c 65 76 65 .....public.function.depth($leve
78b20 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 70 74 68 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 l).{.$this->depths[].=.new.Compa
78b40 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 6c 65 76 65 6c 29 3b 0a rator\NumberComparator($level);.
78b60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .return.$this;.}................
78b80 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 61 74 65 28 24 64 61 74 65 ......public.function.date($date
78ba0 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 61 74 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 ).{.$this->dates[].=.new.Compara
78bc0 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 28 24 64 61 74 65 29 3b 0a 0a 72 65 74 75 tor\DateComparator($date);..retu
78be0 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 rn.$this;.}...................pu
78c00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 blic.function.name($pattern).{.$
78c20 74 68 69 73 2d 3e 6e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 this->names[].=.$pattern;..retur
78c40 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 n.$this;.}.............public.fu
78c60 6e 63 74 69 6f 6e 20 6e 6f 74 4e 61 6d 65 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 nction.notName($pattern).{.$this
78c80 2d 3e 6e 6f 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e ->notNames[].=.$pattern;..return
78ca0 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$this;.}................public.
78cc0 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 function.contains($pattern).{.$t
78ce0 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 his->contains[].=.$pattern;..ret
78d00 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 urn.$this;.}.................pub
78d20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 lic.function.notContains($patter
78d40 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 74 n).{.$this->notContains[].=.$pat
78d60 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tern;..return.$this;.}..........
78d80 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 7a 65 28 24 73 69 ........public.function.size($si
78da0 7a 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 69 7a 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 ze).{.$this->sizes[].=.new.Compa
78dc0 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 73 69 7a 65 29 3b 0a 0a rator\NumberComparator($size);..
78de0 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c return.$this;.}.............publ
78e00 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 63 6c 75 64 65 28 24 64 69 72 73 29 0a 7b 0a 24 74 68 ic.function.exclude($dirs).{.$th
78e20 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d is->exclude.=.array_merge($this-
78e40 3e 65 78 63 6c 75 64 65 2c 20 28 61 72 72 61 79 29 20 24 64 69 72 73 29 3b 0a 0a 72 65 74 75 72 >exclude,.(array).$dirs);..retur
78e60 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 n.$this;.}.............public.fu
78e80 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 24 69 67 6e 6f 72 65 44 6f 74 nction.ignoreDotFiles($ignoreDot
78ea0 46 69 6c 65 73 29 0a 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 29 20 7b 0a Files).{.if.($ignoreDotFiles).{.
78ec0 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 20 $this->ignore.=.$this->ignore.|.
78ee0 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 static::IGNORE_DOT_FILES;.}.else
78f00 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 .{.$this->ignore.=.$this->ignore
78f20 20 26 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 0a .&.~static::IGNORE_DOT_FILES;.}.
78f40 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .return.$this;.}.............pub
78f60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 56 43 53 28 24 69 67 6e 6f 72 65 56 43 lic.function.ignoreVCS($ignoreVC
78f80 53 29 0a 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 56 43 53 29 20 7b 0a 24 74 68 69 73 2d 3e 69 67 S).{.if.($ignoreVCS).{.$this->ig
78fa0 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 20 73 74 61 74 69 63 3a 3a 49 nore.=.$this->ignore.|.static::I
78fc0 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d GNORE_VCS_FILES;.}.else.{.$this-
78fe0 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 26 20 7e 73 74 61 74 69 >ignore.=.$this->ignore.&.~stati
79000 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 c::IGNORE_VCS_FILES;.}..return.$
79020 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 this;.}..public.static.function.
79040 61 64 64 56 43 53 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 73 65 6c 66 3a 3a addVCSPattern($pattern).{.self::
79060 24 76 63 73 50 61 74 74 65 72 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a $vcsPatterns[].=.$pattern;.}....
79080 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 .............public.function.sor
790a0 74 28 5c 43 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f t(\Closure.$closure).{.$this->so
790c0 72 74 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a rt.=.$closure;..return.$this;.}.
790e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 ............public.function.sort
79100 42 79 4e 61 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f ByName().{.$this->sort.=.Iterato
79120 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 r\SortableIterator::SORT_BY_NAME
79140 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ;..return.$this;.}.............p
79160 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 54 79 70 65 28 29 0a 7b 0a 24 74 ublic.function.sortByType().{.$t
79180 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 his->sort.=.Iterator\SortableIte
791a0 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 rator::SORT_BY_TYPE;..return.$th
791c0 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 is;.}...............public.funct
791e0 69 6f 6e 20 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 ion.sortByAccessedTime().{.$this
79200 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 ->sort.=.Iterator\SortableIterat
79220 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 or::SORT_BY_ACCESSED_TIME;..retu
79240 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rn.$this;.}.................publ
79260 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 43 68 61 6e 67 65 64 54 69 6d 65 28 29 0a ic.function.sortByChangedTime().
79280 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c {.$this->sort.=.Iterator\Sortabl
792a0 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3b eIterator::SORT_BY_CHANGED_TIME;
792c0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ..return.$this;.}...............
792e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 4d 6f 64 69 66 69 65 64 54 69 public.function.sortByModifiedTi
79300 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f me().{.$this->sort.=.Iterator\So
79320 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 rtableIterator::SORT_BY_MODIFIED
79340 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a _TIME;..return.$this;.}.........
79360 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 28 5c 43 .......public.function.filter(\C
79380 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 losure.$closure).{.$this->filter
793a0 73 5b 5d 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d s[].=.$closure;..return.$this;.}
793c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6c 6c 6f 77 4c .........public.function.followL
793e0 69 6e 6b 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 74 72 inks().{.$this->followLinks.=.tr
79400 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ue;..return.$this;.}............
79420 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 28 24 64 69 72 73 29 0a 7b 0a 24 64 69 .public.function.in($dirs).{.$di
79440 72 73 20 3d 20 28 61 72 72 61 79 29 20 24 64 69 72 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 rs.=.(array).$dirs;..foreach.($d
79460 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 irs.as.$dir).{.if.(!is_dir($dir)
79480 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
794a0 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 64 69 72 65 63 74 ception(sprintf('The."%s".direct
794c0 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 64 69 72 29 29 3b 0a 7d 0a ory.does.not.exist.',.$dir));.}.
794e0 7d 0a 0a 24 74 68 69 73 2d 3e 64 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 }..$this->dirs.=.array_merge($th
79500 69 73 2d 3e 64 69 72 73 2c 20 24 64 69 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b is->dirs,.$dirs);..return.$this;
79520 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .}...........public.function.get
79540 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 Iterator().{.if.(0.===.count($th
79560 69 73 2d 3e 64 69 72 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 is->dirs)).{.throw.new.\LogicExc
79580 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 63 61 6c 6c 20 74 68 65 20 69 6e 28 29 20 6d eption('You.must.call.the.in().m
795a0 65 74 68 6f 64 20 62 65 66 6f 72 65 20 69 74 65 72 61 74 69 6e 67 20 6f 76 65 72 20 61 20 46 69 ethod.before.iterating.over.a.Fi
795c0 6e 64 65 72 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 nder.');.}..if.(1.===.count($thi
795e0 73 2d 3e 64 69 72 73 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 s->dirs).&&.0.===.count($this->i
79600 74 65 72 61 74 6f 72 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 61 72 63 terators)).{.return.$this->searc
79620 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 64 69 72 73 5b 30 5d 29 3b 0a 7d 0a hInDirectory($this->dirs[0]);.}.
79640 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c 41 70 70 65 6e 64 49 74 65 72 61 74 6f 72 .$iterator.=.new.\AppendIterator
79660 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 69 72 73 20 61 73 20 24 64 69 72 ();.foreach.($this->dirs.as.$dir
79680 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 74 68 69 73 2d 3e 73 65 61 ).{.$iterator->append($this->sea
796a0 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 rchInDirectory($dir));.}..foreac
796c0 68 20 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 20 61 73 20 24 69 74 29 20 7b 0a 24 69 h.($this->iterators.as.$it).{.$i
796e0 74 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 69 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 terator->append($it);.}..return.
79700 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $iterator;.}.........public.func
79720 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 69 74 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 69 74 tion.append($iterator).{.if.($it
79740 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 erator.instanceof.\IteratorAggre
79760 67 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 gate).{.$this->iterators[].=.$it
79780 65 72 61 74 6f 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 erator->getIterator();.}.elseif.
797a0 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 29 ($iterator.instanceof.\Iterator)
797c0 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f .{.$this->iterators[].=.$iterato
797e0 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f r;.}.elseif.($iterator.instanceo
79800 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 69 73 5f 61 72 72 61 79 28 24 69 74 65 72 f.\Traversable.||.is_array($iter
79820 61 74 6f 72 29 29 20 7b 0a 24 69 74 20 3d 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f ator)).{.$it.=.new.\ArrayIterato
79840 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 66 69 6c 65 r();.foreach.($iterator.as.$file
79860 29 20 7b 0a 24 69 74 2d 3e 61 70 70 65 6e 64 28 24 66 69 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 ).{.$it->append($file.instanceof
79880 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 3f 20 24 66 69 6c 65 20 3a 20 6e 65 77 20 5c 53 70 6c .\SplFileInfo.?.$file.:.new.\Spl
798a0 46 69 6c 65 49 6e 66 6f 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 FileInfo($file));.}.$this->itera
798c0 74 6f 72 73 5b 5d 20 3d 20 24 69 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 tors[].=.$it;.}.else.{.throw.new
798e0 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 69 6e 64 .\InvalidArgumentException('Find
79900 65 72 3a 3a 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 20 77 72 6f 6e 67 20 61 72 67 75 6d 65 er::append().method.wrong.argume
79920 6e 74 20 74 79 70 65 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e nt.type.');.}.}.......public.fun
79940 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f ction.count().{.return.iterator_
79960 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a count($this->getIterator());.}..
79980 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f private.function.searchInDirecto
799a0 72 79 28 24 64 69 72 29 0a 7b 0a 24 66 6c 61 67 73 20 3d 20 5c 52 65 63 75 72 73 69 76 65 44 69 ry($dir).{.$flags.=.\RecursiveDi
799c0 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 3b 0a 0a 69 66 20 rectoryIterator::SKIP_DOTS;..if.
799e0 28 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 20 7b 0a 24 66 6c 61 67 73 20 7c 3d ($this->followLinks).{.$flags.|=
79a00 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 46 4f .\RecursiveDirectoryIterator::FO
79a20 4c 4c 4f 57 5f 53 59 4d 4c 49 4e 4b 53 3b 0a 7d 0a 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 LLOW_SYMLINKS;.}..$iterator.=.ne
79a40 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 0a 6e 65 w.\RecursiveIteratorIterator(.ne
79a60 77 20 49 74 65 72 61 74 6f 72 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 w.Iterator\RecursiveDirectoryIte
79a80 72 61 74 6f 72 28 24 64 69 72 2c 20 24 66 6c 61 67 73 29 2c 0a 5c 52 65 63 75 72 73 69 76 65 49 rator($dir,.$flags),.\RecursiveI
79aa0 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 0a 29 3b 0a 0a teratorIterator::SELF_FIRST.);..
79ac0 69 66 20 28 24 74 68 69 73 2d 3e 64 65 70 74 68 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d if.($this->depths).{.$iterator.=
79ae0 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 .new.Iterator\DepthRangeFilterIt
79b00 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 64 65 70 74 68 73 29 erator($iterator,.$this->depths)
79b20 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f ;.}..if.($this->mode).{.$iterato
79b40 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 r.=.new.Iterator\FileTypeFilterI
79b60 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b terator($iterator,.$this->mode);
79b80 0a 7d 0a 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 .}..if.(static::IGNORE_VCS_FILES
79ba0 20 3d 3d 3d 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 26 .===.(static::IGNORE_VCS_FILES.&
79bc0 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 .$this->ignore)).{.$this->exclud
79be0 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 e.=.array_merge($this->exclude,.
79c00 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 61 74 self::$vcsPatterns);.}..if.(stat
79c20 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 74 61 74 69 63 ic::IGNORE_DOT_FILES.===.(static
79c40 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 69 67 6e 6f ::IGNORE_DOT_FILES.&.$this->igno
79c60 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 5b 5d 20 3d 20 27 2f 5e 5c 2e re)).{.$this->notNames[].=.'/^\.
79c80 2e 2b 2f 27 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 20 7b 0a 24 .+/';.}..if.($this->exclude).{.$
79ca0 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 64 65 44 iterator.=.new.Iterator\ExcludeD
79cc0 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 irectoryFilterIterator($iterator
79ce0 2c 20 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d ,.$this->exclude);.}..if.($this-
79d00 3e 6e 61 6d 65 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 20 7b 0a 24 69 74 >names.||.$this->notNames).{.$it
79d20 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d 65 46 69 erator.=.new.Iterator\FilenameFi
79d40 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6e lterIterator($iterator,.$this->n
79d60 61 6d 65 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 ames,.$this->notNames);.}..if.($
79d80 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 this->contains.||.$this->notCont
79da0 61 69 6e 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 ains).{.$iterator.=.new.Iterator
79dc0 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 \FilecontentFilterIterator($iter
79de0 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f ator,.$this->contains,.$this->no
79e00 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 tContains);.}..if.($this->sizes)
79e20 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 69 7a 65 .{.$iterator.=.new.Iterator\Size
79e40 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 RangeFilterIterator($iterator,.$
79e60 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 61 74 65 this->sizes);.}..if.($this->date
79e80 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 61 s).{.$iterator.=.new.Iterator\Da
79ea0 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c teRangeFilterIterator($iterator,
79ec0 20 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 .$this->dates);.}..if.($this->fi
79ee0 6c 74 65 72 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f lters).{.$iterator.=.new.Iterato
79f00 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 r\CustomFilterIterator($iterator
79f20 2c 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d ,.$this->filters);.}..if.($this-
79f40 3e 73 6f 72 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d 20 6e 65 >sort).{.$iteratorAggregate.=.ne
79f60 77 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 28 24 69 74 65 w.Iterator\SortableIterator($ite
79f80 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d rator,.$this->sort);.$iterator.=
79fa0 20 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 .$iteratorAggregate->getIterator
79fc0 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 ();.}..return.$iterator;.}.}.<?p
79fe0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
7a000 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a omponent\Finder;................
7a020 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ........class.Glob.{..........pu
7a040 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 67 6c blic.static.function.toRegex($gl
7a060 6f 62 2c 20 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 ob,.$strictLeadingDot.=.true,.$s
7a080 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 trictWildcardSlash.=.true).{.$fi
7a0a0 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 rstByte.=.true;.$escaping.=.fals
7a0c0 65 3b 0a 24 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b 0a 24 72 65 67 65 78 20 3d 20 27 27 3b 0a e;.$inCurlies.=.0;.$regex.=.'';.
7a0e0 24 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 67 6c 6f 62 29 3b 0a 66 6f 72 20 28 $sizeGlob.=.strlen($glob);.for.(
7a100 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 24 69 2b 2b 29 20 7b 0a $i.=.0;.$i.<.$sizeGlob;.$i++).{.
7a120 24 63 61 72 20 3d 20 24 67 6c 6f 62 5b 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 65 $car.=.$glob[$i];.if.($firstByte
7a140 29 20 7b 0a 69 66 20 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 26 26 20 27 2e 27 ).{.if.($strictLeadingDot.&&.'.'
7a160 20 21 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e 5d .!==.$car).{.$regex..=.'(?=[^\.]
7a180 29 27 3b 0a 7d 0a 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 )';.}..$firstByte.=.false;.}..if
7a1a0 20 28 27 2f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 .('/'.===.$car).{.$firstByte.=.t
7a1c0 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 2e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 28 27 20 rue;.}..if.('.'.===.$car.||.'('.
7a1e0 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 29 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 7c 27 20 ===.$car.||.')'.===.$car.||.'|'.
7a200 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 2b 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 5e 27 20 ===.$car.||.'+'.===.$car.||.'^'.
7a220 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 24 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 ===.$car.||.'$'.===.$car).{.$reg
7a240 65 78 20 2e 3d 20 22 5c 5c 24 63 61 72 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2a 27 20 3d 3d ex..=."\\$car";.}.elseif.('*'.==
7a260 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 =.$car).{.$regex..=.$escaping.?.
7a280 27 5c 5c 2a 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 '\\*'.:.($strictWildcardSlash.?.
7a2a0 27 5b 5e 2f 5d 2a 27 20 3a 20 27 2e 2a 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3f 27 20 3d '[^/]*'.:.'.*');.}.elseif.('?'.=
7a2c0 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f ==.$car).{.$regex..=.$escaping.?
7a2e0 20 27 5c 5c 3f 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f .'\\?'.:.($strictWildcardSlash.?
7a300 20 27 5b 5e 2f 5d 27 20 3a 20 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 7b 27 20 3d 3d .'[^/]'.:.'.');.}.elseif.('{'.==
7a320 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 =.$car).{.$regex..=.$escaping.?.
7a340 27 5c 5c 7b 27 20 3a 20 27 28 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2b '\\{'.:.'(';.if.(!$escaping).{.+
7a360 2b 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 7d 27 20 3d 3d 3d +$inCurlies;.}.}.elseif.('}'.===
7a380 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d .$car.&&.$inCurlies).{.$regex..=
7a3a0 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 7d 27 20 3a 20 27 29 27 3b 0a 69 66 20 28 21 24 65 73 .$escaping.?.'}'.:.')';.if.(!$es
7a3c0 63 61 70 69 6e 67 29 20 7b 0a 2d 2d 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 caping).{.--$inCurlies;.}.}.else
7a3e0 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 if.(','.===.$car.&&.$inCurlies).
7a400 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 2c 27 20 3a 20 27 7c {.$regex..=.$escaping.?.','.:.'|
7a420 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 69 66 ';.}.elseif.('\\'.===.$car).{.if
7a440 20 28 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 3b .($escaping).{.$regex..=.'\\\\';
7a460 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 .$escaping.=.false;.}.else.{.$es
7a480 63 61 70 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c caping.=.true;.}..continue;.}.el
7a4a0 73 65 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 63 61 72 3b 0a 7d 0a 24 65 73 63 61 70 69 6e 67 se.{.$regex..=.$car;.}.$escaping
7a4c0 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 23 5e 27 2e 24 72 65 67 65 78 2e .=.false;.}..return.'#^'.$regex.
7a4e0 27 24 23 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 '$#';.}.}.<?php...........namesp
7a500 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 ace.Symfony\Component\Finder\Ite
7a520 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 74 68 52 61 6e 67 65 46 69 6c rator;.......class.DepthRangeFil
7a540 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 terIterator.extends.\FilterItera
7a560 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 0a 0a 0a tor.{.private.$minDepth.=.0;....
7a580 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
7a5a0 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 \RecursiveIteratorIterator.$iter
7a5c0 61 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 6d 69 6e ator,.array.$comparators).{.$min
7a5e0 44 65 70 74 68 20 3d 20 30 3b 0a 24 6d 61 78 44 65 70 74 68 20 3d 20 49 4e 46 3b 0a 66 6f 72 65 Depth.=.0;.$maxDepth.=.INF;.fore
7a600 61 63 68 20 28 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 61 74 6f 72 ach.($comparators.as.$comparator
7a620 29 20 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 4f 70 65 72 ).{.switch.($comparator->getOper
7a640 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 6d 69 6e 44 65 70 74 68 20 3d 20 ator()).{.case.'>':.$minDepth.=.
7a660 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 31 3b 0a 62 72 $comparator->getTarget().+.1;.br
7a680 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 6d 69 6e 44 65 70 74 68 20 3d 20 24 63 6f 6d eak;.case.'>=':.$minDepth.=.$com
7a6a0 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 parator->getTarget();.break;.cas
7a6c0 65 20 27 3c 27 3a 0a 24 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e e.'<':.$maxDepth.=.$comparator->
7a6e0 67 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 3d getTarget().-.1;.break;.case.'<=
7a700 27 3a 0a 24 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 ':.$maxDepth.=.$comparator->getT
7a720 61 72 67 65 74 28 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 6d 69 6e 44 65 70 arget();.break;.default:.$minDep
7a740 74 68 20 3d 20 24 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 th.=.$maxDepth.=.$comparator->ge
7a760 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 tTarget();.}.}..$this->minDepth.
7a780 3d 20 24 6d 69 6e 44 65 70 74 68 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 73 65 74 4d 61 78 44 65 =.$minDepth;.$iterator->setMaxDe
7a7a0 70 74 68 28 49 4e 46 20 3d 3d 3d 20 24 6d 61 78 44 65 70 74 68 20 3f 20 2d 31 20 3a 20 24 6d 61 pth(INF.===.$maxDepth.?.-1.:.$ma
7a7c0 78 44 65 70 74 68 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 xDepth);..parent::__construct($i
7a7e0 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f terator);.}.......public.functio
7a800 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e n.accept().{.return.$this->getIn
7a820 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 67 65 74 44 65 70 74 68 28 29 20 3e 3d 20 24 74 68 nerIterator()->getDepth().>=.$th
7a840 69 73 2d 3e 6d 69 6e 44 65 70 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a is->minDepth;.}.}.<?php.........
7a860 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 ..namespace.Symfony\Component\Fi
7a880 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 72 74 61 nder\Iterator;.......class.Sorta
7a8a0 62 6c 65 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 bleIterator.implements.\Iterator
7a8c0 41 67 67 72 65 67 61 74 65 0a 7b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d Aggregate.{.const.SORT_BY_NAME.=
7a8e0 20 31 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 20 32 3b 0a 63 6f 6e 73 .1;.const.SORT_BY_TYPE.=.2;.cons
7a900 74 20 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 20 33 3b 0a 63 6f 6e t.SORT_BY_ACCESSED_TIME.=.3;.con
7a920 73 74 20 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 20 34 3b 0a 63 6f 6e st.SORT_BY_CHANGED_TIME.=.4;.con
7a940 73 74 20 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 20 35 3b 0a 0a 70 st.SORT_BY_MODIFIED_TIME.=.5;..p
7a960 72 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 3b rivate.$iterator;.private.$sort;
7a980 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ........public.function.__constr
7a9a0 75 63 74 28 5c 54 72 61 76 65 72 73 61 62 6c 65 20 24 69 74 65 72 61 74 6f 72 2c 20 24 73 6f 72 uct(\Traversable.$iterator,.$sor
7a9c0 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 t).{.$this->iterator.=.$iterator
7a9e0 3b 0a 0a 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 3d 3d 20 24 73 ;..if.(self::SORT_BY_NAME.===.$s
7aa00 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 ort).{.$this->sort.=.function.($
7aa20 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 a,.$b).{.return.strcmp($a->getRe
7aa40 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b alpath(),.$b->getRealpath());.};
7aa60 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 3d .}.elseif.(self::SORT_BY_TYPE.==
7aa80 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f =.$sort).{.$this->sort.=.functio
7aaa0 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 69 66 20 28 24 61 2d 3e 69 73 44 69 72 28 29 20 26 26 20 n.($a,.$b).{.if.($a->isDir().&&.
7aac0 24 62 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 20 65 6c 73 $b->isFile()).{.return.-1;.}.els
7aae0 65 69 66 20 28 24 61 2d 3e 69 73 46 69 6c 65 28 29 20 26 26 20 24 62 2d 3e 69 73 44 69 72 28 29 eif.($a->isFile().&&.$b->isDir()
7ab00 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 ).{.return.1;.}..return.strcmp($
7ab20 61 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 a->getRealpath(),.$b->getRealpat
7ab40 68 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 h());.};.}.elseif.(self::SORT_BY
7ab60 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 _ACCESSED_TIME.===.$sort).{.$thi
7ab80 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 s->sort.=.function.($a,.$b).{.re
7aba0 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 41 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 74 41 54 turn.($a->getATime().>.$b->getAT
7abc0 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f ime());.};.}.elseif.(self::SORT_
7abe0 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 BY_CHANGED_TIME.===.$sort).{.$th
7ac00 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 is->sort.=.function.($a,.$b).{.r
7ac20 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 43 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 74 43 eturn.($a->getCTime().>.$b->getC
7ac40 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 Time());.};.}.elseif.(self::SORT
7ac60 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 _BY_MODIFIED_TIME.===.$sort).{.$
7ac80 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b this->sort.=.function.($a,.$b).{
7aca0 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 4d 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 .return.($a->getMTime().>.$b->ge
7acc0 74 4d 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 63 61 6c 6c 61 tMTime());.};.}.elseif.(is_calla
7ace0 62 6c 65 28 24 73 6f 72 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 73 6f 72 ble($sort)).{.$this->sort.=.$sor
7ad00 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 t;.}.else.{.throw.new.\InvalidAr
7ad20 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 6f 72 74 61 62 6c 65 49 74 65 gumentException('The.SortableIte
7ad40 72 61 74 6f 72 20 74 61 6b 65 73 20 61 20 50 48 50 20 63 61 6c 6c 62 61 63 6b 20 6f 72 20 61 20 rator.takes.a.PHP.callback.or.a.
7ad60 76 61 6c 69 64 20 62 75 69 6c 74 2d 69 6e 20 73 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 20 61 73 valid.built-in.sort.algorithm.as
7ad80 20 61 6e 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e .an.argument.');.}.}..public.fun
7ada0 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 24 61 72 72 61 79 20 3d 20 69 ction.getIterator().{.$array.=.i
7adc0 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 terator_to_array($this->iterator
7ade0 2c 20 74 72 75 65 29 3b 0a 75 61 73 6f 72 74 28 24 61 72 72 61 79 2c 20 24 74 68 69 73 2d 3e 73 ,.true);.uasort($array,.$this->s
7ae00 6f 72 74 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 ort);..return.new.\ArrayIterator
7ae20 28 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ($array);.}.}.<?php...........na
7ae40 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 mespace.Symfony\Component\Finder
7ae60 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 63 6f 6e 74 \Iterator;........class.Filecont
7ae80 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 entFilterIterator.extends.Multip
7aea0 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c lePcreFilterIterator.{......publ
7aec0 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 ic.function.accept().{.if.(!$thi
7aee0 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 26 26 20 21 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 s->matchRegexps.&&.!$this->noMat
7af00 63 68 52 65 67 65 78 70 73 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 chRegexps).{.return.true;.}..$fi
7af20 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 leinfo.=.$this->current();..if.(
7af40 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 44 69 72 28 29 20 7c 7c 20 21 24 66 69 6c 65 69 6e 66 6f $fileinfo->isDir().||.!$fileinfo
7af60 2d 3e 69 73 52 65 61 64 61 62 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a ->isReadable()).{.return.false;.
7af80 7d 0a 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 43 6f 6e 74 }..$content.=.$fileinfo->getCont
7afa0 65 6e 74 73 28 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 ents();.if.(!$content).{.return.
7afc0 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 false;.}....foreach.($this->noMa
7afe0 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 tchRegexps.as.$regex).{.if.(preg
7b000 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 _match($regex,.$content)).{.retu
7b020 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a rn.false;.}.}....$match.=.true;.
7b040 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 if.($this->matchRegexps).{.$matc
7b060 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 h.=.false;.foreach.($this->match
7b080 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 Regexps.as.$regex).{.if.(preg_ma
7b0a0 74 63 68 28 24 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 tch($regex,.$content)).{.return.
7b0c0 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a true;.}.}.}..return.$match;.}...
7b0e0 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 ......protected.function.toRegex
7b100 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 ($str).{.return.$this->isRegex($
7b120 73 74 72 29 20 3f 20 24 73 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 74 str).?.$str.:.'/'.preg_quote($st
7b140 72 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a r,.'/').'/';.}.}.<?php..........
7b160 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e .namespace.Symfony\Component\Fin
7b180 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 69 7a 65 52 61 der\Iterator;.......class.SizeRa
7b1a0 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 ngeFilterIterator.extends.\Filte
7b1c0 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 rIterator.{.private.$comparators
7b1e0 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .=.array();........public.functi
7b200 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 on.__construct(\Iterator.$iterat
7b220 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d or,.array.$comparators).{.$this-
7b240 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 >comparators.=.$comparators;..pa
7b260 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a rent::__construct($iterator);.}.
7b280 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b ......public.function.accept().{
7b2a0 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 .$fileinfo.=.$this->current();.i
7b2c0 66 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 f.(!$fileinfo->isFile()).{.retur
7b2e0 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 73 69 7a 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f n.true;.}..$filesize.=.$fileinfo
7b300 2d 3e 67 65 74 53 69 7a 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d ->getSize();.foreach.($this->com
7b320 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f parators.as.$compare).{.if.(!$co
7b340 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 73 69 7a 65 29 29 20 7b 0a 72 65 74 75 72 6e mpare->test($filesize)).{.return
7b360 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f .false;.}.}..return.true;.}.}.<?
7b380 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
7b3a0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a Component\Finder\Iterator;......
7b3c0 0a 63 6c 61 73 73 20 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 .class.ExcludeDirectoryFilterIte
7b3e0 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a rator.extends.\FilterIterator.{.
7b400 70 72 69 76 61 74 65 20 24 70 61 74 74 65 72 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 private.$patterns;........public
7b420 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 .function.__construct(\Iterator.
7b440 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 64 69 72 65 63 74 6f 72 69 65 73 29 0a 7b $iterator,.array.$directories).{
7b460 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 .$this->patterns.=.array();.fore
7b480 61 63 68 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 24 64 69 72 65 63 74 6f 72 79 29 ach.($directories.as.$directory)
7b4a0 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 27 23 28 5e 7c 2f 29 27 2e .{.$this->patterns[].=.'#(^|/)'.
7b4c0 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 72 65 63 74 6f 72 79 2c 20 27 23 27 29 2e 27 28 2f 7c preg_quote($directory,.'#').'(/|
7b4e0 24 29 23 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 $)#';.}..parent::__construct($it
7b500 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e erator);.}.......public.function
7b520 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 73 44 69 72 .accept().{.$path.=.$this->isDir
7b540 28 29 20 3f 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 74 69 ().?.$this->current()->getRelati
7b560 76 65 50 61 74 68 6e 61 6d 65 28 29 20 3a 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d vePathname().:.$this->current()-
7b580 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 28 29 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 74 >getRelativePath();.$path.=.strt
7b5a0 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 r($path,.'\\',.'/');.foreach.($t
7b5c0 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 69 66 20 his->patterns.as.$pattern).{.if.
7b5e0 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a (preg_match($pattern,.$path)).{.
7b600 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a return.false;.}.}..return.true;.
7b620 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 }.}.<?php...........namespace.Sy
7b640 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b mfony\Component\Finder\Iterator;
7b660 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 4d 75 6c 74 69 70 6c 65 50 63 .......abstract.class.MultiplePc
7b680 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 reFilterIterator.extends.\Filter
7b6a0 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 52 65 67 65 78 Iterator.{.protected.$matchRegex
7b6c0 70 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 0a ps;.protected.$noMatchRegexps;..
7b6e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
7b700 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 6d ct(\Iterator.$iterator,.array.$m
7b720 61 74 63 68 50 61 74 74 65 72 6e 73 2c 20 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 68 50 61 74 74 atchPatterns,.array.$noMatchPatt
7b740 65 72 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 erns).{.$this->matchRegexps.=.ar
7b760 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 ray();.foreach.($matchPatterns.a
7b780 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 s.$pattern).{.$this->matchRegexp
7b7a0 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a s[].=.$this->toRegex($pattern);.
7b7c0 7d 0a 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 }..$this->noMatchRegexps.=.array
7b7e0 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 ();.foreach.($noMatchPatterns.as
7b800 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 .$pattern).{.$this->noMatchRegex
7b820 70 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b ps[].=.$this->toRegex($pattern);
7b840 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f .}..parent::__construct($iterato
7b860 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e r);.}.........protected.function
7b880 20 69 73 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 .isRegex($str).{.if.(preg_match(
7b8a0 27 2f 5e 28 2e 7b 33 2c 7d 3f 29 5b 69 6d 73 78 75 41 44 55 5d 2a 24 2f 27 2c 20 24 73 74 72 2c '/^(.{3,}?)[imsxuADU]*$/',.$str,
7b8c0 20 24 6d 29 29 20 7b 0a 24 73 74 61 72 74 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 30 .$m)).{.$start.=.substr($m[1],.0
7b8e0 2c 20 31 29 3b 0a 24 65 6e 64 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 2d 31 29 3b 0a ,.1);.$end.=.substr($m[1],.-1);.
7b900 0a 69 66 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 24 65 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 21 .if.($start.===.$end).{.return.!
7b920 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5b 2a 3f 5b 3a 61 6c 6e 75 6d 3a 5d 20 5c 5c 5c 5c 5d 2f preg_match('/[*?[:alnum:].\\\\]/
7b940 27 2c 20 24 73 74 61 72 74 29 3b 0a 7d 0a 0a 69 66 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 7b ',.$start);.}..if.($start.===.'{
7b960 27 20 26 26 20 24 65 6e 64 20 3d 3d 3d 20 27 7d 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 '.&&.$end.===.'}').{.return.true
7b980 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 ;.}.}..return.false;.}.........a
7b9a0 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 bstract.protected.function.toReg
7b9c0 65 78 28 24 73 74 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 ex($str);.}.<?php...........name
7b9e0 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 space.Symfony\Component\Finder\I
7ba00 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d 46 69 terator;..........class.CustomFi
7ba20 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 lterIterator.extends.\FilterIter
7ba40 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 ator.{.private.$filters.=.array(
7ba60 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 );........public.function.__cons
7ba80 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 truct(\Iterator.$iterator,.array
7baa0 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 .$filters).{.foreach.($filters.a
7bac0 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 66 s.$filter).{.if.(!is_callable($f
7bae0 69 6c 74 65 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 ilter)).{.throw.new.\InvalidArgu
7bb00 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 48 50 20 63 61 6c 6c 62 mentException('Invalid.PHP.callb
7bb20 61 63 6b 2e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 ack.');.}.}.$this->filters.=.$fi
7bb40 6c 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 lters;..parent::__construct($ite
7bb60 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rator);.}.......public.function.
7bb80 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 accept().{.$fileinfo.=.$this->cu
7bba0 72 72 65 6e 74 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 rrent();..foreach.($this->filter
7bbc0 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 63 61 s.as.$filter).{.if.(false.===.ca
7bbe0 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 66 69 6c 74 65 72 2c 20 24 66 69 6c 65 69 6e 66 6f 29 ll_user_func($filter,.$fileinfo)
7bc00 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 ).{.return.false;.}.}..return.tr
7bc20 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ue;.}.}.<?php...........namespac
7bc40 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 e.Symfony\Component\Finder\Itera
7bc60 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 tor;..use.Symfony\Component\Find
7bc80 65 72 5c 47 6c 6f 62 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 6e 61 6d 65 46 69 6c er\Glob;.......class.FilenameFil
7bca0 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 terIterator.extends.MultiplePcre
7bcc0 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 FilterIterator.{.......public.fu
7bce0 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 nction.accept().{.$filename.=.$t
7bd00 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a his->current()->getFilename();..
7bd20 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 ..foreach.($this->noMatchRegexps
7bd40 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 .as.$regex).{.if.(preg_match($re
7bd60 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b gex,.$filename)).{.return.false;
7bd80 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 .}.}....$match.=.true;.if.($this
7bda0 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 ->matchRegexps).{.$match.=.false
7bdc0 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 ;.foreach.($this->matchRegexps.a
7bde0 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 s.$regex).{.if.(preg_match($rege
7be00 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a x,.$filename)).{.return.true;.}.
7be20 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a }.}..return.$match;.}...........
7be40 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 .protected.function.toRegex($str
7be60 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 73 74 72 29 20 ).{.return.$this->isRegex($str).
7be80 3f 20 24 73 74 72 20 3a 20 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 73 74 72 29 3b 0a 7d 0a ?.$str.:.Glob::toRegex($str);.}.
7bea0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
7bec0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a ony\Component\Finder\Iterator;..
7bee0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 .....class.DateRangeFilterIterat
7bf00 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 or.extends.\FilterIterator.{.pri
7bf20 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a vate.$comparators.=.array();....
7bf40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
7bf60 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 \Iterator.$iterator,.array.$comp
7bf80 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 arators).{.$this->comparators.=.
7bfa0 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 $comparators;..parent::__constru
7bfc0 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ct($iterator);.}.......public.fu
7bfe0 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 nction.accept().{.$fileinfo.=.$t
7c000 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d his->current();..if.(!$fileinfo-
7c020 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 >isFile()).{.return.true;.}..$fi
7c040 6c 65 64 61 74 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b 0a ledate.=.$fileinfo->getMTime();.
7c060 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 foreach.($this->comparators.as.$
7c080 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 compare).{.if.(!$compare->test($
7c0a0 66 69 6c 65 64 61 74 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a filedate)).{.return.false;.}.}..
7c0c0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a return.true;.}.}.<?php..........
7c0e0 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e .namespace.Symfony\Component\Fin
7c100 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 54 79 der\Iterator;.......class.FileTy
7c120 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 peFilterIterator.extends.\Filter
7c140 49 74 65 72 61 74 6f 72 0a 7b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 20 31 3b Iterator.{.const.ONLY_FILES.=.1;
7c160 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 20 32 3b 0a 0a 70 72 .const.ONLY_DIRECTORIES.=.2;..pr
7c180 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ivate.$mode;........public.funct
7c1a0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 ion.__construct(\Iterator.$itera
7c1c0 74 6f 72 2c 20 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 tor,.$mode).{.$this->mode.=.$mod
7c1e0 65 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f e;..parent::__construct($iterato
7c200 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 r);.}.......public.function.acce
7c220 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e pt().{.$fileinfo.=.$this->curren
7c240 74 28 29 3b 0a 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 t();.if.(self::ONLY_DIRECTORIES.
7c260 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 26 20 24 74 ===.(self::ONLY_DIRECTORIES.&.$t
7c280 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 his->mode).&&.$fileinfo->isFile(
7c2a0 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c )).{.return.false;.}.elseif.(sel
7c2c0 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 f::ONLY_FILES.===.(self::ONLY_FI
7c2e0 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d LES.&.$this->mode).&&.$fileinfo-
7c300 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 >isDir()).{.return.false;.}..ret
7c320 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 urn.true;.}.}.<?php...........na
7c340 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 mespace.Symfony\Component\Finder
7c360 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e \Iterator;..use.Symfony\Componen
7c380 74 5c 46 69 6e 64 65 72 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 t\Finder\SplFileInfo;.......clas
7c3a0 73 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 20 65 78 74 s.RecursiveDirectoryIterator.ext
7c3c0 65 6e 64 73 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 ends.\RecursiveDirectoryIterator
7c3e0 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 .{.public.function.__construct($
7c400 70 61 74 68 2c 20 24 66 6c 61 67 73 29 0a 7b 0a 69 66 20 28 24 66 6c 61 67 73 20 26 20 28 73 65 path,.$flags).{.if.($flags.&.(se
7c420 6c 66 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 50 41 54 48 4e 41 4d 45 20 7c 20 73 65 6c 66 3a 3a lf::CURRENT_AS_PATHNAME.|.self::
7c440 43 55 52 52 45 4e 54 5f 41 53 5f 53 45 4c 46 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 CURRENT_AS_SELF)).{.throw.new.\R
7c460 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 69 74 65 72 61 74 6f 72 20 6f untimeException('This.iterator.o
7c480 6e 6c 79 20 73 75 70 70 6f 72 74 20 72 65 74 75 72 6e 69 6e 67 20 63 75 72 72 65 6e 74 20 61 73 nly.support.returning.current.as
7c4a0 20 66 69 6c 65 69 6e 66 6f 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 .fileinfo.');.}..parent::__const
7c4c0 72 75 63 74 28 24 70 61 74 68 2c 20 24 66 6c 61 67 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 ruct($path,.$flags);.}.......pub
7c4e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.current().{.return.
7c500 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 6f 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 new.SplFileInfo(parent::current(
7c520 29 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 )->getPathname(),.$this->getSubP
7c540 61 74 68 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 29 3b ath(),.$this->getSubPathname());
7c560 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 .}.}.<?php...........namespace.S
7c580 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 ymfony\Component\Finder\Comparat
7c5a0 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 20 65 or;.......class.DateComparator.e
7c5c0 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c xtends.Comparator.{.........publ
7c5e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 65 73 74 29 0a 7b ic.function.__construct($test).{
7c600 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c .if.(!preg_match('#^\s*(==|!=|[<
7c620 3e 5d 3d 3f 7c 61 66 74 65 72 7c 73 69 6e 63 65 7c 62 65 66 6f 72 65 7c 75 6e 74 69 6c 29 3f 5c >]=?|after|since|before|until)?\
7c640 73 2a 28 2e 2b 3f 29 5c 73 2a 24 23 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 73 29 s*(.+?)\s*$#i',.$test,.$matches)
7c660 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
7c680 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 73 74 61 ception(sprintf('Don\'t.understa
7c6a0 6e 64 20 22 25 73 22 20 61 73 20 61 20 64 61 74 65 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 nd."%s".as.a.date.test.',.$test)
7c6c0 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d );.}..try.{.$date.=.new.\DateTim
7c6e0 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 64 61 74 65 2d e($matches[2]);.$target.=.$date-
7c700 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f >format('U');.}.catch.(\Exceptio
7c720 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 n.$e).{.throw.new.\InvalidArgume
7c740 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 22 25 73 22 20 69 73 20 6e 6f 74 ntException(sprintf('"%s".is.not
7c760 20 61 20 76 61 6c 69 64 20 64 61 74 65 2e 27 2c 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 3b 0a .a.valid.date.',.$matches[2]));.
7c780 7d 0a 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d }..$operator.=.isset($matches[1]
7c7a0 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 3b 0a 69 66 20 28 27 73 69 6e ).?.$matches[1].:.'==';.if.('sin
7c7c0 63 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 61 66 74 65 72 27 20 3d 3d 3d ce'.===.$operator.||.'after'.===
7c7e0 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3e 27 3b 0a 7d .$operator).{.$operator.=.'>';.}
7c800 0a 0a 69 66 20 28 27 75 6e 74 69 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 ..if.('until'.===.$operator.||.'
7c820 62 65 66 6f 72 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 before'.===.$operator).{.$operat
7c840 6f 72 20 3d 20 27 3c 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 or.=.'<';.}..$this->setOperator(
7c860 24 6f 70 65 72 61 74 6f 72 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 $operator);.$this->setTarget($ta
7c880 72 67 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 rget);.}.}.<?php...........names
7c8a0 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f pace.Symfony\Component\Finder\Co
7c8c0 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mparator;.......................
7c8e0 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 .class.NumberComparator.extends.
7c900 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Comparator.{........public.funct
7c920 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 72 ion.__construct($test).{.if.(!pr
7c940 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 29 3f 5c 73 eg_match('#^\s*(==|!=|[<>]=?)?\s
7c960 2a 28 5b 30 2d 39 5c 2e 5d 2b 29 5c 73 2a 28 5b 6b 6d 67 5d 69 3f 29 3f 5c 73 2a 24 23 69 27 2c *([0-9\.]+)\s*([kmg]i?)?\s*$#i',
7c980 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c .$test,.$matches)).{.throw.new.\
7c9a0 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 InvalidArgumentException(sprintf
7c9c0 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 6e 75 ('Don\'t.understand."%s".as.a.nu
7c9e0 6d 62 65 72 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 mber.test.',.$test));.}..$target
7ca00 20 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 3b 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 .=.$matches[2];.if.(!is_numeric(
7ca20 24 74 61 72 67 65 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 $target)).{.throw.new.\InvalidAr
7ca40 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 gumentException(sprintf('Invalid
7ca60 20 6e 75 6d 62 65 72 20 22 25 73 22 2e 27 2c 20 24 74 61 72 67 65 74 29 29 3b 0a 7d 0a 69 66 20 .number."%s".',.$target));.}.if.
7ca80 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 0a 20 73 77 69 74 63 68 20 (isset($matches[3])).{...switch.
7caa0 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 63 61 73 65 (strtolower($matches[3])).{.case
7cac0 20 27 6b 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 .'k':.$target.*=.1000;.break;.ca
7cae0 73 65 20 27 6b 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b se.'ki':.$target.*=.1024;.break;
7cb00 0a 63 61 73 65 20 27 6d 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 3b 0a 62 .case.'m':.$target.*=.1000000;.b
7cb20 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 reak;.case.'mi':.$target.*=.1024
7cb40 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 27 3a 0a 24 74 61 72 67 65 74 20 *1024;.break;.case.'g':.$target.
7cb60 2a 3d 20 31 30 30 30 30 30 30 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 69 27 3a *=.1000000000;.break;.case.'gi':
7cb80 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 2a 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 .$target.*=.1024*1024*1024;.brea
7cba0 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 k;.}.}..$this->setTarget($target
7cbc0 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 69 73 73 65 74 28 24 6d 61 74 );.$this->setOperator(isset($mat
7cbe0 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 29 3b 0a ches[1]).?.$matches[1].:.'==');.
7cc00 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 }.}.<?php...........namespace.Sy
7cc20 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f mfony\Component\Finder\Comparato
7cc40 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 70 72 69 76 r;.......class.Comparator.{.priv
7cc60 61 74 65 20 24 74 61 72 67 65 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 20 3d ate.$target;.private.$operator.=
7cc80 20 27 3d 3d 27 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .'==';.......public.function.get
7cca0 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b Target().{.return.$this->target;
7ccc0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 .}.......public.function.setTarg
7cce0 65 74 28 24 74 61 72 67 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 24 74 et($target).{.$this->target.=.$t
7cd00 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 arget;.}.......public.function.g
7cd20 65 74 4f 70 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 etOperator().{.return.$this->ope
7cd40 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 rator;.}.......public.function.s
7cd60 65 74 4f 70 65 72 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 21 24 6f 70 etOperator($operator).{.if.(!$op
7cd80 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 erator).{.$operator.=.'==';.}..i
7cda0 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6f 70 65 72 61 74 6f 72 2c 20 61 72 72 61 79 28 27 3e f.(!in_array($operator,.array('>
7cdc0 27 2c 20 27 3c 27 2c 20 27 3e 3d 27 2c 20 27 3c 3d 27 2c 20 27 3d 3d 27 2c 20 27 21 3d 27 29 29 ',.'<',.'>=',.'<=',.'==',.'!='))
7cde0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
7ce00 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f ception(sprintf('Invalid.operato
7ce20 72 20 22 25 73 22 2e 27 2c 20 24 6f 70 65 72 61 74 6f 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d r."%s".',.$operator));.}..$this-
7ce40 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 >operator.=.$operator;.}.......p
7ce60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 28 24 74 65 73 74 29 0a 7b 0a 73 77 69 ublic.function.test($test).{.swi
7ce80 74 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 20 7b 0a 63 61 73 65 20 27 3e 27 tch.($this->operator).{.case.'>'
7cea0 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a :.return.$test.>.$this->target;.
7cec0 63 61 73 65 20 27 3e 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3e 3d 20 24 74 68 69 73 case.'>=':.return.$test.>=.$this
7cee0 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 ->target;.case.'<':.return.$test
7cf00 20 3c 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 72 65 74 .<.$this->target;.case.'<=':.ret
7cf20 75 72 6e 20 24 74 65 73 74 20 3c 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 urn.$test.<=.$this->target;.case
7cf40 20 27 21 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 21 3d 20 24 74 68 69 73 2d 3e 74 61 .'!=':.return.$test.!=.$this->ta
7cf60 72 67 65 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3d 3d 20 24 74 68 69 73 2d 3e rget;.}..return.$test.==.$this->
7cf80 74 61 72 67 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 target;.}.}.<?php...........name
7cfa0 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a space.Symfony\Component\Finder;.
7cfc0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 6c 46 69 6c 65 49 6e 66 6f 20 65 78 74 65 6e 64 73 20 ......class.SplFileInfo.extends.
7cfe0 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 69 76 65 \SplFileInfo.{.private.$relative
7d000 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b Path;.private.$relativePathname;
7d020 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 .........public.function.__const
7d040 72 75 63 74 28 24 66 69 6c 65 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 72 65 6c 61 ruct($file,.$relativePath,.$rela
7d060 74 69 76 65 50 61 74 68 6e 61 6d 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 tivePathname).{.parent::__constr
7d080 75 63 74 28 24 66 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 20 uct($file);.$this->relativePath.
7d0a0 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 =.$relativePath;.$this->relative
7d0c0 50 61 74 68 6e 61 6d 65 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a Pathname.=.$relativePathname;.}.
7d0e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 61 74 69 76 ......public.function.getRelativ
7d100 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 ePath().{.return.$this->relative
7d120 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Path;.}.......public.function.ge
7d140 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tRelativePathname().{.return.$th
7d160 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 is->relativePathname;.}.......pu
7d180 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 24 66 blic.function.getContents().{.$f
7d1a0 69 6c 65 20 3d 20 6e 65 77 20 5c 53 70 6c 46 69 6c 65 4f 62 6a 65 63 74 28 24 74 68 69 73 2d 3e ile.=.new.\SplFileObject($this->
7d1c0 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c 20 27 72 62 27 29 3b 0a 6f 62 5f 73 74 61 72 74 28 29 getRealpath(),.'rb');.ob_start()
7d1e0 3b 0a 24 66 69 6c 65 2d 3e 66 70 61 73 73 74 68 72 75 28 29 3b 0a 0a 72 65 74 75 72 6e 20 6f 62 ;.$file->fpassthru();..return.ob
7d200 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a _get_clean();.}.}.<?php.........
7d220 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 ..namespace.Seld\JsonLint;..clas
7d240 73 20 55 6e 64 65 66 69 6e 65 64 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s.Undefined.{.}.<?php...........
7d260 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 75 73 65 20 73 74 namespace.Seld\JsonLint;..use.st
7d280 64 43 6c 61 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e dClass;...............class.Json
7d2a0 50 61 72 73 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 61 63 6b 3b 0a 70 72 69 76 61 74 65 Parser.{.private.$stack;.private
7d2c0 20 24 76 73 74 61 63 6b 3b 20 0a 20 70 72 69 76 61 74 65 20 24 6c 73 74 61 63 6b 3b 20 0a 0a 70 .$vstack;...private.$lstack;...p
7d2e0 72 69 76 61 74 65 20 24 79 79 3b 0a 70 72 69 76 61 74 65 20 24 73 79 6d 62 6f 6c 73 20 3d 20 61 rivate.$yy;.private.$symbols.=.a
7d300 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 32 2c 0a 27 4a 53 4f 4e 53 74 72 69 6e 67 27 rray(.'error'.=>.2,.'JSONString'
7d320 20 3d 3e 20 33 2c 0a 27 53 54 52 49 4e 47 27 20 3d 3e 20 34 2c 0a 27 4a 53 4f 4e 4e 75 6d 62 65 .=>.3,.'STRING'.=>.4,.'JSONNumbe
7d340 72 27 20 3d 3e 20 35 2c 0a 27 4e 55 4d 42 45 52 27 20 3d 3e 20 36 2c 0a 27 4a 53 4f 4e 4e 75 6c r'.=>.5,.'NUMBER'.=>.6,.'JSONNul
7d360 6c 4c 69 74 65 72 61 6c 27 20 3d 3e 20 37 2c 0a 27 4e 55 4c 4c 27 20 3d 3e 20 38 2c 0a 27 4a 53 lLiteral'.=>.7,.'NULL'.=>.8,.'JS
7d380 4f 4e 42 6f 6f 6c 65 61 6e 4c 69 74 65 72 61 6c 27 20 3d 3e 20 39 2c 0a 27 54 52 55 45 27 20 3d ONBooleanLiteral'.=>.9,.'TRUE'.=
7d3a0 3e 20 31 30 2c 0a 27 46 41 4c 53 45 27 20 3d 3e 20 31 31 2c 0a 27 4a 53 4f 4e 54 65 78 74 27 20 >.10,.'FALSE'.=>.11,.'JSONText'.
7d3c0 3d 3e 20 31 32 2c 0a 27 4a 53 4f 4e 56 61 6c 75 65 27 20 3d 3e 20 31 33 2c 0a 27 45 4f 46 27 20 =>.12,.'JSONValue'.=>.13,.'EOF'.
7d3e0 3d 3e 20 31 34 2c 0a 27 4a 53 4f 4e 4f 62 6a 65 63 74 27 20 3d 3e 20 31 35 2c 0a 27 4a 53 4f 4e =>.14,.'JSONObject'.=>.15,.'JSON
7d400 41 72 72 61 79 27 20 3d 3e 20 31 36 2c 0a 27 7b 27 20 3d 3e 20 31 37 2c 0a 27 7d 27 20 3d 3e 20 Array'.=>.16,.'{'.=>.17,.'}'.=>.
7d420 31 38 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 72 4c 69 73 74 27 20 3d 3e 20 31 39 2c 0a 27 4a 53 4f 18,.'JSONMemberList'.=>.19,.'JSO
7d440 4e 4d 65 6d 62 65 72 27 20 3d 3e 20 32 30 2c 0a 27 3a 27 20 3d 3e 20 32 31 2c 0a 27 2c 27 20 3d NMember'.=>.20,.':'.=>.21,.','.=
7d460 3e 20 32 32 2c 0a 27 5b 27 20 3d 3e 20 32 33 2c 0a 27 5d 27 20 3d 3e 20 32 34 2c 0a 27 4a 53 4f >.22,.'['.=>.23,.']'.=>.24,.'JSO
7d480 4e 45 6c 65 6d 65 6e 74 4c 69 73 74 27 20 3d 3e 20 32 35 2c 0a 27 24 61 63 63 65 70 74 27 20 3d NElementList'.=>.25,.'$accept'.=
7d4a0 3e 20 30 2c 0a 27 24 65 6e 64 27 20 3d 3e 20 31 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 >.0,.'$end'.=>.1,.);..private.$t
7d4c0 65 72 6d 69 6e 61 6c 73 5f 20 3d 20 61 72 72 61 79 28 0a 32 20 3d 3e 20 22 65 72 72 6f 72 22 2c erminals_.=.array(.2.=>."error",
7d4e0 0a 34 20 3d 3e 20 22 53 54 52 49 4e 47 22 2c 0a 36 20 3d 3e 20 22 4e 55 4d 42 45 52 22 2c 0a 38 .4.=>."STRING",.6.=>."NUMBER",.8
7d500 20 3d 3e 20 22 4e 55 4c 4c 22 2c 0a 31 30 20 3d 3e 20 22 54 52 55 45 22 2c 0a 31 31 20 3d 3e 20 .=>."NULL",.10.=>."TRUE",.11.=>.
7d520 22 46 41 4c 53 45 22 2c 0a 31 34 20 3d 3e 20 22 45 4f 46 22 2c 0a 31 37 20 3d 3e 20 22 7b 22 2c "FALSE",.14.=>."EOF",.17.=>."{",
7d540 0a 31 38 20 3d 3e 20 22 7d 22 2c 0a 32 31 20 3d 3e 20 22 3a 22 2c 0a 32 32 20 3d 3e 20 22 2c 22 .18.=>."}",.21.=>.":",.22.=>.","
7d560 2c 0a 32 33 20 3d 3e 20 22 5b 22 2c 0a 32 34 20 3d 3e 20 22 5d 22 2c 0a 29 3b 0a 0a 70 72 69 76 ,.23.=>."[",.24.=>."]",.);..priv
7d580 61 74 65 20 24 70 72 6f 64 75 63 74 69 6f 6e 73 5f 20 3d 20 61 72 72 61 79 28 0a 30 2c 0a 61 72 ate.$productions_.=.array(.0,.ar
7d5a0 72 61 79 28 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 35 2c 20 31 29 2c 0a 61 72 72 61 79 28 37 2c ray(3,.1),.array(5,.1),.array(7,
7d5c0 20 31 29 2c 0a 61 72 72 61 79 28 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 39 2c 20 31 29 2c 0a 61 .1),.array(9,.1),.array(9,.1),.a
7d5e0 72 72 61 79 28 31 32 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 rray(12,.2),.array(13,.1),.array
7d600 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c (13,.1),.array(13,.1),.array(13,
7d620 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c .1),.array(13,.1),.array(13,.1),
7d640 0a 61 72 72 61 79 28 31 35 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 35 2c 20 33 29 2c 0a 61 72 72 .array(15,.2),.array(15,.3),.arr
7d660 61 79 28 32 30 2c 20 33 29 2c 0a 61 72 72 61 79 28 31 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 ay(20,.3),.array(19,.1),.array(1
7d680 39 2c 20 33 29 2c 0a 61 72 72 61 79 28 31 36 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 36 2c 20 33 9,.3),.array(16,.2),.array(16,.3
7d6a0 29 2c 0a 61 72 72 61 79 28 32 35 2c 20 31 29 2c 0a 61 72 72 61 79 28 32 35 2c 20 33 29 0a 29 3b ),.array(25,.1),.array(25,.3).);
7d6c0 0a 0a 70 72 69 76 61 74 65 20 24 74 61 62 6c 65 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 33 ..private.$table.=.array(array(3
7d6e0 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c .=>.5,.4.=>.array(1,12),.5.=>.6,
7d700 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 .6.=>.array(1,13),.7.=>.3,.8.=>.
7d720 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 array(1,9),.9.=>.4,.10.=>.array(
7d740 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 32 20 3d 3e 20 1,10),.11.=>.array(1,11),.12.=>.
7d760 31 2c 20 31 33 20 3d 3e 20 32 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 1,.13.=>.2,.15.=>.7,.16.=>.8,.17
7d780 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 .=>.array(1,14),.23.=>.array(1,1
7d7a0 35 29 29 2c 20 61 72 72 61 79 28 20 31 20 3d 3e 20 61 72 72 61 79 28 33 29 29 2c 20 61 72 72 61 5)),.array(.1.=>.array(3)),.arra
7d7c0 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 y(.14.=>.array(1,16)),.array(.14
7d7e0 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 .=>.array(2,7),.18.=>.array(2,7)
7d800 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 ,.22.=>.array(2,7),.24.=>.array(
7d820 32 2c 37 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 2,7)),.array(.14.=>.array(2,8),.
7d840 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 18.=>.array(2,8),.22.=>.array(2,
7d860 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 29 2c 20 61 72 72 61 79 28 20 31 34 8),.24.=>.array(2,8)),.array(.14
7d880 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 .=>.array(2,9),.18.=>.array(2,9)
7d8a0 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 ,.22.=>.array(2,9),.24.=>.array(
7d8c0 32 2c 39 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 2,9)),.array(.14.=>.array(2,10),
7d8e0 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 .18.=>.array(2,10),.22.=>.array(
7d900 32 2c 31 30 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 29 2c 20 61 72 72 61 79 2,10),.24.=>.array(2,10)),.array
7d920 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 (.14.=>.array(2,11),.18.=>.array
7d940 28 32 2c 31 31 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 2c 20 32 34 20 3d 3e (2,11),.22.=>.array(2,11),.24.=>
7d960 20 61 72 72 61 79 28 32 2c 31 31 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 .array(2,11)),.array(.14.=>.arra
7d980 79 28 32 2c 31 32 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 32 32 20 3d y(2,12),.18.=>.array(2,12),.22.=
7d9a0 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 >.array(2,12),.24.=>.array(2,12)
7d9c0 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 31 38 20 3d ),.array(.14.=>.array(2,3),.18.=
7d9e0 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 >.array(2,3),.22.=>.array(2,3),.
7da00 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 24.=>.array(2,3)),.array(.14.=>.
7da20 61 72 72 61 79 28 32 2c 34 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 32 32 array(2,4),.18.=>.array(2,4),.22
7da40 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 .=>.array(2,4),.24.=>.array(2,4)
7da60 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 31 38 20 3d ),.array(.14.=>.array(2,5),.18.=
7da80 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 >.array(2,5),.22.=>.array(2,5),.
7daa0 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 24.=>.array(2,5)),.array(.14.=>.
7dac0 61 72 72 61 79 28 32 2c 31 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 31 array(2,1),.18.=>.array(2,1),.21
7dae0 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 .=>.array(2,1),.22.=>.array(2,1)
7db00 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d ,.24.=>.array(2,1)),.array(.14.=
7db20 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 >.array(2,2),.18.=>.array(2,2),.
7db40 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 22.=>.array(2,2),.24.=>.array(2,
7db60 32 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 32 30 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 2)),.array(.3.=>.20,.4.=>.array(
7db80 31 2c 31 32 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 37 29 2c 20 31 39 20 3d 3e 20 1,12),.18.=>.array(1,17),.19.=>.
7dba0 31 38 2c 20 32 30 20 3d 3e 20 31 39 20 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 18,.20.=>.19.),.array(.3.=>.5,.4
7dbc0 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 .=>.array(1,12),.5.=>.6,.6.=>.ar
7dbe0 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c ray(1,13),.7.=>.3,.8.=>.array(1,
7dc00 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 9),.9.=>.4,.10.=>.array(1,10),.1
7dc20 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 32 33 2c 20 31 35 20 3d 1.=>.array(1,11),.13.=>.23,.15.=
7dc40 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c >.7,.16.=>.8,.17.=>.array(1,14),
7dc60 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 .23.=>.array(1,15),.24.=>.array(
7dc80 31 2c 32 31 29 2c 20 32 35 20 3d 3e 20 32 32 20 29 2c 20 61 72 72 61 79 28 20 31 20 3d 3e 20 61 1,21),.25.=>.22.),.array(.1.=>.a
7dca0 72 72 61 79 28 32 2c 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 rray(2,6)),.array(.14.=>.array(2
7dcc0 2c 31 33 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 32 32 20 3d 3e 20 61 ,13),.18.=>.array(2,13),.22.=>.a
7dce0 72 72 61 79 28 32 2c 31 33 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 29 2c 20 rray(2,13),.24.=>.array(2,13)),.
7dd00 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 34 29 2c 20 32 32 20 3d 3e 20 array(.18.=>.array(1,24),.22.=>.
7dd20 61 72 72 61 79 28 31 2c 32 35 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 array(1,25)),.array(.18.=>.array
7dd40 28 32 2c 31 36 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 36 29 29 2c 20 61 72 72 61 (2,16),.22.=>.array(2,16)),.arra
7dd60 79 28 20 32 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 y(.21.=>.array(1,26)),.array(.14
7dd80 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 .=>.array(2,18),.18.=>.array(2,1
7dda0 38 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 8),.22.=>.array(2,18),.24.=>.arr
7ddc0 61 79 28 32 2c 31 38 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c ay(2,18)),.array(.22.=>.array(1,
7dde0 32 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 37 29 29 2c 20 61 72 72 61 79 28 20 28),.24.=>.array(1,27)),.array(.
7de00 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 30 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 22.=>.array(2,20),.24.=>.array(2
7de20 2c 32 30 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c ,20)),.array(.14.=>.array(2,14),
7de40 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 .18.=>.array(2,14),.22.=>.array(
7de60 32 2c 31 34 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 29 2c 20 61 72 72 61 79 2,14),.24.=>.array(2,14)),.array
7de80 28 20 33 20 3d 3e 20 32 30 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 32 30 20 (.3.=>.20,.4.=>.array(1,12),.20.
7dea0 3d 3e 20 32 39 20 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 =>.29.),.array(.3.=>.5,.4.=>.arr
7dec0 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 ay(1,12),.5.=>.6,.6.=>.array(1,1
7dee0 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3),.7.=>.3,.8.=>.array(1,9),.9.=
7df00 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 >.4,.10.=>.array(1,10),.11.=>.ar
7df20 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 33 30 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 ray(1,11),.13.=>.30,.15.=>.7,.16
7df40 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 .=>.8,.17.=>.array(1,14),.23.=>.
7df60 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 array(1,15)),.array(.14.=>.array
7df80 28 32 2c 31 39 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 32 32 20 3d 3e (2,19),.18.=>.array(2,19),.22.=>
7dfa0 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 29 .array(2,19),.24.=>.array(2,19))
7dfc0 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 ,.array(.3.=>.5,.4.=>.array(1,12
7dfe0 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d ),.5.=>.6,.6.=>.array(1,13),.7.=
7e000 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 >.3,.8.=>.array(1,9),.9.=>.4,.10
7e020 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 .=>.array(1,10),.11.=>.array(1,1
7e040 31 29 2c 20 31 33 20 3d 3e 20 33 31 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 1),.13.=>.31,.15.=>.7,.16.=>.8,.
7e060 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 17.=>.array(1,14),.23.=>.array(1
7e080 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 37 29 2c ,15)),.array(.18.=>.array(2,17),
7e0a0 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 37 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d .22.=>.array(2,17)),.array(.18.=
7e0c0 3e 20 61 72 72 61 79 28 32 2c 31 35 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 >.array(2,15),.22.=>.array(2,15)
7e0e0 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 31 29 2c 20 32 34 20 ),.array(.22.=>.array(2,21),.24.
7e100 3d 3e 20 61 72 72 61 79 28 32 2c 32 31 29 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 =>.array(2,21)),.);..private.$de
7e120 66 61 75 6c 74 41 63 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 31 36 20 3d 3e 20 61 72 72 61 faultActions.=.array(.16.=>.arra
7e140 79 28 32 2c 20 36 29 0a 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 y(2,.6).);......public.function.
7e160 6c 69 6e 74 28 24 69 6e 70 75 74 29 0a 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 lint($input).{.try.{.$this->pars
7e180 65 28 24 69 6e 70 75 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 69 6e 67 45 78 63 65 70 e($input);.}.catch.(ParsingExcep
7e1a0 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a tion.$e).{.return.$e;.}.}.......
7e1c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 69 6e 70 75 74 29 0a 7b 0a public.function.parse($input).{.
7e1e0 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 30 29 3b 0a 24 74 68 69 73 2d 3e $this->stack.=.array(0);.$this->
7e200 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 6e 75 6c 6c 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 vstack.=.array(null);.$this->lst
7e220 61 63 6b 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 79 ack.=.array();..$yytext.=.'';.$y
7e240 79 6c 69 6e 65 6e 6f 20 3d 20 30 3b 0a 24 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 72 65 63 6f 76 ylineno.=.0;.$yyleng.=.0;.$recov
7e260 65 72 69 6e 67 20 3d 20 30 3b 0a 24 54 45 52 52 4f 52 20 3d 20 32 3b 0a 24 45 4f 46 20 3d 20 31 ering.=.0;.$TERROR.=.2;.$EOF.=.1
7e280 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 78 65 72 20 3d 20 6e 65 77 20 4c 65 78 65 72 28 29 3b 0a 24 ;..$this->lexer.=.new.Lexer();.$
7e2a0 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 0a this->lexer->setInput($input);..
7e2c0 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 $yyloc.=.$this->lexer->yylloc;.$
7e2e0 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 79 79 6c 6f 63 3b 0a 0a 24 73 79 6d 62 6f this->lstack[].=.$yyloc;..$symbo
7e300 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c l.=.null;.$preErrorSymbol.=.null
7e320 3b 0a 24 73 74 61 74 65 20 3d 20 6e 75 6c 6c 3b 0a 24 61 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b ;.$state.=.null;.$action.=.null;
7e340 0a 24 61 20 3d 20 6e 75 6c 6c 3b 0a 24 72 20 3d 20 6e 75 6c 6c 3b 0a 24 79 79 76 61 6c 20 3d 20 .$a.=.null;.$r.=.null;.$yyval.=.
7e360 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 24 70 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 65 6e 20 3d 20 new.stdClass;.$p.=.null;.$len.=.
7e380 6e 75 6c 6c 3b 0a 24 6e 65 77 53 74 61 74 65 20 3d 20 6e 75 6c 6c 3b 0a 24 65 78 70 65 63 74 65 null;.$newState.=.null;.$expecte
7e3a0 64 20 3d 20 6e 75 6c 6c 3b 0a 24 65 72 72 53 74 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 d.=.null;.$errStr.=.null;..while
7e3c0 20 28 74 72 75 65 29 20 7b 0a 0a 20 24 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 .(true).{...$state.=.$this->stac
7e3e0 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 0a 0a 20 69 66 20 k[count($this->stack)-1];....if.
7e400 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 (isset($this->defaultActions[$st
7e420 61 74 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c ate])).{.$action.=.$this->defaul
7e440 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 65 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 tActions[$state];.}.else.{.if.($
7e460 73 79 6d 62 6f 6c 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 symbol.==.null).{.$symbol.=.$thi
7e480 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 20 24 61 63 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 s->lex();.}...$action.=.isset($t
7e4a0 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 29 20 3f 20 24 his->table[$state][$symbol]).?.$
7e4c0 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 66 this->table[$state][$symbol].:.f
7e4e0 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 61 63 74 69 6f 6e 20 7c 7c 20 21 24 61 63 74 alse;.}....if.(!$action.||.!$act
7e500 69 6f 6e 5b 30 5d 29 20 7b 0a 69 66 20 28 21 24 72 65 63 6f 76 65 72 69 6e 67 29 20 7b 0a 0a 20 ion[0]).{.if.(!$recovering).{...
7e520 24 65 78 70 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 $expected.=.array();.foreach.($t
7e540 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 20 61 73 20 24 70 20 3d 3e 20 24 69 67 6e his->table[$state].as.$p.=>.$ign
7e560 6f 72 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c ore).{.if.(isset($this->terminal
7e580 73 5f 5b 24 70 5d 29 20 26 26 20 24 70 20 3e 20 32 29 20 7b 0a 24 65 78 70 65 63 74 65 64 5b 5d s_[$p]).&&.$p.>.2).{.$expected[]
7e5a0 20 3d 20 22 27 22 20 2e 20 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 20 2e .=."'"...$this->terminals_[$p]..
7e5c0 20 22 27 22 3b 0a 7d 0a 7d 0a 0a 24 65 72 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f ."'";.}.}..$errStr.=.'Parse.erro
7e5e0 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a r.on.line.'...($yylineno+1)...":
7e600 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e \n"...$this->lexer->showPosition
7e620 28 29 20 2e 20 22 5c 6e 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 3a 20 22 20 2e 20 69 6d 70 ()..."\nExpected.one.of:."...imp
7e640 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 65 63 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 70 61 lode(',.',.$expected);.$this->pa
7e660 72 73 65 45 72 72 6f 72 28 24 65 72 72 53 74 72 2c 20 61 72 72 61 79 28 0a 27 74 65 78 74 27 20 rseError($errStr,.array(.'text'.
7e680 3d 3e 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 0a 27 74 6f 6b 65 6e 27 20 =>.$this->lexer->match,.'token'.
7e6a0 3d 3e 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d =>.!empty($this->terminals_[$sym
7e6c0 62 6f 6c 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 6f bol]).?.$this->terminals_[$symbo
7e6e0 6c 5d 20 3a 20 24 73 79 6d 62 6f 6c 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c l].:.$symbol,.'line'.=>.$this->l
7e700 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 27 6c 6f 63 27 20 3d 3e 20 24 79 79 6c 6f 63 2c exer->yylineno,.'loc'.=>.$yyloc,
7e720 0a 27 65 78 70 65 63 74 65 64 27 20 3d 3e 20 24 65 78 70 65 63 74 65 64 2c 0a 29 29 3b 0a 7d 0a .'expected'.=>.$expected,.));.}.
7e740 0a 0a 20 69 66 20 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 3d 20 33 29 20 7b 0a 69 66 20 28 24 ...if.($recovering.==.3).{.if.($
7e760 73 79 6d 62 6f 6c 20 3d 3d 20 24 45 4f 46 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 symbol.==.$EOF).{.throw.new.Pars
7e780 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 20 3f 3a 20 27 50 61 72 73 69 6e 67 ingException($errStr.?:.'Parsing
7e7a0 20 68 61 6c 74 65 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 24 79 79 6c 65 6e 67 20 3d 20 24 74 68 69 73 .halted.');.}....$yyleng.=.$this
7e7c0 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 65 6e 67 3b 0a 24 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 ->lexer->yyleng;.$yytext.=.$this
7e7e0 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 ->lexer->yytext;.$yylineno.=.$th
7e800 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 3b 0a 24 79 79 6c 6f 63 20 3d 20 24 74 is->lexer->yylineno;.$yyloc.=.$t
7e820 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 his->lexer->yylloc;.$symbol.=.$t
7e840 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 0a 20 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a his->lex();.}....while.(true).{.
7e860 0a 20 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 54 45 52 52 4f 52 2c 20 ..if.(array_key_exists($TERROR,.
7e880 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 29 29 20 7b 0a 62 72 65 61 6b 3b 0a $this->table[$state])).{.break;.
7e8a0 7d 0a 69 66 20 28 24 73 74 61 74 65 20 3d 3d 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 }.if.($state.==.0).{.throw.new.P
7e8c0 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 20 3f 3a 20 27 50 61 72 73 arsingException($errStr.?:.'Pars
7e8e0 69 6e 67 20 68 61 6c 74 65 64 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 6b ing.halted.');.}.$this->popStack
7e900 28 31 29 3b 0a 24 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 (1);.$state.=.$this->stack[count
7e920 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 7d 0a 0a 24 70 72 65 45 72 72 6f 72 53 ($this->stack)-1];.}..$preErrorS
7e940 79 6d 62 6f 6c 20 3d 20 24 73 79 6d 62 6f 6c 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 24 54 45 ymbol.=.$symbol;...$symbol.=.$TE
7e960 52 52 4f 52 3b 20 0a 20 24 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f RROR;...$state.=.$this->stack[co
7e980 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 24 61 63 74 69 6f 6e 20 3d 20 unt($this->stack)-1];.$action.=.
7e9a0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 52 isset($this->table[$state][$TERR
7e9c0 4f 52 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 OR]).?.$this->table[$state][$TER
7e9e0 52 4f 52 5d 20 3a 20 66 61 6c 73 65 3b 0a 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 33 3b 20 0a ROR].:.false;.$recovering.=.3;..
7ea00 20 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 61 63 74 69 6f 6e 5b 30 5d 29 20 26 .}....if.(is_array($action[0]).&
7ea20 26 20 63 6f 75 6e 74 28 24 61 63 74 69 6f 6e 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 &.count($action).>.1).{.throw.ne
7ea40 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 50 61 72 73 65 20 45 72 72 6f 72 3a w.ParsingException('Parse.Error:
7ea60 20 6d 75 6c 74 69 70 6c 65 20 61 63 74 69 6f 6e 73 20 70 6f 73 73 69 62 6c 65 20 61 74 20 73 74 .multiple.actions.possible.at.st
7ea80 61 74 65 3a 20 27 20 2e 20 24 73 74 61 74 65 20 2e 20 27 2c 20 74 6f 6b 65 6e 3a 20 27 20 2e 20 ate:.'...$state...',.token:.'...
7eaa0 24 73 79 6d 62 6f 6c 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 61 63 74 69 6f 6e 5b 30 5d 29 $symbol);.}..switch.($action[0])
7eac0 20 7b 0a 63 61 73 65 20 31 3a 20 0a 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 73 .{.case.1:...$this->stack[].=.$s
7eae0 79 6d 62 6f 6c 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e ymbol;.$this->vstack[].=.$this->
7eb00 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d lexer->yytext;.$this->lstack[].=
7eb20 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 74 68 69 73 2d 3e 73 74 .$this->lexer->yylloc;.$this->st
7eb40 61 63 6b 5b 5d 20 3d 20 24 61 63 74 69 6f 6e 5b 31 5d 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 ack[].=.$action[1];...$symbol.=.
7eb60 6e 75 6c 6c 3b 0a 69 66 20 28 21 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 29 20 7b 20 0a 20 null;.if.(!$preErrorSymbol).{...
7eb80 24 79 79 6c 65 6e 67 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 65 6e 67 3b 0a $yyleng.=.$this->lexer->yyleng;.
7eba0 24 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a $yytext.=.$this->lexer->yytext;.
7ebc0 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 $yylineno.=.$this->lexer->yyline
7ebe0 6e 6f 3b 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f no;.$yyloc.=.$this->lexer->yyllo
7ec00 63 3b 0a 69 66 20 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3e 20 30 29 20 7b 0a 24 72 65 63 6f 76 c;.if.($recovering.>.0).{.$recov
7ec20 65 72 69 6e 67 2d 2d 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 ering--;.}.}.else.{...$symbol.=.
7ec40 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 3b 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c $preErrorSymbol;.$preErrorSymbol
7ec60 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 32 3a 20 0a 20 24 6c 65 .=.null;.}.break;..case.2:...$le
7ec80 6e 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e 73 5f 5b 24 61 63 74 69 6f 6e 5b n.=.$this->productions_[$action[
7eca0 31 5d 5d 5b 31 5d 3b 0a 0a 0a 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 1]][1];....$yyval->token.=.$this
7ecc0 2d 3e 76 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 29 20 2d 20 ->vstack[count($this->vstack).-.
7ece0 24 6c 65 6e 5d 3b 20 0a 20 0a 20 24 79 79 76 61 6c 2d 3e 73 74 6f 72 65 20 3d 20 61 72 72 61 79 $len];.....$yyval->store.=.array
7ed00 28 20 0a 20 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 (...'first_line'.=>.$this->lstac
7ed20 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 6e 20 3f k[count($this->lstack).-.($len.?
7ed40 3a 20 31 29 5d 5b 27 66 69 72 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c 69 6e 65 27 :.1)]['first_line'],.'last_line'
7ed60 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c .=>.$this->lstack[count($this->l
7ed80 73 74 61 63 6b 29 20 2d 20 31 5d 5b 27 6c 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 66 69 72 73 74 stack).-.1]['last_line'],.'first
7eda0 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 _column'.=>.$this->lstack[count(
7edc0 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 29 5d 5b 27 66 $this->lstack).-.($len.?:.1)]['f
7ede0 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 irst_column'],.'last_column'.=>.
7ee00 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 $this->lstack[count($this->lstac
7ee20 6b 29 20 2d 20 31 5d 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 29 3b 0a 24 72 20 3d 20 k).-.1]['last_column'],.);.$r.=.
7ee40 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 79 79 76 61 6c 2c 20 24 79 79 $this->performAction($yyval,.$yy
7ee60 74 65 78 74 2c 20 24 79 79 6c 65 6e 67 2c 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 61 63 74 69 6f text,.$yyleng,.$yylineno,.$actio
7ee80 6e 5b 31 5d 2c 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 2c 20 24 74 68 69 73 2d 3e 6c 73 74 61 n[1],.$this->vstack,.$this->lsta
7eea0 63 6b 29 3b 0a 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e ck);..if.(!$r.instanceof.Undefin
7eec0 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 6e 29 20 7b 0a ed).{.return.$r;.}..if.($len).{.
7eee0 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 6b 28 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d $this->popStack($len);.}..$this-
7ef00 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e 73 5f 5b 24 >stack[].=.$this->productions_[$
7ef20 61 63 74 69 6f 6e 5b 31 5d 5d 5b 30 5d 3b 20 0a 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 5d action[1]][0];...$this->vstack[]
7ef40 20 3d 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b .=.$yyval->token;.$this->lstack[
7ef60 5d 20 3d 20 24 79 79 76 61 6c 2d 3e 73 74 6f 72 65 3b 0a 24 6e 65 77 53 74 61 74 65 20 3d 20 24 ].=.$yyval->store;.$newState.=.$
7ef80 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 this->table[$this->stack[count($
7efa0 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 32 5d 5d 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f this->stack)-2]][$this->stack[co
7efc0 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 5d 3b 0a 24 74 68 69 73 2d 3e 73 74 unt($this->stack)-1]];.$this->st
7efe0 61 63 6b 5b 5d 20 3d 20 24 6e 65 77 53 74 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 ack[].=.$newState;.break;..case.
7f000 33 3a 20 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 72 65 74 75 72 6e 20 74 72 75 3:...return.true;.}.}.return.tru
7f020 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 45 72 e;.}..protected.function.parseEr
7f040 72 6f 72 28 24 73 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 ror($str,.$hash).{.throw.new.Par
7f060 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 2c 20 24 68 61 73 68 29 3b 0a 7d 0a 0a 0a singException($str,.$hash);.}...
7f080 20 0a 20 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 41 63 74 .....private.function.performAct
7f0a0 69 6f 6e 28 73 74 64 43 6c 61 73 73 20 24 79 79 76 61 6c 2c 20 24 79 79 74 65 78 74 2c 20 24 79 ion(stdClass.$yyval,.$yytext,.$y
7f0c0 79 6c 65 6e 67 2c 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 79 79 73 74 61 74 65 2c 20 26 24 74 6f yleng,.$yylineno,.$yystate,.&$to
7f0e0 6b 65 6e 73 29 20 7b 0a 0a 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 20 kens).{...$len.=.count($tokens).
7f100 2d 20 31 3b 0a 73 77 69 74 63 68 20 28 24 79 79 73 74 61 74 65 29 20 7b 0a 63 61 73 65 20 31 3a -.1;.switch.($yystate).{.case.1:
7f120 0a 24 79 79 74 65 78 74 20 3d 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 .$yytext.=preg_replace_callback(
7f140 27 7b 28 3f 3a 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 '{(?:\\\\["bfnrt/\\\\]|\\\\u[a-f
7f160 41 2d 46 30 2d 39 5d 7b 34 7d 29 7d 27 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 73 74 72 A-F0-9]{4})}',.array($this,.'str
7f180 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 27 29 2c 20 24 79 79 74 65 78 74 29 3b 0a 24 79 ingInterpolation'),.$yytext);.$y
7f1a0 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 79 79 74 65 78 74 3b 0a 62 72 65 61 6b 3b 0a 63 61 yval->token.=.$yytext;.break;.ca
7f1c0 73 65 20 32 3a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 65 27 29 20 21 se.2:.if.(strpos($yytext,.'e').!
7f1e0 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 45 27 29 ==.false.||.strpos($yytext,.'E')
7f200 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 6c .!==.false).{.$yyval->token.=.fl
7f220 6f 61 74 76 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c oatval($yytext);.}.else.{.$yyval
7f240 2d 3e 74 6f 6b 65 6e 20 3d 20 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 2e 27 29 20 3d ->token.=.strpos($yytext,.'.').=
7f260 3d 3d 20 66 61 6c 73 65 20 3f 20 69 6e 74 76 61 6c 28 24 79 79 74 65 78 74 29 20 3a 20 66 6c 6f ==.false.?.intval($yytext).:.flo
7f280 61 74 76 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 33 3a atval($yytext);.}.break;.case.3:
7f2a0 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 62 72 65 61 6b 3b 0a 63 61 .$yyval->token.=.null;.break;.ca
7f2c0 73 65 20 34 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 se.4:.$yyval->token.=.true;.brea
7f2e0 6b 3b 0a 63 61 73 65 20 35 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 61 6c 73 65 k;.case.5:.$yyval->token.=.false
7f300 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 36 3a 0a 72 65 74 75 72 6e 20 24 79 79 76 61 6c 2d 3e ;.break;.case.6:.return.$yyval->
7f320 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 63 61 73 65 20 31 33 token.=.$tokens[$len-1];.case.13
7f340 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a :.$yyval->token.=.new.stdClass;.
7f360 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 34 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 break;.case.14:.$yyval->token.=.
7f380 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 35 3a $tokens[$len-1];.break;.case.15:
7f3a0 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 73 5b 24 .$yyval->token.=.array($tokens[$
7f3c0 6c 65 6e 2d 32 5d 2c 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 3b 0a 62 72 65 61 6b 3b 0a 63 len-2],.$tokens[$len]);.break;.c
7f3e0 61 73 65 20 31 36 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 65 77 20 73 74 64 43 ase.16:.$yyval->token.=.new.stdC
7f400 6c 61 73 73 3b 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b lass;.$property.=.$tokens[$len][
7f420 30 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f 65 6d 70 74 79 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 0].===.''.?.'_empty_'.:.$tokens[
7f440 24 6c 65 6e 5d 5b 30 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 2d 3e 24 70 72 6f 70 65 72 $len][0];.$yyval->token->$proper
7f460 74 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 ty.=.$tokens[$len][1];.break;.ca
7f480 73 65 20 31 37 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 se.17:.$yyval->token.=.$tokens[$
7f4a0 6c 65 6e 2d 32 5d 3b 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 74 6f 6b 65 6e len-2];.$tokens[$len-2]->{$token
7f4c0 73 5b 24 6c 65 6e 5d 5b 30 5d 7d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a s[$len][0]}.=.$tokens[$len][1];.
7f4e0 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 38 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 break;.case.18:.$yyval->token.=.
7f500 61 72 72 61 79 28 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 39 3a 0a 24 79 79 76 61 6c 2d array();.break;.case.19:.$yyval-
7f520 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 6b 3b >token.=.$tokens[$len-1];.break;
7f540 0a 63 61 73 65 20 32 30 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 .case.20:.$yyval->token.=.array(
7f560 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 31 3a 0a $tokens[$len]);.break;.case.21:.
7f580 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e $tokens[$len-2][].=.$tokens[$len
7f5a0 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d ];.$yyval->token.=.$tokens[$len-
7f5c0 32 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 2];.break;.}..return.new.Undefin
7f5e0 65 64 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 ed();.}..private.function.string
7f600 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 28 24 6d 61 74 63 68 29 0a 7b 0a 73 77 69 74 63 68 20 28 Interpolation($match).{.switch.(
7f620 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 63 61 73 65 20 27 5c 5c 5c 5c 27 3a 0a 72 65 74 75 72 6e $match[0]).{.case.'\\\\':.return
7f640 20 27 5c 5c 27 3b 0a 63 61 73 65 20 27 5c 22 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 .'\\';.case.'\"':.return.'"';.ca
7f660 73 65 20 27 5c 62 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 38 29 3b 0a 63 61 73 65 20 27 5c 66 se.'\b':.return.chr(8);.case.'\f
7f680 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 31 32 29 3b 0a 63 61 73 65 20 27 5c 6e 27 3a 0a 72 65 ':.return.chr(12);.case.'\n':.re
7f6a0 74 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 65 20 27 5c 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 72 turn."\n";.case.'\r':.return."\r
7f6c0 22 3b 0a 63 61 73 65 20 27 5c 74 27 3a 0a 72 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 ";.case.'\t':.return."\t";.case.
7f6e0 27 5c 2f 27 3a 0a 72 65 74 75 72 6e 20 22 2f 22 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 '\/':.return."/";.default:.retur
7f700 6e 20 68 74 6d 6c 5f 65 6e 74 69 74 79 5f 64 65 63 6f 64 65 28 27 26 23 78 27 2e 6c 74 72 69 6d n.html_entity_decode('&#x'.ltrim
7f720 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 30 5d 2c 20 32 29 2c 20 27 30 27 29 2e 27 3b 27 2c (substr($match[0],.2),.'0').';',
7f740 20 30 2c 20 27 55 54 46 2d 38 27 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 .0,.'UTF-8');.}.}..private.funct
7f760 69 6f 6e 20 70 6f 70 53 74 61 63 6b 28 24 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 ion.popStack($n).{.$this->stack.
7f780 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 2c 20 30 2c 20 2d =.array_slice($this->stack,.0,.-
7f7a0 20 28 32 20 2a 20 24 6e 29 29 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 .(2.*.$n));.$this->vstack.=.arra
7f7c0 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b y_slice($this->vstack,.0,.-.$n);
7f7e0 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 .$this->lstack.=.array_slice($th
7f800 69 73 2d 3e 6c 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 is->lstack,.0,.-.$n);.}..private
7f820 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 0a 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 .function.lex().{.$token.=.$this
7f840 2d 3e 6c 65 78 65 72 2d 3e 6c 65 78 28 29 20 3f 3a 20 31 3b 20 0a 20 0a 20 69 66 20 28 21 69 73 ->lexer->lex().?:.1;.....if.(!is
7f860 5f 6e 75 6d 65 72 69 63 28 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 69 73 73 _numeric($token)).{.$token.=.iss
7f880 65 74 28 24 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 6f 6b 65 6e 5d 29 20 3f 20 24 74 68 et($this->symbols[$token]).?.$th
7f8a0 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 6f 6b 65 6e 5d 20 3a 20 24 74 6f 6b 65 6e 3b 0a 7d 0a is->symbols[$token].:.$token;.}.
7f8c0 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a return.$token;.}.}.<?php........
7f8e0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 0a 0a 0a ...namespace.Seld\JsonLint;.....
7f900 0a 0a 63 6c 61 73 73 20 4c 65 78 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 45 4f 46 20 3d 20 31 ..class.Lexer.{.private.$EOF.=.1
7f920 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 ;.private.$rules.=.array(.0.=>.'
7f940 2f 5e 5c 73 2b 2f 27 2c 0a 31 20 3d 3e 20 27 2f 5e 2d 3f 28 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b /^\s+/',.1.=>.'/^-?([0-9]|[1-9][
7f960 30 2d 39 5d 2b 29 28 5c 2e 5b 30 2d 39 5d 2b 29 3f 28 5b 65 45 5d 5b 2b 2d 5d 3f 5b 30 2d 39 5d 0-9]+)(\.[0-9]+)?([eE][+-]?[0-9]
7f980 2b 29 3f 5c 62 2f 27 2c 0a 32 20 3d 3e 20 27 7b 5e 22 28 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c +)?\b/',.2.=>.'{^"(\\\\["bfnrt/\
7f9a0 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 2d 39 5d 7b 34 7d 7c 5b 5e 5c 30 2d 5c 78 \\\]|\\\\u[a-fA-F0-9]{4}|[^\0-\x
7f9c0 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 5d 29 2a 22 7d 27 2c 0a 33 20 3d 3e 20 27 2f 5e 09\x0a-\x1f\\\\"])*"}',.3.=>.'/^
7f9e0 5c 7b 2f 27 2c 0a 34 20 3d 3e 20 27 2f 5e 5c 7d 2f 27 2c 0a 35 20 3d 3e 20 27 2f 5e 5c 5b 2f 27 \{/',.4.=>.'/^\}/',.5.=>.'/^\[/'
7fa00 2c 0a 36 20 3d 3e 20 27 2f 5e 5c 5d 2f 27 2c 0a 37 20 3d 3e 20 27 2f 5e 2c 2f 27 2c 0a 38 20 3d ,.6.=>.'/^\]/',.7.=>.'/^,/',.8.=
7fa20 3e 20 27 2f 5e 3a 2f 27 2c 0a 39 20 3d 3e 20 27 2f 5e 74 72 75 65 5c 62 2f 27 2c 0a 31 30 20 3d >.'/^:/',.9.=>.'/^true\b/',.10.=
7fa40 3e 20 27 2f 5e 66 61 6c 73 65 5c 62 2f 27 2c 0a 31 31 20 3d 3e 20 27 2f 5e 6e 75 6c 6c 5c 62 2f >.'/^false\b/',.11.=>.'/^null\b/
7fa60 27 2c 0a 31 32 20 3d 3e 20 27 2f 5e 24 2f 27 2c 0a 31 33 20 3d 3e 20 27 2f 5e 2e 2f 27 2c 0a 29 ',.12.=>.'/^$/',.13.=>.'/^./',.)
7fa80 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a ;..private.$conditions.=.array(.
7faa0 22 49 4e 49 54 49 41 4c 22 20 3d 3e 20 61 72 72 61 79 28 0a 22 72 75 6c 65 73 22 20 3d 3e 20 61 "INITIAL".=>.array(."rules".=>.a
7fac0 72 72 61 79 28 30 2c 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c 39 2c 31 30 2c 31 31 2c 31 rray(0,1,2,3,4,5,6,7,8,9,10,11,1
7fae0 32 2c 31 33 29 2c 0a 22 69 6e 63 6c 75 73 69 76 65 22 20 3d 3e 20 74 72 75 65 2c 0a 29 2c 0a 29 2,13),."inclusive".=>.true,.),.)
7fb00 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 0a 7b 0a 24 72 20 3d 20 ;..public.function.lex().{.$r.=.
7fb20 24 74 68 69 73 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 65 6f $this->next();.if.(!$r.instanceo
7fb40 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 72 65 74 75 f.Undefined).{.return.$r;.}.retu
7fb60 72 6e 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rn.$this->lex();.}..public.funct
7fb80 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 5f 69 ion.setInput($input).{.$this->_i
7fba0 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 5f 6d 6f 72 65 20 3d 20 24 74 nput.=.$input;.$this->_more.=.$t
7fbc0 68 69 73 2d 3e 5f 6c 65 73 73 20 3d 20 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 66 61 6c 73 65 his->_less.=.$this->done.=.false
7fbe0 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e ;.$this->yylineno.=.$this->yylen
7fc00 67 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 g.=.0;.$this->yytext.=.$this->ma
7fc20 74 63 68 65 64 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 24 74 68 69 73 tched.=.$this->match.=.'';.$this
7fc40 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 20 3d 20 61 72 72 61 79 28 27 49 4e 49 54 49 41 ->conditionStack.=.array('INITIA
7fc60 4c 27 29 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 27 66 69 72 73 L');.$this->yylloc.=.array('firs
7fc80 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 t_line'.=>.1,.'first_column'.=>.
7fca0 30 2c 20 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 27 6c 61 73 74 5f 63 6f 6c 75 6d 0,.'last_line'.=>.1,.'last_colum
7fcc0 6e 27 20 3d 3e 20 30 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c n'.=>.0);..return.$this;.}..publ
7fce0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 0a 7b 0a 24 70 72 ic.function.showPosition().{.$pr
7fd00 65 20 3d 20 24 74 68 69 73 2d 3e 70 61 73 74 49 6e 70 75 74 28 29 3b 0a 24 63 20 3d 20 73 74 72 e.=.$this->pastInput();.$c.=.str
7fd20 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e 28 24 70 72 65 29 29 3b 20 0a 20 72 65 _repeat('-',.strlen($pre));...re
7fd40 74 75 72 6e 20 24 70 72 65 20 2e 20 24 74 68 69 73 2d 3e 75 70 63 6f 6d 69 6e 67 49 6e 70 75 74 turn.$pre...$this->upcomingInput
7fd60 28 29 20 2e 20 22 5c 6e 22 20 2e 20 24 63 20 2e 20 22 5e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 ()..."\n"...$c..."^";.}..protect
7fd80 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 45 72 72 6f 72 28 24 73 74 72 2c 20 24 68 61 ed.function.parseError($str,.$ha
7fda0 73 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 29 sh).{.throw.new.\Exception($str)
7fdc0 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 70 75 74 28 29 0a 7b 0a ;.}..private.function.input().{.
7fde0 24 63 68 20 3d 20 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 79 $ch.=.$this->_input[0];.$this->y
7fe00 79 74 65 78 74 20 2b 3d 20 24 63 68 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2b 2b 3b 0a 24 ytext.+=.$ch;.$this->yyleng++;.$
7fe20 74 68 69 73 2d 3e 6d 61 74 63 68 20 2b 3d 20 24 63 68 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 this->match.+=.$ch;.$this->match
7fe40 65 64 20 2b 3d 20 24 63 68 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 63 68 2c 20 22 5c 6e 22 29 ed.+=.$ch;.if.(strpos($ch,."\n")
7fe60 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 2b 3b .!==.false).{.$this->yylineno++;
7fe80 0a 7d 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 29 3b 20 0a .}.array_shift($this->_input);..
7fea0 20 72 65 74 75 72 6e 20 24 63 68 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e .return.$ch;.}..private.function
7fec0 20 75 6e 70 75 74 28 24 63 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 20 24 63 .unput($ch).{.$this->_input.=.$c
7fee0 68 20 2e 20 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 3b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b h...$this->_input;.return.$this;
7ff00 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 72 65 28 29 0a 7b 0a 24 74 .}..private.function.more().{.$t
7ff20 68 69 73 2d 3e 5f 6d 6f 72 65 20 3d 20 74 72 75 65 3b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b his->_more.=.true;.return.$this;
7ff40 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 73 74 49 6e 70 75 74 28 29 .}..private.function.pastInput()
7ff60 0a 7b 0a 24 70 61 73 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 .{.$past.=.substr($this->matched
7ff80 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 29 20 2d 20 73 74 ,.0,.strlen($this->matched).-.st
7ffa0 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 29 29 3b 0a 72 65 74 75 72 6e 20 28 73 74 72 rlen($this->match));.return.(str
7ffc0 6c 65 6e 28 24 70 61 73 74 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 20 2e 20 len($past).>.20.?.'...'.:.'')...
7ffe0 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 70 61 str_replace("\n",.'',.substr($pa
80000 73 74 2c 20 2d 32 30 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 st,.-20));.}..private.function.u
80020 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 0a 7b 0a 24 6e 65 78 74 20 3d 20 24 74 68 69 73 2d 3e pcomingInput().{.$next.=.$this->
80040 6d 61 74 63 68 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3c 20 32 30 29 20 7b match;.if.(strlen($next).<.20).{
80060 0a 24 6e 65 78 74 20 2b 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 2c 20 .$next.+=.substr($this->_input,.
80080 30 2c 20 32 30 20 2d 20 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 29 3b 0a 7d 0a 72 65 74 75 72 6e 0,.20.-.strlen($next));.}.return
800a0 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 6e .str_replace("\n",.'',.substr($n
800c0 65 78 74 2c 20 30 2c 20 32 30 29 20 2e 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3e 20 32 ext,.0,.20)...(strlen($next).>.2
800e0 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 0.?.'...'.:.''));.}..private.fun
80100 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 6f 6e 65 29 20 ction.next().{.if.($this->done).
80120 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 {.return.$this->EOF;.}.if.(!$thi
80140 73 2d 3e 5f 69 6e 70 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 74 72 75 65 3b s->_input).{.$this->done.=.true;
80160 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 74 63 68 20 3d 20 6e 75 6c 6c .}..$token.=.null;.$match.=.null
80180 3b 0a 24 63 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 69 6e 65 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 ;.$col.=.null;.$lines.=.null;..i
801a0 66 20 28 21 24 74 68 69 73 2d 3e 5f 6d 6f 72 65 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 f.(!$this->_more).{.$this->yytex
801c0 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 7d 0a 0a 24 72 t.=.'';.$this->match.=.'';.}..$r
801e0 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 5f 63 75 72 72 65 6e 74 52 75 6c 65 73 28 29 3b 0a 24 ules.=.$this->_currentRules();.$
80200 72 75 6c 65 73 4c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 73 29 3b 0a 0a 66 6f 72 20 28 rulesLen.=.count($rules);..for.(
80220 24 69 3d 30 3b 20 24 69 20 3c 20 24 72 75 6c 65 73 4c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 $i=0;.$i.<.$rulesLen;.$i++).{.if
80240 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 72 75 6c 65 73 .(preg_match($this->rules[$rules
80260 5b 24 69 5d 5d 2c 20 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b [$i]],.$this->_input,.$match)).{
80280 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 5c 6e 2e 2a 2f 27 2c 20 24 6d 61 74 63 68 .preg_match_all('/\n.*/',.$match
802a0 5b 30 5d 2c 20 24 6c 69 6e 65 73 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 24 6c 69 6e 65 73 5b 30 5d [0],.$lines);.$lines.=.$lines[0]
802c0 3b 0a 69 66 20 28 24 6c 69 6e 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 20 ;.if.($lines).{.$this->yylineno.
802e0 2b 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 79 79 6c 6c +=.count($lines);.}..$this->yyll
80300 6f 63 20 3d 20 61 72 72 61 79 28 0a 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 oc.=.array(.'first_line'.=>.$thi
80320 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c 69 s->yylloc['last_line'],.'last_li
80340 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 2c 0a 27 66 69 72 73 74 ne'.=>.$this->yylineno+1,.'first
80360 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f _column'.=>.$this->yylloc['last_
80380 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 6c 69 6e 65 column'],.'last_column'.=>.$line
803a0 73 20 3f 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 73 5b 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 20 s.?.strlen($lines[count($lines).
803c0 2d 20 31 5d 29 20 2d 20 31 20 3a 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f -.1]).-.1.:.$this->yylloc['last_
803e0 63 6f 6c 75 6d 6e 27 5d 20 2b 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 2c 0a 29 3b column'].+.strlen($match[0]),.);
80400 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 68 .$this->yytext..=.$match[0];.$th
80420 69 73 2d 3e 6d 61 74 63 68 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 6d is->match..=.$match[0];.$this->m
80440 61 74 63 68 65 73 20 3d 20 24 6d 61 74 63 68 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d atches.=.$match;.$this->yyleng.=
80460 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 79 79 74 65 78 74 29 3b 0a 24 74 68 69 73 2d 3e 5f .strlen($this->yytext);.$this->_
80480 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 20 73 75 more.=.false;.$this->_input.=.su
804a0 62 73 74 72 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 bstr($this->_input,.strlen($matc
804c0 68 5b 30 5d 29 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 2e 3d 20 24 6d 61 74 63 68 h[0]));.$this->matched..=.$match
804e0 5b 30 5d 3b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 6d 41 63 74 69 [0];.$token.=.$this->performActi
80500 6f 6e 28 24 72 75 6c 65 73 5b 24 69 5d 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 on($rules[$i],.$this->conditionS
80520 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b tack[count($this->conditionStack
80540 29 2d 31 5d 29 3b 0a 69 66 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 6b )-1]);.if.($token).{.return.$tok
80560 65 6e 3b 0a 7d 0a 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d 0a en;.}.return.new.Undefined();.}.
80580 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 3d 3d 20 22 22 29 20 7b 0a 72 }..if.($this->_input.===."").{.r
805a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 eturn.$this->EOF;.}..$this->pars
805c0 65 45 72 72 6f 72 28 0a 27 4c 65 78 69 63 61 6c 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 eError(.'Lexical.error.on.line.'
805e0 20 2e 20 28 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 2e 20 55 6e 72 65 ...($this->yylineno+1)..."..Unre
80600 63 6f 67 6e 69 7a 65 64 20 74 65 78 74 2e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 73 68 6f 77 50 cognized.text.\n"...$this->showP
80620 6f 73 69 74 69 6f 6e 28 29 2c 0a 61 72 72 61 79 28 0a 27 74 65 78 74 27 20 3d 3e 20 22 22 2c 0a osition(),.array(.'text'.=>."",.
80640 27 74 6f 6b 65 6e 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 'token'.=>.null,.'line'.=>.$this
80660 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 29 0a 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ->yylineno,.).);.}..private.func
80680 74 69 6f 6e 20 62 65 67 69 6e 28 24 63 6f 6e 64 69 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e tion.begin($condition).{.$this->
806a0 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 5d 20 3d 20 24 63 6f 6e 64 69 74 69 6f 6e 3b 0a 7d conditionStack[].=.$condition;.}
806c0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 6f 70 53 74 61 74 65 28 29 0a 7b 0a ..private.function.popState().{.
806e0 72 65 74 75 72 6e 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f return.array_pop($this->conditio
80700 6e 53 74 61 63 6b 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 5f 63 75 nStack);.}..private.function._cu
80720 72 72 65 6e 74 52 75 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e rrentRules().{.return.$this->con
80740 64 69 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f ditions[$this->conditionStack[co
80760 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 5d 5b 27 unt($this->conditionStack)-1]]['
80780 72 75 6c 65 73 27 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 rules'];.}..private.function.per
807a0 66 6f 72 6d 41 63 74 69 6f 6e 28 24 61 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 73 formAction($avoiding_name_collis
807c0 69 6f 6e 73 2c 20 24 59 59 5f 53 54 41 52 54 29 0a 7b 0a 24 59 59 53 54 41 54 45 20 3d 20 24 59 ions,.$YY_START).{.$YYSTATE.=.$Y
807e0 59 5f 53 54 41 52 54 3b 0a 73 77 69 74 63 68 20 28 24 61 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f Y_START;.switch.($avoiding_name_
80800 63 6f 6c 6c 69 73 69 6f 6e 73 29 20 7b 0a 63 61 73 65 20 30 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 collisions).{.case.0:.break;.cas
80820 65 20 31 3a 0a 72 65 74 75 72 6e 20 36 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 3a 0a 24 74 e.1:.return.6;.break;.case.2:.$t
80840 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 79 79 74 65 his->yytext.=.substr($this->yyte
80860 78 74 2c 20 31 2c 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2d 32 29 3b 0a 72 65 74 75 72 6e 20 xt,.1,.$this->yyleng-2);.return.
80880 34 3b 0a 63 61 73 65 20 33 3a 0a 72 65 74 75 72 6e 20 31 37 3b 0a 63 61 73 65 20 34 3a 0a 72 65 4;.case.3:.return.17;.case.4:.re
808a0 74 75 72 6e 20 31 38 3b 0a 63 61 73 65 20 35 3a 0a 72 65 74 75 72 6e 20 32 33 3b 0a 63 61 73 65 turn.18;.case.5:.return.23;.case
808c0 20 36 3a 0a 72 65 74 75 72 6e 20 32 34 3b 0a 63 61 73 65 20 37 3a 0a 72 65 74 75 72 6e 20 32 32 .6:.return.24;.case.7:.return.22
808e0 3b 0a 63 61 73 65 20 38 3a 0a 72 65 74 75 72 6e 20 32 31 3b 0a 63 61 73 65 20 39 3a 0a 72 65 74 ;.case.8:.return.21;.case.9:.ret
80900 75 72 6e 20 31 30 3b 0a 63 61 73 65 20 31 30 3a 0a 72 65 74 75 72 6e 20 31 31 3b 0a 63 61 73 65 urn.10;.case.10:.return.11;.case
80920 20 31 31 3a 0a 72 65 74 75 72 6e 20 38 3b 0a 63 61 73 65 20 31 32 3a 0a 72 65 74 75 72 6e 20 31 .11:.return.8;.case.12:.return.1
80940 34 3b 0a 63 61 73 65 20 31 33 3a 0a 72 65 74 75 72 6e 20 27 49 4e 56 41 4c 49 44 27 3b 0a 7d 0a 4;.case.13:.return.'INVALID';.}.
80960 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 }.}.<?php...........namespace.Se
80980 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 50 61 72 73 69 6e 67 45 78 63 65 70 ld\JsonLint;..class.ParsingExcep
809a0 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 tion.extends.\Exception.{.protec
809c0 74 65 64 20 24 64 65 74 61 69 6c 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f ted.$details;..public.function._
809e0 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 64 65 74 61 69 6c 73 20 3d 20 _construct($message,.$details.=.
80a00 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 20 3d 20 24 64 65 74 array()).{.$this->details.=.$det
80a20 61 69 6c 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 ails;.parent::__construct($messa
80a40 67 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 74 61 69 ge);.}..public.function.getDetai
80a60 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 3b 0a 7d 0a ls().{.return.$this->details;.}.
80a80 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e }<?php..namespace.JsonSchema\Con
80aa0 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 64 65 66 69 6e 65 64 straints;........class.Undefined
80ac0 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 69 6f .extends.Constraint.{....functio
80ae0 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 n.check($value,.$schema.=.null,.
80b00 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 $path.=.null,.$i.=.null).{.if.(!
80b20 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a is_object($schema)).{.return;.}.
80b40 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 50 61 74 68 28 24 70 .$path.=.$this->incrementPath($p
80b60 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 43 6f 6d 6d ath,.$i);....$this->validateComm
80b80 6f 6e 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 onProperties($value,.$schema,.$p
80ba0 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 73 28 24 76 ath);....$this->validateTypes($v
80bc0 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 7d 0a 0a alue,.$schema,.$path,.$i);...}..
80be0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 ........public.function.validate
80c00 54 79 70 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 Types($value,.$schema.=.null,.$p
80c20 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 ath.=.null,.$i.=.null).{...if.(i
80c40 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 41 s_array($value)).{.$this->checkA
80c60 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 rray($value,.$schema,.$path,.$i)
80c80 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 20 ;.}....if.(is_object($value).&&.
80ca0 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 24 74 isset($schema->properties)).{.$t
80cc0 68 69 73 2d 3e 63 68 65 63 6b 4f 62 6a 65 63 74 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 his->checkObject($value,.$schema
80ce0 2d 3e 70 72 6f 70 65 72 74 69 65 73 2c 20 24 70 61 74 68 2c 20 69 73 73 65 74 28 24 73 63 68 65 ->properties,.$path,.isset($sche
80d00 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 ma->additionalProperties).?.$sch
80d20 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c ema->additionalProperties.:.null
80d40 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b );.}....if.(is_string($value)).{
80d60 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 53 74 72 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 73 63 68 .$this->checkString($value,.$sch
80d80 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6e 75 6d ema,.$path,.$i);.}....if.(is_num
80da0 65 72 69 63 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4e 75 6d 62 eric($value)).{.$this->checkNumb
80dc0 65 72 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a er($value,.$schema,.$path,.$i);.
80de0 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 29 29 20 7b }....if.(isset($schema->enum)).{
80e00 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 45 6e 75 6d 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d .$this->checkEnum($value,.$schem
80e20 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 a,.$path,.$i);.}.}..........prot
80e40 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f ected.function.validateCommonPro
80e60 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 perties($value,.$schema.=.null,.
80e80 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 $path.=.null,.$i.=.null).{...if.
80ea0 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 24 74 68 69 (isset($schema->extends)).{.$thi
80ec0 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d s->checkUndefined($value,.$schem
80ee0 61 2d 3e 65 78 74 65 6e 64 73 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 a->extends,.$path,.$i);.}....if.
80f00 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 20 24 76 61 6c 75 65 20 69 6e 73 (is_object($value).&&.$value.ins
80f20 74 61 6e 63 65 4f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 tanceOf.Undefined).{.if.(isset($
80f40 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 26 26 20 24 73 63 68 65 6d 61 2d 3e 72 65 schema->required).&&.$schema->re
80f60 71 75 69 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c quired).{.$this->addError($path,
80f80 20 22 69 73 20 6d 69 73 73 69 6e 67 20 61 6e 64 20 69 74 20 69 73 20 72 65 71 75 69 72 65 64 22 ."is.missing.and.it.is.required"
80fa0 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 79 70 65 28 24 );.}.}.else.{.$this->checkType($
80fc0 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 20 69 66 20 value,.$schema,.$path);.}....if.
80fe0 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f 77 29 29 20 7b 0a 24 69 6e (isset($schema->disallow)).{.$in
81000 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a itErrors.=.$this->getErrors();..
81020 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 $this->checkUndefined($value,.$s
81040 63 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f 77 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 chema->disallow,.$path);....if.(
81060 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 6f 75 count($this->getErrors()).==.cou
81080 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 nt($initErrors)).{.$this->addErr
810a0 6f 72 28 24 70 61 74 68 2c 20 22 20 64 69 73 61 6c 6c 6f 77 65 64 20 76 61 6c 75 65 20 77 61 73 or($path,.".disallowed.value.was
810c0 20 6d 61 74 63 68 65 64 22 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f .matched");.}.else.{.$this->erro
810e0 72 73 20 3d 20 24 69 6e 69 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a rs.=.$initErrors;.}.}.}.}<?php..
81100 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 namespace.JsonSchema\Constraints
81120 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 79 70 65 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 ;........class.Type.extends.Cons
81140 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 traint.{....function.check($valu
81160 65 20 3d 20 6e 75 6c 6c 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 e.=.null,.$schema.=.null,.$path.
81180 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 79 70 65 20 3d 20 69 73 73 =.null,.$i.=.null).{.$type.=.iss
811a0 65 74 28 24 73 63 68 65 6d 61 2d 3e 74 79 70 65 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 74 79 70 et($schema->type).?.$schema->typ
811c0 65 20 3a 20 6e 75 6c 6c 3b 0a 24 69 73 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 0a 69 66 20 28 e.:.null;.$isValid.=.true;..if.(
811e0 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 29 29 20 7b 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 4f is_array($type)).{...$validatedO
81200 6e 65 54 79 70 65 20 3d 20 66 61 6c 73 65 3b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 neType.=.false;.$errors.=.array(
81220 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 20 61 73 20 24 74 70 29 20 7b 0a 24 76 61 6c );.foreach.($type.as.$tp).{.$val
81240 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 54 79 70 65 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f idator.=.new.Type($this->checkMo
81260 64 65 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 de);.$subSchema.=.new.\stdClass(
81280 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 2d 3e 74 79 70 65 20 3d 20 24 74 70 3b 0a 24 76 61 6c 69 );.$subSchema->type.=.$tp;.$vali
812a0 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 75 62 53 63 68 65 6d 61 2c dator->check($value,.$subSchema,
812c0 20 24 70 61 74 68 2c 20 6e 75 6c 6c 29 3b 0a 24 65 72 72 6f 72 20 3d 20 24 76 61 6c 69 64 61 74 .$path,.null);.$error.=.$validat
812e0 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 65 72 or->getErrors();..if.(!count($er
81300 72 6f 72 29 29 20 7b 0a 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 74 72 75 65 ror)).{.$validatedOneType.=.true
81320 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 24 65 72 72 ;.break;.}.else.{.$errors.=.$err
81340 6f 72 3b 0a 7d 0a 7d 0a 69 66 20 28 21 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 29 20 or;.}.}.if.(!$validatedOneType).
81360 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 65 72 72 6f 72 {.return.$this->addErrors($error
81380 73 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 74 79 70 65 29 s);.}.}.elseif.(is_object($type)
813a0 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 ).{.$this->checkUndefined($value
813c0 2c 20 24 74 79 70 65 2c 20 24 70 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 73 56 61 6c ,.$type,.$path);.}.else.{.$isVal
813e0 69 64 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 28 24 76 61 6c 75 65 2c id.=.$this->validateType($value,
81400 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 73 56 61 6c 69 64 20 3d 3d 3d 20 66 61 6c .$type);.}..if.($isValid.===.fal
81420 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 67 65 74 se).{.$this->addError($path,.get
81440 74 79 70 65 28 24 76 61 6c 75 65 29 20 2e 20 22 20 76 61 6c 75 65 20 66 6f 75 6e 64 2c 20 62 75 type($value)...".value.found,.bu
81460 74 20 61 20 22 20 2e 20 24 74 79 70 65 20 2e 20 22 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b t.a."...$type...".is.required");
81480 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e .}.}..........protected.function
814a0 20 76 61 6c 69 64 61 74 65 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 29 0a 7b 0a 0a .validateType($value,.$type).{..
814c0 20 69 66 20 28 21 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 73 .if.(!$type).{.return.true;.}..s
814e0 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 20 27 69 6e 74 65 67 65 72 27 20 3a witch.($type).{.case.'integer'.:
81500 0a 72 65 74 75 72 6e 20 28 69 6e 74 65 67 65 72 29 24 76 61 6c 75 65 20 3d 3d 20 24 76 61 6c 75 .return.(integer)$value.==.$valu
81520 65 20 3f 20 74 72 75 65 20 3a 20 69 73 5f 69 6e 74 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 e.?.true.:.is_int($value);.case.
81540 27 6e 75 6d 62 65 72 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 'number'.:.return.is_numeric($va
81560 6c 75 65 29 3b 0a 63 61 73 65 20 27 62 6f 6f 6c 65 61 6e 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 lue);.case.'boolean'.:.return.is
81580 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 6f 62 6a 65 63 74 27 20 3a 0a 72 _bool($value);.case.'object'.:.r
815a0 65 74 75 72 6e 20 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 3b 0a 0a 20 63 61 73 65 20 eturn.is_object($value);...case.
815c0 27 61 72 72 61 79 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 'array'.:.return.is_array($value
815e0 29 3b 0a 63 61 73 65 20 27 73 74 72 69 6e 67 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 73 74 72 );.case.'string'.:.return.is_str
81600 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 6e 75 6c 6c 27 20 3a 0a 72 65 74 75 72 ing($value);.case.'null'.:.retur
81620 6e 20 69 73 5f 6e 75 6c 6c 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 61 6e 79 27 20 3a 0a n.is_null($value);.case.'any'.:.
81640 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 return.true;.default:.throw.new.
81660 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 28 69 73 5f 6f 62 \InvalidArgumentException((is_ob
81680 6a 65 63 74 28 24 76 61 6c 75 65 29 20 3f 20 27 6f 62 6a 65 63 74 27 20 3a 20 24 76 61 6c 75 65 ject($value).?.'object'.:.$value
816a0 29 20 2e 20 27 20 69 73 20 61 20 69 6e 76 61 6c 69 64 20 74 79 70 65 20 66 6f 72 20 27 20 2e 20 )...'.is.a.invalid.type.for.'...
816c0 24 74 79 70 65 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 $type);.}.}.}<?php..namespace.Js
816e0 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 onSchema\Constraints;........cla
81700 73 73 20 53 63 68 65 6d 61 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a ss.Schema.extends.Constraint.{..
81720 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 ..public.function.check($element
81740 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 ,.$schema.=.null,.$path.=.null,.
81760 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 73 63 68 65 6d 61 20 21 3d 3d 20 6e 75 6c $i.=.null).{.if.($schema.!==.nul
81780 6c 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 65 6c l).{...$this->checkUndefined($el
817a0 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 2c 20 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 69 ement,.$schema,.'',.'');.}.elsei
817c0 66 20 28 69 73 73 65 74 28 24 65 6c 65 6d 65 6e 74 2d 3e 7b 24 74 68 69 73 2d 3e 69 6e 6c 69 6e f.(isset($element->{$this->inlin
817e0 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 7d 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 eSchemaProperty})).{...$this->ch
81800 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 65 6c 65 6d 65 6e 74 2d eckUndefined($element,.$element-
81820 3e 7b 24 74 68 69 73 2d 3e 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 7d 2c 20 >{$this->inlineSchemaProperty},.
81840 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 '',.'');.}.else.{.throw.new.\Inv
81860 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 6e 6f 20 73 63 68 65 6d 61 alidArgumentException('no.schema
81880 20 66 6f 75 6e 64 20 74 6f 20 76 65 72 69 66 79 20 61 67 61 69 6e 73 74 27 29 3b 0a 7d 0a 7d 0a .found.to.verify.against');.}.}.
818a0 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e }<?php..namespace.JsonSchema\Con
818c0 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 20 65 78 straints;........class.Number.ex
818e0 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e tends.Constraint.{....public.fun
81900 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 ction.check($element,.$schema.=.
81920 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b null,.$path.=.null,.$i.=.null).{
81940 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 26 ...if.(isset($schema->minimum).&
81960 26 20 24 65 6c 65 6d 65 6e 74 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 7b &.$element.<.$schema->minimum).{
81980 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 .$this->addError($path,."must.ha
819a0 76 65 20 61 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d ve.a.minimum.value.of."...$schem
819c0 61 2d 3e 6d 69 6e 69 6d 75 6d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 a->minimum);.}....if.(isset($sch
819e0 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 3e 20 24 73 63 68 ema->maximum).&&.$element.>.$sch
81a00 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 ema->maximum).{.$this->addError(
81a20 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 $path,."must.have.a.maximum.valu
81a40 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 0a 0a 0a e.of."...$schema->maximum);.}...
81a60 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 .if.(isset($schema->divisibleBy)
81a80 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 25 20 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c .&&.$element.%.$schema->divisibl
81aa0 65 42 79 20 21 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 eBy.!=.0).{.$this->addError($pat
81ac0 68 2c 20 22 69 73 20 6e 6f 74 20 64 69 76 69 73 69 62 6c 65 20 62 79 20 22 20 2e 20 24 73 63 68 h,."is.not.divisible.by."...$sch
81ae0 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e ema->divisibleBy);.}.}.}<?php..n
81b00 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b amespace.JsonSchema\Constraints;
81b20 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 62 6a 65 63 74 20 65 78 74 65 6e 64 73 20 43 6f 6e ........class.Object.extends.Con
81b40 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 straint.{....function.check($ele
81b60 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 ment,.$definition.=.null,.$path.
81b80 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 3d 20 6e 75 6c 6c 29 0a =.null,.$additionalProp.=.null).
81ba0 7b 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 {...$this->validateDefinition($e
81bc0 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 lement,.$definition,.$path);....
81be0 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 45 6c 65 6d 65 6e 74 28 24 65 6c 65 6d 65 6e 74 2c $this->validateElement($element,
81c00 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 74 68 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c .$definition,.$path,.$additional
81c20 50 72 6f 70 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Prop);.}..........public.functio
81c40 6e 20 76 61 6c 69 64 61 74 65 45 6c 65 6d 65 6e 74 28 24 65 6c 65 6d 65 6e 74 2c 20 24 6f 62 6a n.validateElement($element,.$obj
81c60 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 ectDefinition.=.null,.$path.=.nu
81c80 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f ll,.$additionalProp.=.null).{.fo
81ca0 72 65 61 63 68 20 28 24 65 6c 65 6d 65 6e 74 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 reach.($element.as.$i.=>.$value)
81cc0 20 7b 0a 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 .{..$property.=.$this->getProper
81ce0 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 69 2c 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 ty($element,.$i,.new.Undefined()
81d00 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 );.$definition.=.$this->getPrope
81d20 72 74 79 28 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 2c 20 24 69 29 3b 0a 0a 0a 20 69 rty($objectDefinition,.$i);....i
81d40 66 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f f.($this->getProperty($definitio
81d60 6e 2c 20 27 72 65 71 75 69 72 65 64 27 29 20 26 26 20 21 24 70 72 6f 70 65 72 74 79 29 20 7b 0a n,.'required').&&.!$property).{.
81d80 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 74 68 65 20 70 72 6f 70 $this->addError($path,."the.prop
81da0 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d erty."...$i...".is.required");.}
81dc0 0a 0a 0a 20 69 66 20 28 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 3d 3d 3d 20 66 61 6c 73 ....if.($additionalProp.===.fals
81de0 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 e.&&.$this->inlineSchemaProperty
81e00 20 21 3d 3d 20 24 69 20 26 26 20 21 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 .!==.$i.&&.!$definition).{.$this
81e20 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 20 70 72 6f 70 65 72 74 79 20 ->addError($path,."The.property.
81e40 22 20 2e 20 24 69 20 2e 20 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 61 6e 64 20 74 68 "...$i...".is.not.defined.and.th
81e60 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 e.definition.does.not.allow.addi
81e80 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 69 65 73 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 tional.properties");.}....if.($a
81ea0 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 26 26 20 21 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b dditionalProp.&&.!$definition).{
81ec0 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 .$this->checkUndefined($value,.$
81ee0 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a additionalProp,.$path,.$i);.}...
81f00 20 24 72 65 71 75 69 72 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 .$require.=.$this->getProperty($
81f20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b 0a 69 66 20 28 24 72 65 definition,.'requires');.if.($re
81f40 71 75 69 72 65 20 26 26 20 21 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c quire.&&.!$this->getProperty($el
81f60 65 6d 65 6e 74 2c 20 24 72 65 71 75 69 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 ement,.$require)).{.$this->addEr
81f80 72 6f 72 28 24 70 61 74 68 2c 20 22 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 74 68 65 20 ror($path,."the.presence.of.the.
81fa0 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 72 65 71 75 69 72 65 73 20 74 68 61 property."...$i...".requires.tha
81fc0 74 20 22 20 2e 20 24 72 65 71 75 69 72 65 20 2e 20 22 20 61 6c 73 6f 20 62 65 20 70 72 65 73 65 t."...$require...".also.be.prese
81fe0 6e 74 22 29 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 nt");.}....$this->checkUndefined
82000 28 24 76 61 6c 75 65 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3f 20 3a 20 6e 65 77 20 5c 73 74 ($value,.$definition.?.:.new.\st
82020 64 43 6c 61 73 73 28 29 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a dClass(),.$path,.$i);.}.}.......
82040 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 44 65 66 69 6e 69 ..public.function.validateDefini
82060 74 69 6f 6e 28 24 65 6c 65 6d 65 6e 74 2c 20 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e tion($element,.$objectDefinition
82080 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 .=.null,.$path.=.null).{.foreach
820a0 20 28 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 61 73 20 24 69 20 3d 3e 20 24 76 61 .($objectDefinition.as.$i.=>.$va
820c0 6c 75 65 29 20 7b 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f lue).{.$property.=.$this->getPro
820e0 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 69 2c 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 perty($element,.$i,.new.Undefine
82100 64 28 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 d());.$definition.=.$this->getPr
82120 6f 70 65 72 74 79 28 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 2c 20 24 69 29 3b 0a 24 operty($objectDefinition,.$i);.$
82140 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 70 72 6f 70 65 72 74 79 2c 20 this->checkUndefined($property,.
82160 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a $definition,.$path,.$i);.}.}....
82180 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 70 ......protected.function.getProp
821a0 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 70 72 6f 70 65 72 74 79 2c 20 24 66 61 6c 6c 62 erty($element,.$property,.$fallb
821c0 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 65 6c 65 6d ack.=.null).{.if.(is_array($elem
821e0 65 6e 74 29 20 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 ent).).{.return.array_key_exists
82200 28 24 70 72 6f 70 65 72 74 79 2c 20 24 65 6c 65 6d 65 6e 74 29 20 3f 20 24 65 6c 65 6d 65 6e 74 ($property,.$element).?.$element
82220 5b 24 70 72 6f 70 65 72 74 79 5d 20 3a 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 7d 20 65 6c 73 65 20 [$property].:.$fallback;.}.else.
82240 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 65 6c 65 6d 65 6e 74 2d 3e 24 70 72 6f 70 65 72 {.return.isset($element->$proper
82260 74 79 29 20 3f 20 24 65 6c 65 6d 65 6e 74 2d 3e 24 70 72 6f 70 65 72 74 79 20 3a 20 24 66 61 6c ty).?.$element->$property.:.$fal
82280 6c 62 61 63 6b 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f lback;.}.}.}<?php..namespace.Jso
822a0 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 nSchema\Constraints;.......inter
822c0 66 61 63 65 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a face.ConstraintInterface.{......
822e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 function.getErrors();.......func
82300 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 73 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 3b 0a 0a tion.addErrors(array.$errors);..
82320 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 24 ......function.addError($path,.$
82340 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 message);.......function.isValid
82360 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 ();...........function.check($va
82380 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c lue,.$schema.=.null,.$path.=.nul
823a0 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 3b 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 l,.$i.=.null);.}<?php..namespace
823c0 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a .JsonSchema\Constraints;........
823e0 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d abstract.class.Constraint.implem
82400 65 6e 74 73 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 ents.ConstraintInterface.{.prote
82420 63 74 65 64 20 24 63 68 65 63 6b 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f cted.$checkMode.=.self::CHECK_MO
82440 44 45 5f 4e 4f 52 4d 41 4c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 73 20 3d 20 61 DE_NORMAL;.protected.$errors.=.a
82460 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 rray();.protected.$inlineSchemaP
82480 72 6f 70 65 72 74 79 20 3d 20 27 24 73 63 68 65 6d 61 27 3b 0a 0a 63 6f 6e 73 74 20 43 48 45 43 roperty.=.'$schema';..const.CHEC
824a0 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 4d K_MODE_NORMAL.=.1;.const.CHECK_M
824c0 4f 44 45 5f 54 59 50 45 5f 43 41 53 54 20 3d 20 32 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ODE_TYPE_CAST.=.2;.....public.fu
824e0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 68 65 63 6b 4d 6f 64 65 20 3d 20 nction.__construct($checkMode.=.
82500 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 24 74 68 69 73 self::CHECK_MODE_NORMAL).{.$this
82520 2d 3e 63 68 65 63 6b 4d 6f 64 65 20 3d 20 24 63 68 65 63 6b 4d 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a ->checkMode.=.$checkMode;.}.....
82540 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 public.function.addError($path,.
82560 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 61 72 $message).{.$this->errors[].=.ar
82580 72 61 79 28 0a 27 70 72 6f 70 65 72 74 79 27 20 3d 3e 20 24 70 61 74 68 2c 0a 27 6d 65 73 73 61 ray(.'property'.=>.$path,.'messa
825a0 67 65 27 20 3d 3e 20 24 6d 65 73 73 61 67 65 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ge'.=>.$message.);.}.....public.
825c0 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 73 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 function.addErrors(array.$errors
825e0 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 ).{.$this->errors.=.array_merge(
82600 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 $this->errors,.$errors);.}.....p
82620 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 ublic.function.getErrors().{.ret
82640 75 72 6e 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 urn.array_unique($this->errors,.
82660 53 4f 52 54 5f 52 45 47 55 4c 41 52 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 SORT_REGULAR);.}.........protect
82680 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 63 72 65 6d 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c ed.function.incrementPath($path,
826a0 20 24 69 29 0a 7b 0a 69 66 20 28 24 70 61 74 68 20 21 3d 3d 20 27 27 29 20 7b 0a 69 66 20 28 69 .$i).{.if.($path.!==.'').{.if.(i
826c0 73 5f 69 6e 74 28 24 69 29 29 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 5b 27 20 2e 20 24 69 20 2e s_int($i)).{.$path..=.'['...$i..
826e0 20 27 5d 27 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 24 69 20 3d 3d 20 27 27 29 20 7b 0a 24 70 61 .']';.}.else.if.($i.==.'').{.$pa
82700 74 68 20 2e 3d 20 27 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 2e 27 20 th..=.'';.}.else.{.$path..=.'.'.
82720 2e 20 24 69 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 24 69 3b 0a 7d 0a 0a ..$i;.}.}.else.{.$path.=.$i;.}..
82740 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 return.$path;.}..........protect
82760 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 ed.function.checkArray($value,.$
82780 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 schema.=.null,.$path.=.null,.$i.
827a0 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6c 6c 65 =.null).{.$validator.=.new.Colle
827c0 63 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 ction($this->checkMode);.$valida
827e0 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 tor->check($value,.$schema,.$pat
82800 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 h,.$i);..$this->addErrors($valid
82820 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ator->getErrors());.}..........p
82840 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 4f 62 6a 65 63 74 28 24 76 rotected.function.checkObject($v
82860 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 alue,.$schema.=.null,.$path.=.nu
82880 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 ll,.$i.=.null).{.$validator.=.ne
828a0 77 20 4f 62 6a 65 63 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c w.Object($this->checkMode);.$val
828c0 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 idator->check($value,.$schema,.$
828e0 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 path,.$i);..$this->addErrors($va
82900 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a lidator->getErrors());.}........
82920 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 54 79 70 65 28 24 ..protected.function.checkType($
82940 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e value,.$schema.=.null,.$path.=.n
82960 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e ull,.$i.=.null).{.$validator.=.n
82980 65 77 20 54 79 70 65 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 ew.Type($this->checkMode);.$vali
829a0 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 dator->check($value,.$schema,.$p
829c0 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c ath,.$i);..$this->addErrors($val
829e0 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a idator->getErrors());.}.........
82a00 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 55 6e 64 65 66 69 6e .protected.function.checkUndefin
82a20 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 ed($value,.$schema.=.null,.$path
82a40 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 .=.null,.$i.=.null).{.$validator
82a60 20 3d 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 .=.new.Undefined($this->checkMod
82a80 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 e);.$validator->check($value,.$s
82aa0 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 chema,.$path,.$i);..$this->addEr
82ac0 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d rors($validator->getErrors());.}
82ae0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 ..........protected.function.che
82b00 63 6b 53 74 72 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c ckString($value,.$schema.=.null,
82b20 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c .$path.=.null,.$i.=.null).{.$val
82b40 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 68 65 63 6b idator.=.new.String($this->check
82b60 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c Mode);.$validator->check($value,
82b80 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 .$schema,.$path,.$i);..$this->ad
82ba0 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 dErrors($validator->getErrors())
82bc0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 ;.}..........protected.function.
82be0 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 checkNumber($value,.$schema.=.nu
82c00 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 ll,.$path.=.null,.$i.=.null).{.$
82c20 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 4e 75 6d 62 65 72 28 24 74 68 69 73 2d 3e 63 68 validator.=.new.Number($this->ch
82c40 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c eckMode);.$validator->check($val
82c60 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d ue,.$schema,.$path,.$i);..$this-
82c80 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 >addErrors($validator->getErrors
82ca0 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ());.}..........protected.functi
82cc0 6f 6e 20 63 68 65 63 6b 45 6e 75 6d 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e on.checkEnum($value,.$schema.=.n
82ce0 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ull,.$path.=.null,.$i.=.null).{.
82d00 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 45 6e 75 6d 28 24 74 68 69 73 2d 3e 63 68 65 $validator.=.new.Enum($this->che
82d20 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 ckMode);.$validator->check($valu
82d40 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e e,.$schema,.$path,.$i);..$this->
82d60 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 addErrors($validator->getErrors(
82d80 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 ));.}.....public.function.isVali
82da0 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 d().{.return.!$this->getErrors()
82dc0 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 ;.}.}<?php..namespace.JsonSchema
82de0 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6c 6c 65 \Constraints;........class.Colle
82e00 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 ction.extends.Constraint.{....pu
82e20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 blic.function.check($value,.$sch
82e40 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e ema.=.null,.$path.=.null,.$i.=.n
82e60 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 ull).{...if.(isset($schema->minI
82e80 74 65 6d 73 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 20 3c 20 24 73 63 68 65 6d 61 tems).&&.count($value).<.$schema
82ea0 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 ->minItems).{.$this->addError($p
82ec0 61 74 68 2c 20 22 54 68 65 72 65 20 6d 75 73 74 20 62 65 20 61 20 6d 69 6e 69 6d 75 6d 20 6f 66 ath,."There.must.be.a.minimum.of
82ee0 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 20 2e 20 22 20 69 6e 20 74 68 ."...$schema->minItems...".in.th
82f00 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 e.array");.}...if.(isset($schema
82f20 2d 3e 6d 61 78 49 74 65 6d 73 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 20 3e 20 24 ->maxItems).&&.count($value).>.$
82f40 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 schema->maxItems).{.$this->addEr
82f60 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 6d 75 73 74 20 62 65 20 61 20 6d 61 78 69 ror($path,."There.must.be.a.maxi
82f80 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 20 2e 20 22 mum.of."...$schema->maxItems..."
82fa0 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 20 0a 20 69 66 20 28 69 73 73 65 74 .in.the.array");.}.....if.(isset
82fc0 28 24 73 63 68 65 6d 61 2d 3e 75 6e 69 71 75 65 49 74 65 6d 73 29 20 26 26 20 61 72 72 61 79 5f ($schema->uniqueItems).&&.array_
82fe0 75 6e 69 71 75 65 28 24 76 61 6c 75 65 29 20 21 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 unique($value).!=.$value).{.$thi
83000 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 61 72 65 20 6e 6f s->addError($path,."There.are.no
83020 20 64 75 70 6c 69 63 61 74 65 73 20 61 6c 6c 6f 77 65 64 20 69 6e 20 74 68 65 20 61 72 72 61 79 .duplicates.allowed.in.the.array
83040 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d ");.}....if.(isset($schema->item
83060 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 49 74 65 6d 73 28 24 76 61 6c 75 s)).{.$this->validateItems($valu
83080 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a e,.$schema,.$path,.$i);.}.}.....
830a0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 .....protected.function.validate
830c0 49 74 65 6d 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 Items($value,.$schema.=.null,.$p
830e0 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 ath.=.null,.$i.=.null).{.if.(!is
83100 5f 61 72 72 61 79 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 29 20 7b 0a 0a 20 66 6f 72 65 _array($schema->items)).{...fore
83120 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 24 69 6e 69 74 ach.($value.as.$k.=>.$v).{.$init
83140 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 0a 20 Errors.=.$this->getErrors();....
83160 69 66 20 28 21 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 if.(!isset($schema->additionalIt
83180 65 6d 73 29 20 7c 7c 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 ems).||.$schema->additionalItems
831a0 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 .===.false).{.$this->checkUndefi
831c0 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 ned($v,.$schema->items,.$path,.$
831e0 6b 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 20 k);.}....if.(count($initErrors).
83200 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 26 26 20 28 <.count($this->getErrors()).&&.(
83220 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 29 20 isset($schema->additionalItems).
83240 26 26 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 &&.$schema->additionalItems.!==.
83260 66 61 6c 73 65 29 29 20 7b 0a 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d false)).{.$secondErrors.=.$this-
83280 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 >getErrors();.$this->checkUndefi
832a0 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 ned($v,.$schema->additionalItems
832c0 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 65 ,.$path,.$k);.}....if.(isset($se
832e0 63 6f 6e 64 45 72 72 6f 72 73 29 20 26 26 20 63 6f 75 6e 74 28 24 73 65 63 6f 6e 64 45 72 72 6f condErrors).&&.count($secondErro
83300 72 73 29 20 3c 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 7b 0a 24 74 68 69 rs).<.$this->getErrors()).{.$thi
83320 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 3b 0a 7d 20 65 6c 73 s->errors.=.$secondErrors;.}.els
83340 65 69 66 20 28 69 73 73 65 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 26 26 20 63 6f 75 eif.(isset($secondErrors).&&.cou
83360 6e 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 nt($secondErrors).==.count($this
83380 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 ->getErrors())).{.$this->errors.
833a0 3d 20 24 69 6e 69 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 66 6f =.$initErrors;.}.}.}.else.{...fo
833c0 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 reach.($value.as.$k.=>.$v).{.if.
833e0 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6b 2c 20 24 73 63 68 65 6d 61 2d 3e 69 (array_key_exists($k,.$schema->i
83400 74 65 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 tems)).{.$this->checkUndefined($
83420 76 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b v,.$schema->items[$k],.$path,.$k
83440 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 );.}.else.{...if.(array_key_exis
83460 74 73 28 27 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 27 2c 20 24 73 63 68 65 6d 61 29 20 26 ts('additionalItems',.$schema).&
83480 26 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 66 &.$schema->additionalItems.!==.f
834a0 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 alse).{.$this->checkUndefined($v
834c0 2c 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 ,.$schema->additionalItems,.$pat
834e0 68 2c 20 24 6b 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 h,.$k);.}.else.{.$this->addError
83500 28 0a 24 70 61 74 68 2c 0a 27 54 68 65 20 69 74 65 6d 20 27 20 2e 20 24 69 20 2e 20 27 5b 27 20 (.$path,.'The.item.'...$i...'['.
83520 2e 20 24 6b 20 2e 20 27 5d 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 ..$k...'].is.not.defined.in.the.
83540 6f 62 6a 54 79 70 65 44 65 66 20 61 6e 64 20 74 68 65 20 6f 62 6a 54 79 70 65 44 65 66 20 64 6f objTypeDef.and.the.objTypeDef.do
83560 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 69 es.not.allow.additional.properti
83580 65 73 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 20 28 24 6b 20 3d 20 63 6f 75 6e 74 28 es'.);.}.}.}....for.($k.=.count(
835a0 24 76 61 6c 75 65 29 3b 20 24 6b 20 3c 20 63 6f 75 6e 74 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 $value);.$k.<.count($schema->ite
835c0 6d 73 29 3b 20 24 6b 2b 2b 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e ms);.$k++).{.$this->checkUndefin
835e0 65 64 28 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 ed(new.Undefined(),.$schema->ite
83600 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 ms[$k],.$path,.$k);.}.}.}.}<?php
83620 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e ..namespace.JsonSchema\Constrain
83640 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 6e 75 6d 20 65 78 74 65 6e 64 73 20 43 6f ts;........class.Enum.extends.Co
83660 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 nstraint.{....public.function.ch
83680 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 eck($element,.$schema.=.null,.$p
836a0 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 ath.=.null,.$i.=.null).{.foreach
836c0 20 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 20 61 73 20 24 70 6f 73 73 69 62 6c 65 56 61 6c 75 .($schema->enum.as.$possibleValu
836e0 65 29 20 7b 0a 69 66 20 28 24 70 6f 73 73 69 62 6c 65 56 61 6c 75 65 20 3d 3d 20 24 65 6c 65 6d e).{.if.($possibleValue.==.$elem
83700 65 6e 74 29 20 7b 0a 24 66 6f 75 6e 64 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d ent).{.$found.=.true;.break;.}.}
83720 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 66 6f 75 6e 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 ..if.(!isset($found)).{.$this->a
83740 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 61 20 ddError($path,."does.not.have.a.
83760 76 61 6c 75 65 20 69 6e 20 74 68 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 22 20 2e 20 69 6d 70 value.in.the.enumeration."...imp
83780 6c 6f 64 65 28 27 2c 20 27 2c 20 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 29 29 3b 0a 7d 0a 7d 0a lode(',.',.$schema->enum));.}.}.
837a0 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e }<?php..namespace.JsonSchema\Con
837c0 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 69 6e 67 20 65 78 straints;........class.String.ex
837e0 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e tends.Constraint.{....public.fun
83800 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 ction.check($element,.$schema.=.
83820 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b null,.$path.=.null,.$i.=.null).{
83840 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 ...if.(isset($schema->maxLength)
83860 20 26 26 20 73 74 72 6c 65 6e 28 24 65 6c 65 6d 65 6e 74 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e .&&.strlen($element).>.$schema->
83880 6d 61 78 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 maxLength).{.$this->addError($pa
838a0 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 74 20 6d 6f 73 74 20 22 20 2e 20 24 73 63 68 65 6d 61 th,."must.be.at.most."...$schema
838c0 2d 3e 6d 61 78 4c 65 6e 67 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 22 ->maxLength...".characters.long"
838e0 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 );.}....if.(isset($schema->minLe
83900 6e 67 74 68 29 20 26 26 20 73 74 72 6c 65 6e 28 24 65 6c 65 6d 65 6e 74 29 20 3c 20 24 73 63 68 ngth).&&.strlen($element).<.$sch
83920 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f ema->minLength).{.$this->addErro
83940 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 74 20 6c 65 61 73 74 20 22 20 2e 20 24 r($path,."must.be.at.least."...$
83960 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 73 schema->minLength...".characters
83980 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d .long");.}....if.(isset($schema-
839a0 3e 70 61 74 74 65 72 6e 29 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 20 2e 20 24 >pattern).&&.!preg_match('/'...$
839c0 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 20 2e 20 27 2f 27 2c 20 24 65 6c 65 6d 65 6e 74 29 schema->pattern...'/',.$element)
839e0 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 64 6f 65 73 ).{.$this->addError($path,."does
83a00 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 72 65 67 65 78 20 70 61 74 74 65 72 6e 20 22 20 2e .not.match.the.regex.pattern."..
83a20 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a .$schema->pattern);.}.}.}<?php..
83a40 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 namespace.JsonSchema;..use.JsonS
83a60 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 5c 53 63 68 65 6d 61 3b 0a 75 73 65 20 4a 73 chema\Constraints\Schema;.use.Js
83a80 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 5c 43 6f 6e 73 74 72 61 69 6e 74 3b onSchema\Constraints\Constraint;
83aa0 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 6f 72 20 65 78 74 65 6e 64 73 .........class.Validator.extends
83ac0 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 .Constraint.{........function.ch
83ae0 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 eck($value,.$schema.=.null,.$pat
83b00 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f h.=.null,.$i.=.null).{.$validato
83b20 72 20 3d 20 6e 65 77 20 53 63 68 65 6d 61 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 r.=.new.Schema($this->checkMode)
83b40 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 ;.$validator->check($value,.$sch
83b60 65 6d 61 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f ema);.$this->addErrors($validato
83b80 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 69 66 20 28 r->getErrors());.}.}<?php...if.(
83ba0 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 !class_exists('Composer\\Autoloa
83bc0 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 2c 20 66 61 6c 73 65 29 29 20 7b 0a 72 65 71 75 69 d\\ClassLoader',.false)).{.requi
83be0 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 27 20 2e 20 27 2f 43 6c 61 re.__DIR__...'/composer'...'/Cla
83c00 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 ssLoader.php';.}..return.call_us
83c20 65 72 5f 66 75 6e 63 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e er_func(function().{.$loader.=.n
83c40 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 ew.\Composer\Autoload\ClassLoade
83c60 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 3d 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f r();.$composerDir.=.__DIR__...'/
83c80 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 24 63 6f 6d 70 composer';..$map.=.require.$comp
83ca0 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e oserDir...'/autoload_namespaces.
83cc0 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 php';.foreach.($map.as.$namespac
83ce0 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 6d 65 e.=>.$path).{.$loader->add($name
83d00 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 24 63 6c 61 73 73 4d 61 70 20 3d 20 72 65 space,.$path);.}..$classMap.=.re
83d20 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f quire.$composerDir...'/autoload_
83d40 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 69 66 20 28 24 63 6c 61 73 73 4d 61 70 29 20 7b 0a classmap.php';.if.($classMap).{.
83d60 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b $loader->addClassMap($classMap);
83d80 0a 7d 0a 0a 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e .}..$loader->register();..return
83da0 20 24 6c 6f 61 64 65 72 3b 0a 7d 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 .$loader;.});.<?php....$vendorDi
83dc0 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 3b 0a 24 62 61 73 65 44 69 72 20 3d r.=.dirname(__DIR__);.$baseDir.=
83de0 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 .dirname($vendorDir);..return.ar
83e00 72 61 79 28 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 50 72 6f 63 65 73 ray(.'Symfony\\Component\\Proces
83e20 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f s'.=>.$vendorDir...'/symfony/pro
83e40 63 65 73 73 2f 27 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 46 69 6e cess/',.'Symfony\\Component\\Fin
83e60 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 66 der'.=>.$vendorDir...'/symfony/f
83e80 69 6e 64 65 72 2f 27 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 43 6f inder/',.'Symfony\\Component\\Co
83ea0 6e 73 6f 6c 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 nsole'.=>.$vendorDir...'/symfony
83ec0 2f 63 6f 6e 73 6f 6c 65 2f 27 2c 0a 27 53 65 6c 64 5c 5c 4a 73 6f 6e 4c 69 6e 74 27 20 3d 3e 20 /console/',.'Seld\\JsonLint'.=>.
83ee0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 $vendorDir...'/seld/jsonlint/src
83f00 2f 27 2c 0a 27 4a 73 6f 6e 53 63 68 65 6d 61 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e /',.'JsonSchema'.=>.$vendorDir..
83f20 20 27 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 .'/justinrainbow/json-schema/src
83f40 2f 27 2c 0a 27 43 6f 6d 70 6f 73 65 72 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 27 2f 73 /',.'Composer'.=>.$baseDir...'/s
83f60 72 63 2f 27 2c 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 rc/',.);.<?php....$vendorDir.=.d
83f80 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e irname(__DIR__);.$baseDir.=.dirn
83fa0 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a ame($vendorDir);..return.array(.
83fc0 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f );.<?php............namespace.Co
83fe0 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mposer\Autoload;................
84000 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a ..............class.ClassLoader.
84020 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 {.private.$prefixes.=.array();.p
84040 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a rivate.$fallbackDirs.=.array();.
84060 70 72 69 76 61 74 65 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 66 61 6c 73 65 3b private.$useIncludePath.=.false;
84080 0a 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 .private.$classMap.=.array();..p
840a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 7b 0a 72 ublic.function.getPrefixes().{.r
840c0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 eturn.$this->prefixes;.}..public
840e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 7b 0a 72 65 .function.getFallbackDirs().{.re
84100 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 3b 0a 7d 0a 0a 70 75 62 turn.$this->fallbackDirs;.}..pub
84120 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 7b 0a 72 65 74 lic.function.getClassMap().{.ret
84140 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 urn.$this->classMap;.}.....publi
84160 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 61 73 73 4d 61 70 28 61 72 72 61 79 20 24 63 6c c.function.addClassMap(array.$cl
84180 61 73 73 4d 61 70 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b assMap).{.if.($this->classMap).{
841a0 0a 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 .$this->classMap.=.array_merge($
841c0 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a 7d 20 65 6c this->classMap,.$classMap);.}.el
841e0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 se.{.$this->classMap.=.$classMap
84200 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 ;.}.}........public.function.add
84220 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 0a 7b 0a 69 66 20 28 21 24 70 72 65 66 69 78 ($prefix,.$paths).{.if.(!$prefix
84240 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 68 73 20 61 73 20 24 ).{.foreach.((array).$paths.as.$
84260 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 5b 5d 20 3d 20 path).{.$this->fallbackDirs[].=.
84280 24 70 61 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 $path;.}..return;.}.if.(isset($t
842a0 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 24 74 68 69 73 his->prefixes[$prefix])).{.$this
842c0 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 ->prefixes[$prefix].=.array_merg
842e0 65 28 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 2c 0a 28 61 72 e(.$this->prefixes[$prefix],.(ar
84300 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 ray).$paths.);.}.else.{.$this->p
84320 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 refixes[$prefix].=.(array).$path
84340 73 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 s;.}.}.......public.function.set
84360 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a UseIncludePath($useIncludePath).
84380 7b 0a 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e {.$this->useIncludePath.=.$useIn
843a0 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 cludePath;.}........public.funct
843c0 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e ion.getUseIncludePath().{.return
843e0 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .$this->useIncludePath;.}.......
84400 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e public.function.register($prepen
84420 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 d.=.false).{.spl_autoload_regist
84440 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 er(array($this,.'loadClass'),.tr
84460 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ue,.$prepend);.}.....public.func
84480 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 29 0a 7b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 tion.unregister().{.spl_autoload
844a0 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c _unregister(array($this,.'loadCl
844c0 61 73 73 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ass'));.}........public.function
844e0 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 20 3d .loadClass($class).{.if.($file.=
84500 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 20 7b 0a 69 6e 63 6c .$this->findFile($class)).{.incl
84520 75 64 65 20 24 66 69 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a ude.$file;..return.true;.}.}....
84540 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 .....public.function.findFile($c
84560 6c 61 73 73 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 lass).{.if.(isset($this->classMa
84580 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 p[$class])).{.return.$this->clas
845a0 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 7d 0a 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c sMap[$class];.}..if.('\\'.==.$cl
845c0 61 73 73 5b 30 5d 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 ass[0]).{.$class.=.substr($class
845e0 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 ,.1);.}..if.(false.!==.$pos.=.st
84600 72 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 0a 20 24 63 6c 61 73 73 50 rrpos($class,.'\\')).{...$classP
84620 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 ath.=.str_replace('\\',.DIRECTOR
84640 59 5f 53 45 50 41 52 41 54 4f 52 2c 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 30 2c 20 24 Y_SEPARATOR,.substr($class,.0,.$
84660 70 6f 73 29 29 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 3b 0a 24 63 6c pos))...DIRECTORY_SEPARATOR;.$cl
84680 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 24 70 6f 73 20 2b 20 assName.=.substr($class,.$pos.+.
846a0 31 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 6c 61 73 73 50 61 74 68 20 3d 20 6e 75 6c 6c 1);.}.else.{...$classPath.=.null
846c0 3b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 61 73 73 3b 0a 7d 0a 0a 24 63 6c 61 73 73 ;.$className.=.$class;.}..$class
846e0 50 61 74 68 20 2e 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 27 2c 20 44 49 52 45 43 54 4f Path..=.str_replace('_',.DIRECTO
84700 52 59 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 63 6c 61 73 73 4e 61 6d 65 29 20 2e 20 27 2e 70 68 RY_SEPARATOR,.$className)...'.ph
84720 70 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 20 61 73 p';..foreach.($this->prefixes.as
84740 20 24 70 72 65 66 69 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 .$prefix.=>.$dirs).{.if.(0.===.s
84760 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 66 6f 72 65 61 63 trpos($class,.$prefix)).{.foreac
84780 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 h.($dirs.as.$dir).{.if.(file_exi
847a0 73 74 73 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e sts($dir...DIRECTORY_SEPARATOR..
847c0 20 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 20 2e 20 44 49 .$classPath)).{.return.$dir...DI
847e0 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 3b 0a RECTORY_SEPARATOR...$classPath;.
84800 7d 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 }.}.}.}..foreach.($this->fallbac
84820 6b 44 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 kDirs.as.$dir).{.if.(file_exists
84840 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 ($dir...DIRECTORY_SEPARATOR...$c
84860 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 lassPath)).{.return.$dir...DIREC
84880 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 7d 0a 7d TORY_SEPARATOR...$classPath;.}.}
848a0 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 26 26 20 24 ..if.($this->useIncludePath.&&.$
848c0 66 69 6c 65 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 file.=.stream_resolve_include_pa
848e0 74 68 28 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a th($classPath)).{.return.$file;.
84900 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e }.}.}.<?php..require.__DIR__.'/.
84920 2e 2f 73 72 63 2f 62 6f 6f 74 73 74 72 61 70 2e 70 68 70 27 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f ./src/bootstrap.php';..use.Compo
84940 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 65 72 72 6f 72 5f ser\Console\Application;..error_
84960 72 65 70 6f 72 74 69 6e 67 28 2d 31 29 3b 0a 40 69 6e 69 5f 73 65 74 28 27 64 69 73 70 6c 61 79 reporting(-1);.@ini_set('display
84980 5f 65 72 72 6f 72 73 27 2c 20 31 29 3b 0a 40 69 6e 69 5f 73 65 74 28 27 6d 65 6d 6f 72 79 5f 6c _errors',.1);.@ini_set('memory_l
849a0 69 6d 69 74 27 2c 20 27 35 31 32 4d 27 29 3b 0a 0a 2f 2f 20 72 75 6e 20 74 68 65 20 63 6f 6d 6d imit',.'512M');..//.run.the.comm
849c0 61 6e 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e and.application.$application.=.n
849e0 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e ew.Application();.$application->
84a00 72 75 6e 28 29 3b 0a 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 31 31 20 4e 69 6c 73 20 run();..Copyright.(c).2011.Nils.
84a20 41 64 65 72 6d 61 6e 6e 2c 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 Adermann,.Jordi.Boggiano..Permis
84a40 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 sion.is.hereby.granted,.free.of.
84a60 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 charge,.to.any.person.obtaining.
84a80 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f a.copy.of.this.software.and.asso
84aa0 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 ciated.documentation.files.(the.
84ac0 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 "Software"),.to.deal.in.the.Soft
84ae0 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 ware.without.restriction,.includ
84b00 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 ing.without.limitation.the.right
84b20 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 s.to.use,.copy,.modify,.merge,.p
84b40 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 ublish,.distribute,.sublicense,.
84b60 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 and/or.sell.copies.of.the.Softwa
84b80 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f re,.and.to.permit.persons.to.who
84ba0 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 m.the.Software.is.furnished.to.d
84bc0 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 o.so,.subject.to.the.following.c
84be0 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 onditions:..The.above.copyright.
84c00 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 notice.and.this.permission.notic
84c20 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 e.shall.be.included.in.all.copie
84c40 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 s.or.substantial.portions.of.the
84c60 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 .Software...THE.SOFTWARE.IS.PROV
84c80 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f IDED."AS.IS",.WITHOUT.WARRANTY.O
84ca0 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 F.ANY.KIND,.EXPRESS.OR.IMPLIED,.
84cc0 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 INCLUDING.BUT.NOT.LIMITED.TO.THE
84ce0 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a .WARRANTIES.OF.MERCHANTABILITY,.
84d00 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 FITNESS.FOR.A.PARTICULAR.PURPOSE
84d20 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e .AND.NONINFRINGEMENT..IN.NO.EVEN
84d40 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 T.SHALL.THE.AUTHORS.OR.COPYRIGHT
84d60 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d .HOLDERS.BE.LIABLE.FOR.ANY.CLAIM
84d80 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 ,.DAMAGES.OR.OTHER.LIABILITY,.WH
84da0 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 ETHER.IN.AN.ACTION.OF.CONTRACT,.
84dc0 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c TORT.OR.OTHERWISE,.ARISING.FROM,
84de0 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 .OUT.OF.OR.IN.CONNECTION.WITH.TH
84e00 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 E.SOFTWARE.OR.THE.USE.OR.OTHER.D
84e20 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 0a f1 03 41 35 be fb EALINGS.IN.THE.SOFTWARE.....A5..
84e40 2b 20 9e 2d 93 35 b0 b1 96 6f 4d f0 03 9c 02 00 00 00 47 42 4d 42 +..-.5...oM.......GBMB