aboutsummaryrefslogtreecommitdiffstats
path: root/composer.phar
blob: a035fdc91138d039ed9e006066c774bb270080e3 (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 72 65 71 75 69 72 mapPhar('composer.phar');.requir
0140 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 2f 62 69 6e 2f 63 6f 6d 70 e.'phar://composer.phar/bin/comp
0160 6f 73 65 72 27 3b 0a 0a 5f 5f 48 41 4c 54 5f 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a 4e oser';..__HALT_COMPILER();.?>..N
0180 5c 00 00 1e 01 00 00 11 00 00 00 01 00 0d 00 00 00 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 00 00 \................composer.phar..
01a0 00 00 11 00 00 00 73 72 63 2f 62 6f 6f 74 73 74 72 61 70 2e 70 68 70 c4 01 00 00 54 d2 84 51 c4 ......src/bootstrap.php....T..Q.
01c0 01 00 00 b7 43 df 2f b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ....C./............src/Composer/
01e0 49 4f 2f 43 6f 6e 73 6f 6c 65 49 4f 2e 70 68 70 a1 10 00 00 54 d2 84 51 a1 10 00 00 55 50 92 9f IO/ConsoleIO.php....T..Q....UP..
0200 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 4e 75 6c 6c ............src/Composer/IO/Null
0220 49 4f 2e 70 68 70 7c 04 00 00 54 d2 84 51 7c 04 00 00 4e de e4 df b6 01 00 00 00 00 00 00 1f 00 IO.php|...T..Q|...N.............
0240 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 2e 70 68 ..src/Composer/IO/IOInterface.ph
0260 70 a5 03 00 00 54 d2 84 51 a5 03 00 00 85 bc 44 74 b6 01 00 00 00 00 00 00 1c 00 00 00 73 72 63 p....T..Q......Dt............src
0280 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 42 75 66 66 65 72 49 4f 2e 70 68 70 2a 04 00 00 54 d2 84 /Composer/IO/BufferIO.php*...T..
02a0 51 2a 04 00 00 19 6f 25 a6 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 Q*....o%.........)...src/Compose
02c0 72 2f 43 6f 6d 6d 61 6e 64 2f 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 2e 06 r/Command/RunScriptCommand.php..
02e0 00 00 54 d2 84 51 2e 06 00 00 ca d2 88 57 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f ..T..Q.......W........(...src/Co
0300 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 2e 70 mposer/Command/DiagnoseCommand.p
0320 68 70 10 22 00 00 54 d2 84 51 10 22 00 00 d3 08 0c 49 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 hp."..T..Q.".....I........'...sr
0340 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e c/Composer/Command/ArchiveComman
0360 64 2e 70 68 70 2c 0e 00 00 54 d2 84 51 2c 0e 00 00 ee 62 cb 06 b6 01 00 00 00 00 00 00 20 00 00 d.php,...T..Q,....b.............
0380 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 .src/Composer/Command/Command.ph
03a0 70 80 04 00 00 54 d2 84 51 80 04 00 00 a2 fe 97 49 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 p....T..Q.......I........-...src
03c0 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 /Composer/Command/CreateProjectC
03e0 6f 6d 6d 61 6e 64 2e 70 68 70 8a 24 00 00 54 d2 84 51 8a 24 00 00 86 1e 3e 08 b6 01 00 00 00 00 ommand.php.$..T..Q.$....>.......
0400 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 62 6f 75 74 ..%...src/Composer/Command/About
0420 43 6f 6d 6d 61 6e 64 2e 70 68 70 b7 02 00 00 54 d2 84 51 b7 02 00 00 bb 4d e6 2a b6 01 00 00 00 Command.php....T..Q.....M.*.....
0440 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 68 6f 77 ...$...src/Composer/Command/Show
0460 43 6f 6d 6d 61 6e 64 2e 70 68 70 4e 2b 00 00 54 d2 84 51 4e 2b 00 00 0e d5 8d cb b6 01 00 00 00 Command.phpN+..T..QN+...........
0480 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 55 70 64 61 ...&...src/Composer/Command/Upda
04a0 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 e3 0d 00 00 54 d2 84 51 e3 0d 00 00 03 55 d6 c3 b6 01 00 teCommand.php....T..Q.....U.....
04c0 00 00 00 00 00 26 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 6f .....&...src/Composer/Command/Co
04e0 6e 66 69 67 43 6f 6d 6d 61 6e 64 2e 70 68 70 a0 27 00 00 54 d2 84 51 a0 27 00 00 a0 ab 2f 64 b6 nfigCommand.php.'..T..Q.'..../d.
0500 01 00 00 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 .......'...src/Composer/Command/
0520 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 85 0c 00 00 54 d2 84 51 85 0c 00 00 dc 92 InstallCommand.php....T..Q......
0540 9a a1 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 43 6f 6d 6d 61 ..........(...src/Composer/Comma
0560 6e 64 2f 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 47 08 00 00 54 d2 84 51 47 08 nd/ValidateCommand.phpG...T..QG.
0580 00 00 d9 0e 3b 72 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 43 ....;r........'...src/Composer/C
05a0 6f 6d 6d 61 6e 64 2f 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 6f 09 00 00 54 d2 84 ommand/DependsCommand.phpo...T..
05c0 51 6f 09 00 00 54 b7 2e 72 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 Qo...T..r........&...src/Compose
05e0 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 2e 70 68 70 af 08 00 00 54 r/Command/SearchCommand.php....T
0600 d2 84 51 af 08 00 00 df 20 82 f1 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..Q................*...src/Compo
0620 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 ser/Command/SelfUpdateCommand.ph
0640 70 de 07 00 00 54 d2 84 51 de 07 00 00 de a9 f5 1a b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 p....T..Q................'...src
0660 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 /Composer/Command/RequireCommand
0680 2e 70 68 70 9f 0f 00 00 54 d2 84 51 9f 0f 00 00 ca 66 bf 25 b6 01 00 00 00 00 00 00 2c 00 00 00 .php....T..Q.....f.%........,...
06a0 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 75 6d 70 41 75 74 6f 6c 6f 61 src/Composer/Command/DumpAutoloa
06c0 64 43 6f 6d 6d 61 6e 64 2e 70 68 70 cf 04 00 00 54 d2 84 51 cf 04 00 00 e1 e0 61 25 b6 01 00 00 dCommand.php....T..Q......a%....
06e0 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 48 65 6c ....,...src/Composer/Command/Hel
0700 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 9e 01 00 00 54 d2 84 51 9e 01 00 00 per/DialogHelper.php....T..Q....
0720 95 82 8c 26 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d ...&........&...src/Composer/Com
0740 6d 61 6e 64 2f 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 60 07 00 00 54 d2 84 51 60 07 mand/StatusCommand.php`...T..Q`.
0760 00 00 11 4a f0 a1 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 ...J..........$...src/Composer/C
0780 6f 6d 6d 61 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 c5 30 00 00 54 d2 84 51 c5 30 ommand/InitCommand.php.0..T..Q.0
07a0 00 00 93 65 9c c7 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 ...e..........)...src/Composer/D
07c0 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 34 0f 00 00 54 ownloader/VcsDownloader.php4...T
07e0 d2 84 51 34 0f 00 00 0c cd b2 99 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..Q4...............*...src/Compo
0800 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 68 ser/Downloader/FileDownloader.ph
0820 70 80 14 00 00 54 d2 84 51 80 14 00 00 b9 37 a4 71 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 p....T..Q.....7.q........)...src
0840 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 64 /Composer/Downloader/SvnDownload
0860 65 72 2e 70 68 70 9c 0c 00 00 54 d2 84 51 9c 0c 00 00 0c 9b cb ef b6 01 00 00 00 00 00 00 30 00 er.php....T..Q................0.
0880 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 61 ..src/Composer/Downloader/PearPa
08a0 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 2e 70 68 70 87 1b 00 00 54 d2 84 51 87 1b 00 00 7e 7a ckageExtractor.php....T..Q....~z
08c0 5d 42 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 6c ]B........+...src/Composer/Downl
08e0 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 e7 0e 00 00 54 d2 84 oader/DownloadManager.php....T..
0900 51 e7 0e 00 00 d6 b9 d1 5c b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 Q.......\......../...src/Compose
0920 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 65 r/Downloader/DownloaderInterface
0940 2e 70 68 70 ca 01 00 00 54 d2 84 51 ca 01 00 00 67 73 21 6c b6 01 00 00 00 00 00 00 2e 00 00 00 .php....T..Q....gs!l............
0960 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 72 src/Composer/Downloader/Transpor
0980 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 f6 00 00 00 54 d2 84 51 f6 00 00 00 cb 38 cd 8a b6 01 tException.php....T..Q.....8....
09a0 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 65 ......*...src/Composer/Downloade
09c0 72 2f 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e5 00 00 00 54 d2 84 51 e5 00 00 00 r/PharDownloader.php....T..Q....
09e0 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 77 ............)...src/Composer/Dow
0a00 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 54 d2 84 nloader/TarDownloader.php....T..
0a20 51 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 65 Q......X?........(...src/Compose
0a40 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 ee 06 00 r/Downloader/HgDownloader.php...
0a60 00 54 d2 84 51 ee 06 00 00 b0 17 93 4a b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d .T..Q.......J........-...src/Com
0a80 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 64 poser/Downloader/ArchiveDownload
0aa0 65 72 2e 70 68 70 52 0d 00 00 54 d2 84 51 52 0d 00 00 78 61 45 7f b6 01 00 00 00 00 00 00 29 00 er.phpR...T..QR...xaE.........).
0ac0 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 77 ..src/Composer/Downloader/ZipDow
0ae0 6e 6c 6f 61 64 65 72 2e 70 68 70 14 0a 00 00 54 d2 84 51 14 0a 00 00 90 8d 70 a6 b6 01 00 00 00 nloader.php....T..Q......p......
0b00 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 47 ...)...src/Composer/Downloader/G
0b20 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 69 2d 00 00 54 d2 84 51 69 2d 00 00 50 ad 1e 49 itDownloader.phpi-..T..Qi-..P..I
0b40 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 52 65 70 6f 73 69 74 ........6...src/Composer/Reposit
0b60 6f 72 79 2f 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 2e 70 ory/InvalidRepositoryException.p
0b80 68 70 6e 00 00 00 54 d2 84 51 6e 00 00 00 e0 93 eb 98 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 hpn...T..Qn...............+...sr
0ba0 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 41 72 72 61 79 52 65 70 6f 73 c/Composer/Repository/ArrayRepos
0bc0 69 74 6f 72 79 2e 70 68 70 07 0c 00 00 54 d2 84 51 07 0c 00 00 6b ff 62 e7 b6 01 00 00 00 00 00 itory.php....T..Q....k.b........
0be0 00 30 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 46 69 6c .0...src/Composer/Repository/Fil
0c00 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 b6 04 00 00 54 d2 84 51 b6 04 00 esystemRepository.php....T..Q...
0c20 00 8e 59 95 7a 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 52 65 ..Y.z........7...src/Composer/Re
0c40 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 pository/WritableRepositoryInter
0c60 66 61 63 65 2e 70 68 70 89 01 00 00 54 d2 84 51 89 01 00 00 91 2f 73 ef b6 01 00 00 00 00 00 00 face.php....T..Q...../s.........
0c80 2a 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 *...src/Composer/Repository/Pear
0ca0 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 07 15 00 00 54 d2 84 51 07 15 00 00 62 bf 45 c0 b6 01 Repository.php....T..Q....b.E...
0cc0 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 69 74 6f 72 ......-...src/Composer/Repositor
0ce0 79 2f 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2e 70 68 70 ff 06 00 00 54 d2 84 51 ff y/RepositoryManager.php....T..Q.
0d00 06 00 00 72 fc 5f 99 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...r._.........3...src/Composer/
0d20 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f Repository/WritableArrayReposito
0d40 72 79 2e 70 68 70 0f 03 00 00 54 d2 84 51 0f 03 00 00 be 47 17 2a b6 01 00 00 00 00 00 00 2c 00 ry.php....T..Q.....G.*........,.
0d60 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
0d80 74 48 75 62 44 72 69 76 65 72 2e 70 68 70 2b 20 00 00 54 d2 84 51 2b 20 00 00 d0 0a c9 58 b6 01 tHubDriver.php+...T..Q+......X..
0da0 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
0dc0 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=...
0de0 54 d2 84 51 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 T..Q=...............)...src/Comp
0e00 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
0e20 70 7b 13 00 00 54 d2 84 51 7b 13 00 00 1c 5b 6d 6d b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 p{...T..Q{....[mm........)...src
0e40 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
0e60 65 72 2e 70 68 70 11 18 00 00 54 d2 84 51 11 18 00 00 78 21 94 e3 b6 01 00 00 00 00 00 00 32 00 er.php....T..Q....x!..........2.
0e80 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
0ea0 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 43 02 00 00 54 d2 84 51 43 02 00 00 sDriverInterface.phpC...T..QC...
0ec0 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
0ee0 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 44 72 69 76 65 72 2e 70 68 70 09 13 00 00 54 d2 84 51 ository/Vcs/HgDriver.php....T..Q
0f00 09 13 00 00 6e 30 83 92 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....n0..........)...src/Composer
0f20 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 70 05 00 /Repository/Vcs/VcsDriver.phpp..
0f40 00 54 d2 84 51 70 05 00 00 66 88 1c 6a b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d .T..Qp...f..j........1...src/Com
0f60 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
0f80 44 72 69 76 65 72 2e 70 68 70 a7 0d 00 00 54 d2 84 51 a7 0d 00 00 ee 2b d8 41 b6 01 00 00 00 00 Driver.php....T..Q.....+.A......
0fa0 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
0fc0 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 a3 00 00 00 54 d2 stalledArrayRepository.php....T.
0fe0 84 51 a3 00 00 00 2f f6 7e 3e b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Q..../.~>........7...src/Compos
1000 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 er/Repository/RepositorySecurity
1020 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 6e 00 00 00 54 d2 84 51 6e 00 00 00 42 5f f3 ae b6 01 00 Exception.phpn...T..Qn...B_.....
1040 00 00 00 00 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 .....9...src/Composer/Repository
1060 2f 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 /StreamableRepositoryInterface.p
1080 68 70 84 01 00 00 54 d2 84 51 84 01 00 00 38 fe 01 b6 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 hp....T..Q....8...........)...sr
10a0 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 52 65 70 6f 73 69 74 c/Composer/Repository/VcsReposit
10c0 6f 72 79 2e 70 68 70 e4 1b 00 00 54 d2 84 51 e4 1b 00 00 a3 2f ca 96 b6 01 00 00 00 00 00 00 2e ory.php....T..Q...../...........
10e0 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 6c 61 74 66 ...src/Composer/Repository/Platf
1100 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 07 0b 00 00 54 d2 84 51 07 0b 00 00 f3 98 c5 ormRepository.php....T..Q.......
1120 7c b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 |........9...src/Composer/Reposi
1140 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f tory/InstalledFilesystemReposito
1160 72 79 2e 70 68 70 a3 00 00 00 54 d2 84 51 a3 00 00 00 56 0a 95 5f b6 01 00 00 00 00 00 00 2f 00 ry.php....T..Q....V.._......../.
1180 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 43 6f 6d 70 6f 73 ..src/Composer/Repository/Compos
11a0 69 74 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 c7 08 00 00 54 d2 84 51 c7 08 00 00 4e 5d aa iteRepository.php....T..Q....N].
11c0 14 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 69 .........8...src/Composer/Reposi
11e0 74 6f 72 79 2f 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 tory/InstalledRepositoryInterfac
1200 65 2e 70 68 70 87 00 00 00 54 d2 84 51 87 00 00 00 18 a3 39 70 b6 01 00 00 00 00 00 00 2e 00 00 e.php....T..Q......9p...........
1220 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 43 6f 6d 70 6f 73 65 .src/Composer/Repository/Compose
1240 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 ef 37 00 00 54 d2 84 51 ef 37 00 00 fa 6e 48 91 b6 rRepository.php.7..T..Q.7...nH..
1260 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f ......./...src/Composer/Reposito
1280 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 2e 70 68 70 71 01 00 00 54 d2 ry/Pear/DependencyInfo.phpq...T.
12a0 84 51 71 01 00 00 66 ba 54 f2 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Qq...f.T.........8...src/Compos
12c0 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 44 65 70 65 6e 64 er/Repository/Pear/PackageDepend
12e0 65 6e 63 79 50 61 72 73 65 72 2e 70 68 70 21 16 00 00 54 d2 84 51 21 16 00 00 3d cc f3 46 b6 01 encyParser.php!...T..Q!...=..F..
1300 00 00 00 00 00 00 2c 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
1320 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 49 6e 66 6f 2e 70 68 70 c4 01 00 00 54 d2 84 51 c4 01 y/Pear/ChannelInfo.php....T..Q..
1340 00 00 3a 54 2a c9 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 ..:T*.............src/Composer/R
1360 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 epository/Pear/ChannelReader.php
1380 6d 06 00 00 54 d2 84 51 6d 06 00 00 ef e5 4e 27 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f m...T..Qm.....N'........,...src/
13a0 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 50 61 63 6b 61 67 65 Composer/Repository/Pear/Package
13c0 49 6e 66 6f 2e 70 68 70 b0 03 00 00 54 d2 84 51 b0 03 00 00 9f 0d b8 0c b6 01 00 00 00 00 00 00 Info.php....T..Q................
13e0 35 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 5...src/Composer/Repository/Pear
1400 2f 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 54 d2 84 /DependencyConstraint.phpq...T..
1420 51 71 02 00 00 39 0e 17 3d b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 Qq...9..=........4...src/Compose
1440 72 2f 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 31 52 r/Repository/Pear/ChannelRest11R
1460 65 61 64 65 72 2e 70 68 70 26 09 00 00 54 d2 84 51 26 09 00 00 f2 55 62 08 b6 01 00 00 00 00 00 eader.php&...T..Q&....Ub........
1480 00 2c 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 .,...src/Composer/Repository/Pea
14a0 72 2f 52 65 6c 65 61 73 65 49 6e 66 6f 2e 70 68 70 92 01 00 00 54 d2 84 51 92 01 00 00 6f 93 8a r/ReleaseInfo.php....T..Q....o..
14c0 c3 b6 01 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 .........2...src/Composer/Reposi
14e0 74 6f 72 79 2f 50 65 61 72 2f 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 34 tory/Pear/BaseChannelReader.php4
1500 05 00 00 54 d2 84 51 34 05 00 00 44 3f 8b 85 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 ...T..Q4...D?..........4...src/C
1520 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 68 61 6e 6e 65 6c 52 omposer/Repository/Pear/ChannelR
1540 65 73 74 31 30 52 65 61 64 65 72 2e 70 68 70 c0 09 00 00 54 d2 84 51 c0 09 00 00 5d 31 0f de b6 est10Reader.php....T..Q....]1...
1560 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f ......./...src/Composer/Reposito
1580 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 d4 01 00 00 54 d2 ry/RepositoryInterface.php....T.
15a0 84 51 d4 01 00 00 f2 90 9f c9 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Q....................src/Compos
15c0 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 41 72 74 69 66 61 63 74 52 65 70 6f 73 69 74 6f 72 79 er/Repository/ArtifactRepository
15e0 2e 70 68 70 b9 07 00 00 54 d2 84 51 b9 07 00 00 34 1c 0e ec b6 01 00 00 00 00 00 00 2d 00 00 00 .php....T..Q....4...........-...
1600 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 61 63 6b 61 67 65 52 src/Composer/Repository/PackageR
1620 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 47 03 00 00 54 d2 84 51 47 03 00 00 ed 04 3a 6b b6 01 00 epository.phpG...T..QG.....:k...
1640 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 43 6f .....(...src/Composer/Package/Co
1660 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 2e 70 68 70 d8 05 00 00 54 d2 84 51 d8 05 00 00 38 47 6c mpletePackage.php....T..Q....8Gl
1680 5d 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 ]........+...src/Composer/Packag
16a0 65 2f 44 75 6d 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 72 2e 70 68 70 65 0a 00 00 54 d2 84 51 e/Dumper/ArrayDumper.phpe...T..Q
16c0 65 0a 00 00 cf cf cd fb b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 e...............7...src/Composer
16e0 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 /Package/Loader/InvalidPackageEx
1700 63 65 70 74 69 6f 6e 2e 70 68 70 45 02 00 00 54 d2 84 51 45 02 00 00 78 62 13 be b6 01 00 00 00 ception.phpE...T..QE...xb.......
1720 00 00 00 2a 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 ...*...src/Composer/Package/Load
1740 65 72 2f 4a 73 6f 6e 4c 6f 61 64 65 72 2e 70 68 70 f9 01 00 00 54 d2 84 51 f9 01 00 00 21 7e 88 er/JsonLoader.php....T..Q....!~.
1760 7b 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 50 61 63 6b 61 67 {......../...src/Composer/Packag
1780 65 2f 4c 6f 61 64 65 72 2f 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 b2 00 00 00 e/Loader/LoaderInterface.php....
17a0 54 d2 84 51 b2 00 00 00 a6 7d fa ce b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 T..Q.....}..........+...src/Comp
17c0 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 41 72 72 61 79 4c 6f 61 64 65 72 2e oser/Package/Loader/ArrayLoader.
17e0 70 68 70 a5 17 00 00 54 d2 84 51 a5 17 00 00 91 fe 00 30 b6 01 00 00 00 00 00 00 35 00 00 00 73 php....T..Q.......0........5...s
1800 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 56 61 6c 69 64 rc/Composer/Package/Loader/Valid
1820 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 30 29 00 00 54 d2 84 51 30 29 00 00 atingArrayLoader.php0)..T..Q0)..
1840 c7 5f 92 d3 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 ._..........1...src/Composer/Pac
1860 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 2e 70 68 kage/Loader/RootPackageLoader.ph
1880 70 cc 1b 00 00 54 d2 84 51 cc 1b 00 00 11 b7 e1 fe b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 p....T..Q....................src
18a0 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 63 6b 65 72 2e 70 68 70 0c 1a 00 00 /Composer/Package/Locker.php....
18c0 54 d2 84 51 0c 1a 00 00 0c 83 40 cb b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 T..Q......@.........)...src/Comp
18e0 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 oser/Package/PackageInterface.ph
1900 70 67 06 00 00 54 d2 84 51 67 06 00 00 60 9d 58 c4 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 pg...T..Qg...`.X.........$...src
1920 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 42 61 73 65 50 61 63 6b 61 67 65 2e 70 68 /Composer/Package/BasePackage.ph
1940 70 5b 0a 00 00 54 d2 84 51 5b 0a 00 00 24 08 b5 d2 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 p[...T..Q[...$...............src
1960 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 56 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f /Composer/Package/Version/Versio
1980 6e 50 61 72 73 65 72 2e 70 68 70 8b 24 00 00 54 d2 84 51 8b 24 00 00 cb fe 69 f5 b6 01 00 00 00 nParser.php.$..T..Q.$....i......
19a0 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 ...1...src/Composer/Package/Comp
19c0 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a1 01 00 00 54 d2 84 51 letePackageInterface.php....T..Q
19e0 a1 01 00 00 96 cf 32 97 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ......2.........-...src/Composer
1a00 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 /Package/RootPackageInterface.ph
1a20 70 b4 01 00 00 54 d2 84 51 b4 01 00 00 ea 71 4b d0 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 p....T..Q.....qK.........$...src
1a40 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 50 61 63 6b 61 67 65 2e 70 68 /Composer/Package/RootPackage.ph
1a60 70 6e 04 00 00 54 d2 84 51 6e 04 00 00 e1 41 43 4f b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 pn...T..Qn....ACO........3...src
1a80 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 41 72 63 68 69 /Composer/Package/Archiver/Archi
1aa0 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 17 01 00 00 54 d2 84 51 17 01 00 00 9a bc d8 1d verInterface.php....T..Q........
1ac0 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 61 67 65 ........7...src/Composer/Package
1ae0 2f 41 72 63 68 69 76 65 72 2f 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e /Archiver/ComposerExcludeFilter.
1b00 70 68 70 1f 01 00 00 54 d2 84 51 1f 01 00 00 8b 53 5a 30 b6 01 00 00 00 00 00 00 2e 00 00 00 73 php....T..Q.....SZ0............s
1b20 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 50 68 61 rc/Composer/Package/Archiver/Pha
1b40 72 41 72 63 68 69 76 65 72 2e 70 68 70 a4 03 00 00 54 d2 84 51 a4 03 00 00 b3 81 26 63 b6 01 00 rArchiver.php....T..Q......&c...
1b60 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 .....3...src/Composer/Package/Ar
1b80 63 68 69 76 65 72 2f 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 99 06 00 00 chiver/BaseExcludeFilter.php....
1ba0 54 d2 84 51 99 06 00 00 28 ee 9c e2 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 T..Q....(...........2...src/Comp
1bc0 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 47 69 74 45 78 63 6c 75 64 65 oser/Package/Archiver/GitExclude
1be0 46 69 6c 74 65 72 2e 70 68 70 77 03 00 00 54 d2 84 51 77 03 00 00 4c 67 55 bb b6 01 00 00 00 00 Filter.phpw...T..Qw...LgU.......
1c00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 ..7...src/Composer/Package/Archi
1c20 76 65 72 2f 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 2e 70 68 70 4c 04 00 ver/ArchivableFilesFinder.phpL..
1c40 00 54 d2 84 51 4c 04 00 00 e1 25 69 c4 b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d .T..QL....%i.........0...src/Com
1c60 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 41 72 63 68 69 76 65 4d 61 poser/Package/Archiver/ArchiveMa
1c80 6e 61 67 65 72 2e 70 68 70 c0 09 00 00 54 d2 84 51 c0 09 00 00 7c ba 5f 1d b6 01 00 00 00 00 00 nager.php....T..Q....|._........
1ca0 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 .1...src/Composer/Package/Archiv
1cc0 65 72 2f 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 10 05 00 00 54 d2 84 51 10 05 er/HgExcludeFilter.php....T..Q..
1ce0 00 00 40 b9 8d 2e 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 50 ..@...........)...src/Composer/P
1d00 61 63 6b 61 67 65 2f 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 68 70 42 04 00 00 54 ackage/RootAliasPackage.phpB...T
1d20 d2 84 51 42 04 00 00 ec 65 47 95 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..QB....eG.............src/Compo
1d40 73 65 72 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 2e 70 68 70 8e 13 00 00 54 d2 84 51 8e ser/Package/Package.php....T..Q.
1d60 13 00 00 5a be a6 ce 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 ...Z...........%...src/Composer/
1d80 50 61 63 6b 61 67 65 2f 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 68 70 43 12 00 00 54 d2 84 51 Package/AliasPackage.phpC...T..Q
1da0 43 12 00 00 e2 4c 80 e5 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 C....L..............src/Composer
1dc0 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 2e 70 68 70 51 05 00 00 54 d2 84 51 51 05 00 00 87 cf 39 /Package/Link.phpQ...T..QQ.....9
1de0 04 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 61 67 .........7...src/Composer/Packag
1e00 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 e/LinkConstraint/EmptyConstraint
1e20 2e 70 68 70 ea 01 00 00 54 d2 84 51 ea 01 00 00 00 ec 1b be b6 01 00 00 00 00 00 00 37 00 00 00 .php....T..Q................7...
1e40 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 72 61 src/Composer/Package/LinkConstra
1e60 69 6e 74 2f 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 67 04 00 00 54 d2 84 51 67 int/MultiConstraint.phpg...T..Qg
1e80 04 00 00 78 f5 18 38 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...x..8........9...src/Composer/
1ea0 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 56 65 72 73 69 6f 6e 43 6f Package/LinkConstraint/VersionCo
1ec0 6e 73 74 72 61 69 6e 74 2e 70 68 70 f9 05 00 00 54 d2 84 51 f9 05 00 00 29 6d cf ce b6 01 00 00 nstraint.php....T..Q....)m......
1ee0 00 00 00 00 3a 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 69 6e ....:...src/Composer/Package/Lin
1f00 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 2e 70 kConstraint/SpecificConstraint.p
1f20 68 70 71 02 00 00 54 d2 84 51 71 02 00 00 96 53 9a f8 b6 01 00 00 00 00 00 00 3f 00 00 00 73 72 hpq...T..Qq....S..........?...sr
1f40 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 72 61 69 6e c/Composer/Package/LinkConstrain
1f60 74 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 15 01 00 t/LinkConstraintInterface.php...
1f80 00 54 d2 84 51 15 01 00 00 e5 fe 87 a2 b6 01 00 00 00 00 00 00 16 00 00 00 73 72 63 2f 43 6f 6d .T..Q....................src/Com
1fa0 70 6f 73 65 72 2f 43 61 63 68 65 2e 70 68 70 ba 0b 00 00 54 d2 84 51 ba 0b 00 00 7d 1c c8 30 b6 poser/Cache.php....T..Q....}..0.
1fc0 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e .......3...src/Composer/Dependen
1fe0 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 91 01 cyResolver/PolicyInterface.php..
2000 00 00 54 d2 84 51 91 01 00 00 42 18 9f b6 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f ..T..Q....B...........+...src/Co
2020 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
2040 74 2e 70 68 70 9b 09 00 00 54 d2 84 51 9b 09 00 00 4a 79 0c c0 b6 01 00 00 00 00 00 00 36 00 00 t.php....T..Q....Jy..........6..
2060 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
2080 2f 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 01 00 00 54 d2 84 51 98 /SolverBugException.php....T..Q.
20a0 01 00 00 7f 22 71 4e b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...."qN........1...src/Composer/
20c0 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 DependencyResolver/DefaultPolicy
20e0 2e 70 68 70 7a 18 00 00 54 d2 84 51 7a 18 00 00 27 a2 54 c4 b6 01 00 00 00 00 00 00 2d 00 00 00 .phpz...T..Qz...'.T.........-...
2100 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 2f src/Composer/DependencyResolver/
2120 44 65 63 69 73 69 6f 6e 73 2e 70 68 70 51 0f 00 00 54 d2 84 51 51 0f 00 00 3f 98 ac 24 b6 01 00 Decisions.phpQ...T..QQ...?..$...
2140 00 00 00 00 00 31 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 .....1...src/Composer/Dependency
2160 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 2e 70 68 70 f0 03 00 00 54 d2 Resolver/RuleWatchNode.php....T.
2180 84 51 f0 03 00 00 5d 24 f3 b4 b6 01 00 00 00 00 00 00 3b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Q....]$..........;...src/Compos
21a0 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 50 72 6f 62 er/DependencyResolver/SolverProb
21c0 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 25 04 00 00 54 d2 84 51 25 04 00 00 54 1a ed lemsException.php%...T..Q%...T..
21e0 50 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 6e 64 P......../...src/Composer/Depend
2200 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 54 72 61 6e 73 61 63 74 69 6f 6e 2e 70 68 70 11 14 00 00 encyResolver/Transaction.php....
2220 54 d2 84 51 11 14 00 00 93 fe de 87 b6 01 00 00 00 00 00 00 40 00 00 00 73 72 63 2f 43 6f 6d 70 T..Q................@...src/Comp
2240 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 74 69 6f oser/DependencyResolver/Operatio
2260 6e 2f 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 49 02 00 00 54 d2 84 51 n/UninstallOperation.phpI...T..Q
2280 49 02 00 00 46 fb c2 c9 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 I...F...........=...src/Composer
22a0 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 55 70 /DependencyResolver/Operation/Up
22c0 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 68 03 00 00 54 d2 84 51 68 03 00 00 f6 53 d5 dateOperation.phph...T..Qh....S.
22e0 5d b6 01 00 00 00 00 00 00 49 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 ]........I...src/Composer/Depend
2300 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 72 6b 41 6c 69 61 73 encyResolver/Operation/MarkAlias
2320 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 d0 02 00 00 54 d2 84 51 d0 02 InstalledOperation.php....T..Q..
2340 00 00 78 55 5a 61 b6 01 00 00 00 00 00 00 3e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 ..xUZa........>...src/Composer/D
2360 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 49 6e 73 74 ependencyResolver/Operation/Inst
2380 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 43 02 00 00 54 d2 84 51 43 02 00 00 b4 5c f5 2a allOperation.phpC...T..QC....\.*
23a0 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 ........=...src/Composer/Depende
23c0 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 53 6f 6c 76 65 72 4f 70 65 72 ncyResolver/Operation/SolverOper
23e0 61 74 69 6f 6e 2e 70 68 70 eb 01 00 00 54 d2 84 51 eb 01 00 00 c4 a7 dd 94 b6 01 00 00 00 00 00 ation.php....T..Q...............
2400 00 4b 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 .K...src/Composer/DependencyReso
2420 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c lver/Operation/MarkAliasUninstal
2440 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 d6 02 00 00 54 d2 84 51 d6 02 00 00 5f 69 c7 ab ledOperation.php....T..Q...._i..
2460 b6 01 00 00 00 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 ........@...src/Composer/Depende
2480 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4f 70 65 72 61 74 69 6f 6e 49 ncyResolver/Operation/OperationI
24a0 6e 74 65 72 66 61 63 65 2e 70 68 70 d3 00 00 00 54 d2 84 51 d3 00 00 00 d9 e2 26 e4 b6 01 00 00 nterface.php....T..Q......&.....
24c0 00 00 00 00 28 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 ....(...src/Composer/DependencyR
24e0 65 73 6f 6c 76 65 72 2f 50 6f 6f 6c 2e 70 68 70 20 26 00 00 54 d2 84 51 20 26 00 00 a5 f5 17 e4 esolver/Pool.php.&..T..Q.&......
2500 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 44 65 70 65 6e 64 65 ........(...src/Composer/Depende
2520 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 2e 70 68 70 be 14 00 00 54 d2 84 51 be 14 00 00 ncyResolver/Rule.php....T..Q....
2540 7f 05 bc 65 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 44 65 70 ...e........4...src/Composer/Dep
2560 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 endencyResolver/RuleSetGenerator
2580 2e 70 68 70 4f 15 00 00 54 d2 84 51 4f 15 00 00 5f 3c a0 3d b6 01 00 00 00 00 00 00 2f 00 00 00 .phpO...T..QO..._<.=......../...
25a0 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 2f src/Composer/DependencyResolver/
25c0 44 65 62 75 67 53 6f 6c 76 65 72 2e 70 68 70 89 06 00 00 54 d2 84 51 89 06 00 00 a3 d2 ad 85 b6 DebugSolver.php....T..Q.........
25e0 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e .......3...src/Composer/Dependen
2600 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 2e 70 68 70 14 06 cyResolver/RuleSetIterator.php..
2620 00 00 54 d2 84 51 14 06 00 00 7d f5 c7 f9 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f ..T..Q....}...........2...src/Co
2640 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 57 61 mposer/DependencyResolver/RuleWa
2660 74 63 68 43 68 61 69 6e 2e 70 68 70 69 01 00 00 54 d2 84 51 69 01 00 00 68 ef 9a 2c b6 01 00 00 tchChain.phpi...T..Qi...h..,....
2680 00 00 00 00 2a 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 ....*...src/Composer/DependencyR
26a0 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 2e 70 68 70 b9 35 00 00 54 d2 84 51 b9 35 00 00 a6 c2 esolver/Solver.php.5..T..Q.5....
26c0 91 92 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 65 70 65 6e ..........+...src/Composer/Depen
26e0 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 65 71 75 65 73 74 2e 70 68 70 89 04 00 00 54 d2 84 dencyResolver/Request.php....T..
2700 51 89 04 00 00 31 1a b2 49 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 Q....1..I........+...src/Compose
2720 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 72 6f 62 6c 65 6d 2e 70 68 70 r/DependencyResolver/Problem.php
2740 6e 0f 00 00 54 d2 84 51 6e 0f 00 00 5e aa 00 8e b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f n...T..Qn...^...........2...src/
2760 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 75 6c 65 Composer/DependencyResolver/Rule
2780 57 61 74 63 68 47 72 61 70 68 2e 70 68 70 e1 06 00 00 54 d2 84 51 e1 06 00 00 89 72 f4 76 b6 01 WatchGraph.php....T..Q.....r.v..
27a0 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 6e 66 69 67 2f 43 6f ......-...src/Composer/Config/Co
27c0 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 8d 01 00 00 54 d2 84 51 8d nfigSourceInterface.php....T..Q.
27e0 01 00 00 21 94 02 70 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 ...!..p........(...src/Composer/
2800 43 6f 6e 66 69 67 2f 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 2e 70 68 70 06 08 00 00 54 Config/JsonConfigSource.php....T
2820 d2 84 51 06 08 00 00 eb cb da f3 b6 01 00 00 00 00 00 00 18 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..Q....................src/Compo
2840 73 65 72 2f 46 61 63 74 6f 72 79 2e 70 68 70 5a 24 00 00 54 d2 84 51 5a 24 00 00 da d9 5e 0e b6 ser/Factory.phpZ$..T..QZ$....^..
2860 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 69 6c ...........src/Composer/Util/Fil
2880 65 73 79 73 74 65 6d 2e 70 68 70 df 19 00 00 54 d2 84 51 df 19 00 00 9f 08 8a e3 b6 01 00 00 00 esystem.php....T..Q.............
28a0 00 00 00 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 47 69 74 48 75 62 2e .......src/Composer/Util/GitHub.
28c0 70 68 70 e3 09 00 00 54 d2 84 51 e3 09 00 00 d5 4b fc c5 b6 01 00 00 00 00 00 00 25 00 00 00 73 php....T..Q.....K..........%...s
28e0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 rc/Composer/Util/ProcessExecutor
2900 2e 70 68 70 ad 05 00 00 54 d2 84 51 ad 05 00 00 2d 8b d6 f2 b6 01 00 00 00 00 00 00 26 00 00 00 .php....T..Q....-...........&...
2920 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 src/Composer/Util/RemoteFilesyst
2940 65 6d 2e 70 68 70 e7 1a 00 00 54 d2 84 51 e7 1a 00 00 07 56 6f 3d b6 01 00 00 00 00 00 00 2a 00 em.php....T..Q.....Vo=........*.
2960 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 74 72 65 61 6d 43 6f 6e 74 65 78 ..src/Composer/Util/StreamContex
2980 74 46 61 63 74 6f 72 79 2e 70 68 70 24 09 00 00 54 d2 84 51 24 09 00 00 6b 84 bb 3a b6 01 00 00 tFactory.php$...T..Q$...k..:....
29a0 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 43 6f 6e 66 69 67 ....%...src/Composer/Util/Config
29c0 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 87 0a 00 00 54 d2 84 51 87 0a 00 00 72 38 eb e8 b6 01 00 Validator.php....T..Q....r8.....
29e0 00 00 00 00 00 22 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 45 72 72 6f 72 ....."...src/Composer/Util/Error
2a00 48 61 6e 64 6c 65 72 2e 70 68 70 14 02 00 00 54 d2 84 51 14 02 00 00 b4 40 85 e6 b6 01 00 00 00 Handler.php....T..Q.....@.......
2a20 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 70 64 78 4c 69 63 ...+...src/Composer/Util/SpdxLic
2a40 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 2e 70 68 70 36 0a 00 00 54 d2 84 51 36 0a 00 00 c4 36 enseIdentifier.php6...T..Q6....6
2a60 bb 6f 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 55 74 69 6c 2f .o............src/Composer/Util/
2a80 53 76 6e 2e 70 68 70 59 0c 00 00 54 d2 84 51 59 0c 00 00 d3 ca 1e e2 b6 01 00 00 00 00 00 00 19 Svn.phpY...T..QY................
2aa0 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 70 6f 73 65 72 2e 70 68 70 c6 07 00 00 ...src/Composer/Composer.php....
2ac0 54 d2 84 51 c6 07 00 00 0e 8a 91 43 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 T..Q.......C........%...src/Comp
2ae0 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 2e 70 68 70 ab 1b 00 oser/Json/JsonManipulator.php...
2b00 00 54 d2 84 51 ab 1b 00 00 5f e2 d8 d6 b6 01 00 00 00 00 00 00 1e 00 00 00 73 72 63 2f 43 6f 6d .T..Q...._...............src/Com
2b20 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 69 6c 65 2e 70 68 70 ef 13 00 00 54 d2 84 51 ef poser/Json/JsonFile.php....T..Q.
2b40 13 00 00 c3 4a f5 df 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 ....J..........-...src/Composer/
2b60 4a 73 6f 6e 2f 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 Json/JsonValidationException.php
2b80 32 01 00 00 54 d2 84 51 32 01 00 00 39 62 84 31 b6 01 00 00 00 00 00 00 17 00 00 00 73 72 63 2f 2...T..Q2...9b.1............src/
2ba0 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2e 70 68 70 b5 11 00 00 54 d2 84 51 b5 11 00 00 1c Composer/Config.php....T..Q.....
2bc0 b1 0f 3e b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 ..>............src/Composer/Scri
2be0 70 74 2f 45 76 65 6e 74 2e 70 68 70 75 02 00 00 54 d2 84 51 75 02 00 00 15 15 37 b9 b6 01 00 00 pt/Event.phpu...T..Qu.....7.....
2c00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 53 63 72 69 ....$...src/Composer/Script/Scri
2c20 70 74 45 76 65 6e 74 73 2e 70 68 70 ba 02 00 00 54 d2 84 51 ba 02 00 00 8f 5d 12 af b6 01 00 00 ptEvents.php....T..Q.....]......
2c40 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 43 6f 6d 6d ....$...src/Composer/Script/Comm
2c60 61 6e 64 45 76 65 6e 74 2e 70 68 70 6f 00 00 00 54 d2 84 51 6f 00 00 00 0d b7 14 79 b6 01 00 00 andEvent.phpo...T..Qo......y....
2c80 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 50 61 63 6b ....$...src/Composer/Script/Pack
2ca0 61 67 65 45 76 65 6e 74 2e 70 68 70 f7 01 00 00 54 d2 84 51 f7 01 00 00 61 16 b1 09 b6 01 00 00 ageEvent.php....T..Q....a.......
2cc0 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e ....'...src/Composer/Script/Even
2ce0 74 44 69 73 70 61 74 63 68 65 72 2e 70 68 70 58 0c 00 00 54 d2 84 51 58 0c 00 00 56 2e 99 cb b6 tDispatcher.phpX...T..QX...V....
2d00 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 .......(...src/Composer/Installe
2d20 72 2f 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 35 05 00 00 54 d2 84 51 35 05 00 00 b1 r/NoopInstaller.php5...T..Q5....
2d40 38 71 61 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 49 6e 73 74 8qa......../...src/Composer/Inst
2d60 61 6c 6c 65 72 2f 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 a6 04 aller/MetapackageInstaller.php..
2d80 00 00 54 d2 84 51 a6 04 00 00 ab a3 66 ce b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f ..T..Q......f.........(...src/Co
2da0 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 2e 70 mposer/Installer/PearInstaller.p
2dc0 68 70 07 11 00 00 54 d2 84 51 07 11 00 00 1f 57 80 75 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 hp....T..Q.....W.u........+...sr
2de0 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 72 6f 6a 65 63 74 49 6e 73 74 c/Composer/Installer/ProjectInst
2e00 61 6c 6c 65 72 2e 70 68 70 e1 05 00 00 54 d2 84 51 e1 05 00 00 9b 51 1e 05 b6 01 00 00 00 00 00 aller.php....T..Q.....Q.........
2e20 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 4c 69 62 72 .+...src/Composer/Installer/Libr
2e40 61 72 79 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 2e 1a 00 00 54 d2 84 51 2e 1a 00 00 b1 e7 05 16 aryInstaller.php....T..Q........
2e60 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c ............src/Composer/Install
2e80 65 72 2f 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2e 70 68 70 3b 14 00 00 54 d2 er/InstallationManager.php;...T.
2ea0 84 51 3b 14 00 00 0f ae 52 d3 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Q;.....R.........-...src/Compos
2ec0 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 2e er/Installer/InstallerInterface.
2ee0 70 68 70 c5 02 00 00 54 d2 84 51 c5 02 00 00 48 53 93 a1 b6 01 00 00 00 00 00 00 2d 00 00 00 73 php....T..Q....HS..........-...s
2f00 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
2f20 6e 73 74 61 6c 6c 65 72 2e 70 68 70 01 0a 00 00 54 d2 84 51 01 0a 00 00 d8 6d ed 0a b6 01 00 00 nstaller.php....T..Q.....m......
2f40 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 ....$...src/Composer/Console/App
2f60 6c 69 63 61 74 69 6f 6e 2e 70 68 70 47 15 00 00 54 d2 84 51 47 15 00 00 d8 84 57 d2 b6 01 00 00 lication.phpG...T..QG.....W.....
2f80 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 73 6f 6c 65 2f 48 74 6d ....,...src/Composer/Console/Htm
2fa0 6c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 d0 05 00 00 54 d2 84 51 d0 05 00 00 lOutputFormatter.php....T..Q....
2fc0 dd 46 d7 ea 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 74 .F..........+...src/Composer/Aut
2fe0 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 4f 37 00 00 54 oload/AutoloadGenerator.phpO7..T
3000 d2 84 51 4f 37 00 00 68 ae 6d 86 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..QO7..h.m.........+...src/Compo
3020 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 70 ser/Autoload/ClassMapGenerator.p
3040 68 70 d9 0a 00 00 54 d2 84 51 d9 0a 00 00 1b 34 26 9e b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 hp....T..Q.....4&.............sr
3060 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 9f 5b 00 00 54 d2 84 51 c/Composer/Installer.php.[..T..Q
3080 9f 5b 00 00 e7 4c a7 7a b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .[...L.z........%...src/Composer
30a0 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 cb 19 00 00 54 d2 84 /Autoload/ClassLoader.php....T..
30c0 51 cb 19 00 00 b5 4a 52 da b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 73 70 64 78 2d 69 64 Q.....JR.............res/spdx-id
30e0 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 69 0b 00 00 54 d2 84 51 69 0b 00 00 e6 97 52 1a b6 01 00 entifier.jsoni...T..Qi.....R....
3100 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 6f .........res/composer-schema.jso
3120 6e 1b 3d 00 00 54 d2 84 51 1b 3d 00 00 46 24 2a 6e b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 n.=..T..Q.=..F$*n............src
3140 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 00 /Composer/IO/hiddeninput.exe.$..
3160 54 d2 84 51 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 73 T..Q.$.....v........?...vendor/s
3180 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 74 ymfony/process/Symfony/Component
31a0 2f 50 72 6f 63 65 73 73 2f 50 68 70 50 72 6f 63 65 73 73 2e 70 68 70 0f 03 00 00 54 d2 84 51 0f /Process/PhpProcess.php....T..Q.
31c0 03 00 00 38 5a d4 b7 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 ...8Z..........E...vendor/symfon
31e0 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 63 y/process/Symfony/Component/Proc
3200 65 73 73 2f 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 b3 04 00 00 54 d2 84 51 ess/ExecutableFinder.php....T..Q
3220 b3 04 00 00 09 4a ee 9f b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .....J..........<...vendor/symfo
3240 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
3260 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 7d 44 00 00 54 d2 84 51 7d 44 00 00 51 6e 38 be cess/Process.php}D..T..Q}D..Qn8.
3280 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 65 ........C...vendor/symfony/proce
32a0 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 6f ss/Symfony/Component/Process/Pro
32c0 63 65 73 73 42 75 69 6c 64 65 72 2e 70 68 70 ed 08 00 00 54 d2 84 51 ed 08 00 00 85 e0 82 90 b6 cessBuilder.php....T..Q.........
32e0 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 .......A...vendor/symfony/proces
3300 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 6f 63 s/Symfony/Component/Process/Proc
3320 65 73 73 55 74 69 6c 73 2e 70 68 70 47 02 00 00 54 d2 84 51 47 02 00 00 53 38 7d ad b6 01 00 00 essUtils.phpG...T..QG...S8}.....
3340 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 73 73 2f 53 ....Q...vendor/symfony/process/S
3360 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 65 70 74 69 ymfony/Component/Process/Excepti
3380 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 00 54 d2 84 on/ExceptionInterface.phpf...T..
33a0 51 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 73 79 6d 66 Qf...].>T........O...vendor/symf
33c0 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
33e0 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 74 69 6f 6e ocess/Exception/RuntimeException
3400 2e 70 68 70 98 00 00 00 54 d2 84 51 98 00 00 00 a2 1b d8 3a b6 01 00 00 00 00 00 00 4d 00 00 00 .php....T..Q.......:........M...
3420 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 6e 79 2f 43 vendor/symfony/process/Symfony/C
3440 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 4c 6f 67 69 63 omponent/Process/Exception/Logic
3460 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 94 00 00 00 54 d2 84 51 94 00 00 00 20 b3 e3 f1 b6 01 00 Exception.php....T..Q...........
3480 00 00 00 00 00 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 .....U...vendor/symfony/process/
34a0 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 65 70 74 Symfony/Component/Process/Except
34c0 69 6f 6e 2f 50 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 ed 02 ion/ProcessFailedException.php..
34e0 00 00 54 d2 84 51 ed 02 00 00 7c ee e7 aa b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 ..T..Q....|...........W...vendor
3500 2f 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 /symfony/process/Symfony/Compone
3520 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 41 72 67 75 nt/Process/Exception/InvalidArgu
3540 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 a8 00 00 00 54 d2 84 51 a8 00 00 00 d0 c0 2b mentException.php....T..Q......+
3560 5f b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 _........H...vendor/symfony/proc
3580 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 68 ess/Symfony/Component/Process/Ph
35a0 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 9b 02 00 00 54 d2 84 51 9b 02 00 pExecutableFinder.php....T..Q...
35c0 00 b4 a5 44 45 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ...DE........H...vendor/symfony/
35e0 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 6c console/Symfony/Component/Consol
3600 65 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 43 6f 6d 6d 61 6e 64 2e 70 68 70 0a 07 00 00 54 d2 84 e/Command/HelpCommand.php....T..
3620 51 0a 07 00 00 b9 37 31 58 b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 Q.....71X........D...vendor/symf
3640 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
3660 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 5f 18 00 00 54 d2 84 nsole/Command/Command.php_...T..
3680 51 5f 18 00 00 c4 ee 21 aa b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 Q_.....!.........H...vendor/symf
36a0 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
36c0 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 4c 69 73 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 57 07 00 nsole/Command/ListCommand.phpW..
36e0 00 54 d2 84 51 57 07 00 00 ef 84 bc 8c b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f .T..QW...............M...vendor/
3700 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
3720 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 72 2f 41 70 70 6c 69 63 61 74 69 6f 6e 54 65 73 74 t/Console/Tester/ApplicationTest
3740 65 72 2e 70 68 70 67 05 00 00 54 d2 84 51 67 05 00 00 37 2d 47 c6 b6 01 00 00 00 00 00 00 49 00 er.phpg...T..Qg...7-G.........I.
3760 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
3780 2f 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 43 6f 6d 6d 61 6e /Component/Console/Tester/Comman
37a0 64 54 65 73 74 65 72 2e 70 68 70 ea 04 00 00 54 d2 84 51 ea 04 00 00 53 a0 d8 6d b6 01 00 00 00 dTester.php....T..Q....S..m.....
37c0 00 00 00 58 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 ...X...vendor/symfony/console/Sy
37e0 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 74 74 65 mfony/Component/Console/Formatte
3800 72 2f 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 2e 70 68 70 08 r/OutputFormatterStyleStack.php.
3820 05 00 00 54 d2 84 51 08 05 00 00 79 08 49 27 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f ...T..Q....y.I'........S...vendo
3840 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
3860 65 6e 74 2f 43 6f 6e 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 ent/Console/Formatter/OutputForm
3880 61 74 74 65 72 53 74 79 6c 65 2e 70 68 70 55 0c 00 00 54 d2 84 51 55 0c 00 00 7a a8 dc ed b6 01 atterStyle.phpU...T..QU...z.....
38a0 00 00 00 00 00 00 5c 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 ......\...vendor/symfony/console
38c0 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
38e0 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 49 6e 74 65 72 66 61 tter/OutputFormatterStyleInterfa
3900 63 65 2e 70 68 70 8e 01 00 00 54 d2 84 51 8e 01 00 00 f6 eb c4 3d b6 01 00 00 00 00 00 00 4e 00 ce.php....T..Q.......=........N.
3920 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
3940 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 74 /Component/Console/Formatter/Out
3960 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 fd 0b 00 00 54 d2 84 51 fd 0b 00 00 3e 57 c8 fe putFormatter.php....T..Q....>W..
3980 b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........W...vendor/symfony/conso
39a0 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 46 6f 72 le/Symfony/Component/Console/For
39c0 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 2e matter/OutputFormatterInterface.
39e0 70 68 70 98 01 00 00 54 d2 84 51 98 01 00 00 33 6c 7e b4 b6 01 00 00 00 00 00 00 40 00 00 00 76 php....T..Q....3l~.........@...v
3a00 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 43 6f endor/symfony/console/Symfony/Co
3a20 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 ed mponent/Console/Application.php.
3a40 4b 00 00 54 d2 84 51 ed 4b 00 00 69 eb 7a 78 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f K..T..Q.K..i.zx........H...vendo
3a60 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
3a80 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 2e ent/Console/Input/InputArgument.
3aa0 70 68 70 9e 05 00 00 54 d2 84 51 9e 05 00 00 4b 5d ec 69 b6 01 00 00 00 00 00 00 40 00 00 00 76 php....T..Q....K].i........@...v
3ac0 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 43 6f endor/symfony/console/Symfony/Co
3ae0 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 2e 70 68 70 34 mponent/Console/Input/Input.php4
3b00 0a 00 00 54 d2 84 51 34 0a 00 00 96 8e dd ae b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f ...T..Q4...............F...vendo
3b20 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
3b40 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 53 74 72 69 6e 67 49 6e 70 75 74 2e 70 68 ent/Console/Input/StringInput.ph
3b60 70 8f 05 00 00 54 d2 84 51 8f 05 00 00 c4 5d 74 68 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e p....T..Q.....]th........F...ven
3b80 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
3ba0 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 4f 70 74 69 6f 6e 2e onent/Console/Input/InputOption.
3bc0 70 68 70 aa 0b 00 00 54 d2 84 51 aa 0b 00 00 e2 f5 fe 31 b6 01 00 00 00 00 00 00 44 00 00 00 76 php....T..Q.......1........D...v
3be0 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 43 6f endor/symfony/console/Symfony/Co
3c00 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 41 72 67 76 49 6e 70 75 74 2e mponent/Console/Input/ArgvInput.
3c20 70 68 70 be 12 00 00 54 d2 84 51 be 12 00 00 07 07 16 7e b6 01 00 00 00 00 00 00 49 00 00 00 76 php....T..Q.......~........I...v
3c40 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 43 6f endor/symfony/console/Symfony/Co
3c60 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 49 6e 74 65 72 mponent/Console/Input/InputInter
3c80 66 61 63 65 2e 70 68 70 20 03 00 00 54 d2 84 51 20 03 00 00 39 94 f8 c7 b6 01 00 00 00 00 00 00 face.php....T..Q....9...........
3ca0 45 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 E...vendor/symfony/console/Symfo
3cc0 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 72 61 79 ny/Component/Console/Input/Array
3ce0 49 6e 70 75 74 2e 70 68 70 f7 09 00 00 54 d2 84 51 f7 09 00 00 e0 22 18 39 b6 01 00 00 00 00 00 Input.php....T..Q.....".9.......
3d00 00 4a 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 .J...vendor/symfony/console/Symf
3d20 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
3d40 74 44 65 66 69 6e 69 74 69 6f 6e 2e 70 68 70 ef 15 00 00 54 d2 84 51 ef 15 00 00 49 20 01 a6 b6 tDefinition.php....T..Q....I....
3d60 01 00 00 00 00 00 00 3a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......:...vendor/symfony/consol
3d80 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 53 68 65 6c e/Symfony/Component/Console/Shel
3da0 6c 2e 70 68 70 74 0f 00 00 54 d2 84 51 74 0f 00 00 02 c2 d7 2d b6 01 00 00 00 00 00 00 42 00 00 l.phpt...T..Qt......-........B..
3dc0 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/
3de0 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 4f 75 74 70 75 74 2e Component/Console/Output/Output.
3e00 70 68 70 78 07 00 00 54 d2 84 51 78 07 00 00 c6 02 19 a4 b6 01 00 00 00 00 00 00 46 00 00 00 76 phpx...T..Qx...............F...v
3e20 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 43 6f endor/symfony/console/Symfony/Co
3e40 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4e 75 6c 6c 4f 75 74 70 75 mponent/Console/Output/NullOutpu
3e60 74 2e 70 68 70 a3 00 00 00 54 d2 84 51 a3 00 00 00 92 c7 a2 8e b6 01 00 00 00 00 00 00 52 00 00 t.php....T..Q................R..
3e80 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/
3ea0 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 65 Component/Console/Output/Console
3ec0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 15 01 00 00 54 d2 84 51 15 01 00 00 0e OutputInterface.php....T..Q.....
3ee0 8d c3 06 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f ...........H...vendor/symfony/co
3f00 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/
3f20 4f 75 74 70 75 74 2f 53 74 72 65 61 6d 4f 75 74 70 75 74 2e 70 68 70 b0 04 00 00 54 d2 84 51 b0 Output/StreamOutput.php....T..Q.
3f40 04 00 00 2e 66 07 1d 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 ....f..........K...vendor/symfon
3f60 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
3f80 6f 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 23 03 ole/Output/OutputInterface.php#.
3fa0 00 00 54 d2 84 51 23 03 00 00 f4 4c 00 59 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 ..T..Q#....L.Y........I...vendor
3fc0 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
3fe0 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 2e nt/Console/Output/ConsoleOutput.
4000 70 68 70 3b 05 00 00 54 d2 84 51 3b 05 00 00 50 46 12 2c b6 01 00 00 00 00 00 00 53 00 00 00 76 php;...T..Q;...PF.,........S...v
4020 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 43 6f endor/symfony/console/Symfony/Co
4040 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 63 72 mponent/Console/Descriptor/Descr
4060 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ad 00 00 00 54 d2 84 51 ad 00 00 00 99 06 iptorInterface.php....T..Q......
4080 87 65 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 63 6f 6e .e........N...vendor/symfony/con
40a0 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 44 sole/Symfony/Component/Console/D
40c0 65 73 63 72 69 70 74 6f 72 2f 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 69 16 00 00 escriptor/TextDescriptor.phpi...
40e0 54 d2 84 51 69 16 00 00 b5 a0 c8 c8 b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 T..Qi...............M...vendor/s
4100 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 74 ymfony/console/Symfony/Component
4120 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 58 6d 6c 44 65 73 63 72 69 70 74 6f /Console/Descriptor/XmlDescripto
4140 72 2e 70 68 70 34 1a 00 00 54 d2 84 51 34 1a 00 00 95 c5 5b 19 b6 01 00 00 00 00 00 00 52 00 00 r.php4...T..Q4.....[.........R..
4160 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/
4180 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 4d 61 72 Component/Console/Descriptor/Mar
41a0 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 9c 0d 00 00 54 d2 84 51 9c 0d 00 00 92 kdownDescriptor.php....T..Q.....
41c0 29 17 f2 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 63 6f )..........V...vendor/symfony/co
41e0 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/
4200 44 65 73 63 72 69 70 74 6f 72 2f 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f Descriptor/ApplicationDescriptio
4220 6e 2e 70 68 70 f7 07 00 00 54 d2 84 51 f7 07 00 00 29 49 df f0 b6 01 00 00 00 00 00 00 4a 00 00 n.php....T..Q....)I..........J..
4240 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/
4260 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 Component/Console/Descriptor/Des
4280 63 72 69 70 74 6f 72 2e 70 68 70 1d 06 00 00 54 d2 84 51 1d 06 00 00 0a 6e a7 e1 b6 01 00 00 00 criptor.php....T..Q.....n.......
42a0 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 2f 53 79 ...N...vendor/symfony/console/Sy
42c0 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 mfony/Component/Console/Descript
42e0 6f 72 2f 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 2a 0c 00 00 54 d2 84 51 2a 0c 00 or/JsonDescriptor.php*...T..Q*..
4300 00 d3 0f 45 16 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 ...E.........K...vendor/symfony/
4320 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 6c console/Symfony/Component/Consol
4340 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 00 e/Helper/HelperInterface.php....
4360 54 d2 84 51 ef 00 00 00 3d 65 1b 0c b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 T..Q....=e..........G...vendor/s
4380 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 74 ymfony/console/Symfony/Component
43a0 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 54 61 62 6c 65 48 65 6c 70 65 72 2e 70 68 70 fa /Console/Helper/TableHelper.php.
43c0 14 00 00 54 d2 84 51 fa 14 00 00 c4 5d dd 37 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f ...T..Q.....].7........L...vendo
43e0 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
4400 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 44 65 73 63 72 69 70 74 6f 72 48 65 6c ent/Console/Helper/DescriptorHel
4420 70 65 72 2e 70 68 70 9a 06 00 00 54 d2 84 51 9a 06 00 00 8f 87 17 99 b6 01 00 00 00 00 00 00 4b per.php....T..Q................K
4440 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
4460 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 46 6f 72 6d 61 y/Component/Console/Helper/Forma
4480 74 74 65 72 48 65 6c 70 65 72 2e 70 68 70 1e 04 00 00 54 d2 84 51 1e 04 00 00 9e 49 82 81 b6 01 tterHelper.php....T..Q.....I....
44a0 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 6c 65 ......E...vendor/symfony/console
44c0 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 65 6c 70 65 /Symfony/Component/Console/Helpe
44e0 72 2f 48 65 6c 70 65 72 53 65 74 2e 70 68 70 d3 03 00 00 54 d2 84 51 d3 03 00 00 98 5e 39 74 b6 r/HelperSet.php....T..Q.....^9t.
4500 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......H...vendor/symfony/consol
4520 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 65 6c 70 e/Symfony/Component/Console/Help
4540 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 67 1b 00 00 54 d2 84 51 67 1b 00 00 fb er/DialogHelper.phpg...T..Qg....
4560 70 49 c8 b6 01 00 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 pI.........B...vendor/symfony/co
4580 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/
45a0 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 2e 70 68 70 22 02 00 00 54 d2 84 51 22 02 00 00 17 a8 e4 Helper/Helper.php"...T..Q"......
45c0 55 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 U........J...vendor/symfony/cons
45e0 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 65 ole/Symfony/Component/Console/He
4600 6c 70 65 72 2f 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 2e 70 68 70 04 19 00 00 54 d2 84 51 04 lper/ProgressHelper.php....T..Q.
4620 19 00 00 aa 7d 58 c0 b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ....}X.........G...vendor/symfon
4640 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
4660 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 2e 70 68 70 c5 02 00 00 54 d2 ole/Event/ConsoleEvent.php....T.
4680 84 51 c5 02 00 00 d2 78 db 5c b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .Q.....x.\........P...vendor/sym
46a0 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
46c0 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 onsole/Event/ConsoleTerminateEve
46e0 6e 74 2e 70 68 70 74 02 00 00 54 d2 84 51 74 02 00 00 f6 94 7e d2 b6 01 00 00 00 00 00 00 53 00 nt.phpt...T..Qt.....~.........S.
4700 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
4720 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 /Component/Console/Event/Console
4740 46 6f 72 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 2e 70 68 70 0f 03 00 00 54 d2 84 51 0f 03 00 ForExceptionEvent.php....T..Q...
4760 00 90 fc 6a c0 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 ...j.........N...vendor/symfony/
4780 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 6c console/Symfony/Component/Consol
47a0 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 0e e/Event/ConsoleCommandEvent.php.
47c0 01 00 00 54 d2 84 51 0e 01 00 00 86 49 3d e6 b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f ...T..Q.....I=.........B...vendo
47e0 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
4800 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 2e 70 68 70 e9 00 00 ent/Console/ConsoleEvents.php...
4820 00 54 d2 84 51 e9 00 00 00 52 db d4 65 b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 6f 72 2f .T..Q....R..e........9...vendor/
4840 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 74 symfony/finder/Symfony/Component
4860 2f 46 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 eb 1f 00 00 54 d2 84 51 eb 1f 00 00 41 a0 /Finder/Finder.php....T..Q....A.
4880 3f e9 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e ?.........@...vendor/symfony/fin
48a0 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 53 68 65 der/Symfony/Component/Finder/She
48c0 6c 6c 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 c1 08 00 00 54 d2 84 51 c1 08 00 00 63 c0 76 99 b6 01 ll/Command.php....T..Q....c.v...
48e0 00 00 00 00 00 00 3e 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 ......>...vendor/symfony/finder/
4900 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 53 68 65 6c 6c 2f 53 Symfony/Component/Finder/Shell/S
4920 68 65 6c 6c 2e 70 68 70 a2 03 00 00 54 d2 84 51 a2 03 00 00 44 85 41 0a b6 01 00 00 00 00 00 00 hell.php....T..Q....D.A.........
4940 43 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 79 6d 66 6f 6e C...vendor/symfony/finder/Symfon
4960 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 52 65 y/Component/Finder/Expression/Re
4980 67 65 78 2e 70 68 70 5a 0e 00 00 54 d2 84 51 5a 0e 00 00 40 81 b2 7e b6 01 00 00 00 00 00 00 42 gex.phpZ...T..QZ...@..~........B
49a0 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 79 6d 66 6f 6e 79 ...vendor/symfony/finder/Symfony
49c0 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 47 6c 6f /Component/Finder/Expression/Glo
49e0 62 2e 70 68 70 a1 07 00 00 54 d2 84 51 a1 07 00 00 20 20 56 bf b6 01 00 00 00 00 00 00 48 00 00 b.php....T..Q......V.........H..
4a00 00 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 .vendor/symfony/finder/Symfony/C
4a20 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 45 78 70 72 65 omponent/Finder/Expression/Expre
4a40 73 73 69 6f 6e 2e 70 68 70 7b 05 00 00 54 d2 84 51 7b 05 00 00 27 c8 bc 10 b6 01 00 00 00 00 00 ssion.php{...T..Q{...'..........
4a60 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 79 6d 66 6f .L...vendor/symfony/finder/Symfo
4a80 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 56 ny/Component/Finder/Expression/V
4aa0 61 6c 75 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 3b 01 00 00 54 d2 84 51 3b 01 00 00 0b ee e3 alueInterface.php;...T..Q;......
4ac0 d3 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 66 69 6e 64 .........K...vendor/symfony/find
4ae0 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 41 64 61 70 er/Symfony/Component/Finder/Adap
4b00 74 65 72 2f 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 73 03 00 00 54 d2 84 51 ter/AdapterInterface.phps...T..Q
4b20 73 03 00 00 72 95 6a 5d b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f s...r.j]........I...vendor/symfo
4b40 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 69 6e 64 ny/finder/Symfony/Component/Find
4b60 65 72 2f 41 64 61 70 74 65 72 2f 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 72 06 00 er/Adapter/BsdFindAdapter.phpr..
4b80 00 54 d2 84 51 72 06 00 00 d3 55 ec 6d b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f .T..Qr....U.m........I...vendor/
4ba0 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 74 symfony/finder/Symfony/Component
4bc0 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 2e 70 /Finder/Adapter/GnuFindAdapter.p
4be0 68 70 55 06 00 00 54 d2 84 51 55 06 00 00 24 8d e7 9f b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 hpU...T..QU...$...........J...ve
4c00 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 70 ndor/symfony/finder/Symfony/Comp
4c20 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 41 62 73 74 72 61 63 74 41 64 61 onent/Finder/Adapter/AbstractAda
4c40 70 74 65 72 2e 70 68 70 01 0a 00 00 54 d2 84 51 01 0a 00 00 f3 4a 18 82 b6 01 00 00 00 00 00 00 pter.php....T..Q.....J..........
4c60 4e 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 79 6d 66 6f 6e N...vendor/symfony/finder/Symfon
4c80 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 41 62 73 74 72 y/Component/Finder/Adapter/Abstr
4ca0 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 44 18 00 00 54 d2 84 51 44 18 00 00 c9 c8 actFindAdapter.phpD...T..QD.....
4cc0 3d 46 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 66 69 6e =F........E...vendor/symfony/fin
4ce0 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 41 64 61 der/Symfony/Component/Finder/Ada
4d00 70 74 65 72 2f 50 68 70 41 64 61 70 74 65 72 2e 70 68 70 0e 07 00 00 54 d2 84 51 0e 07 00 00 a6 pter/PhpAdapter.php....T..Q.....
4d20 e0 b5 38 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 ..8........7...vendor/symfony/fi
4d40 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 47 6c nder/Symfony/Component/Finder/Gl
4d60 6f 62 2e 70 68 70 0d 05 00 00 54 d2 84 51 0d 05 00 00 7a 9d f8 0a b6 01 00 00 00 00 00 00 54 00 ob.php....T..Q....z...........T.
4d80 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 79 6d 66 6f 6e 79 2f ..vendor/symfony/finder/Symfony/
4da0 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 2f 44 65 70 74 68 52 Component/Finder/Iterator/DepthR
4dc0 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 f0 01 00 00 54 d2 84 51 f0 01 angeFilterIterator.php....T..Q..
4de0 00 00 df 30 99 04 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 ...0..........L...vendor/symfony
4e00 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 69 6e 64 65 72 /finder/Symfony/Component/Finder
4e20 2f 49 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 de 05 /Iterator/SortableIterator.php..
4e40 00 00 54 d2 84 51 de 05 00 00 92 1a 94 c7 b6 01 00 00 00 00 00 00 55 00 00 00 76 65 6e 64 6f 72 ..T..Q................U...vendor
4e60 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
4e80 74 2f 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 t/Finder/Iterator/FilecontentFil
4ea0 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 23 03 00 00 54 d2 84 51 23 03 00 00 da 5f 56 c7 b6 terIterator.php#...T..Q#...._V..
4ec0 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 .......M...vendor/symfony/finder
4ee0 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 74 /Symfony/Component/Finder/Iterat
4f00 6f 72 2f 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 2e 70 68 70 8d 05 00 00 54 d2 84 51 or/FilePathsIterator.php....T..Q
4f20 8d 05 00 00 fd f2 e4 51 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .......Q........S...vendor/symfo
4f40 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 69 6e 64 ny/finder/Symfony/Component/Find
4f60 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 er/Iterator/SizeRangeFilterItera
4f80 74 6f 72 2e 70 68 70 67 02 00 00 54 d2 84 51 67 02 00 00 21 d4 97 e9 b6 01 00 00 00 00 00 00 5a tor.phpg...T..Qg...!...........Z
4fa0 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 79 6d 66 6f 6e 79 ...vendor/symfony/finder/Symfony
4fc0 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 2f 45 78 63 6c 75 /Component/Finder/Iterator/Exclu
4fe0 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 a5 02 00 deDirectoryFilterIterator.php...
5000 00 54 d2 84 51 a5 02 00 00 dd 7a 60 2e b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f .T..Q.....z`.........J...vendor/
5020 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 74 symfony/finder/Symfony/Component
5040 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e /Finder/Iterator/FilterIterator.
5060 70 68 70 b9 01 00 00 54 d2 84 51 b9 01 00 00 cd 05 0b 88 b6 01 00 00 00 00 00 00 56 00 00 00 76 php....T..Q................V...v
5080 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
50a0 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 4d 75 6c 74 69 70 6c 65 50 ponent/Finder/Iterator/MultipleP
50c0 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 04 03 00 00 54 d2 84 51 04 03 00 creFilterIterator.php....T..Q...
50e0 00 53 db 43 f5 b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .S.C.........P...vendor/symfony/
5100 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/
5120 49 74 65 72 61 74 6f 72 2f 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 Iterator/CustomFilterIterator.ph
5140 70 5d 02 00 00 54 d2 84 51 5d 02 00 00 74 e0 b1 b5 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e p]...T..Q]...t...........R...ven
5160 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 70 6f dor/symfony/finder/Symfony/Compo
5180 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 6e 61 6d 65 46 69 6c nent/Finder/Iterator/FilenameFil
51a0 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 88 02 00 00 54 d2 84 51 88 02 00 00 ea 42 83 5a b6 terIterator.php....T..Q.....B.Z.
51c0 01 00 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 .......S...vendor/symfony/finder
51e0 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 74 /Symfony/Component/Finder/Iterat
5200 6f 72 2f 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 67 02 or/DateRangeFilterIterator.phpg.
5220 00 00 54 d2 84 51 67 02 00 00 b0 c9 65 00 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 ..T..Qg.....e.........R...vendor
5240 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
5260 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 t/Finder/Iterator/FileTypeFilter
5280 49 74 65 72 61 74 6f 72 2e 70 68 70 5c 02 00 00 54 d2 84 51 5c 02 00 00 70 91 27 98 b6 01 00 00 Iterator.php\...T..Q\...p.'.....
52a0 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 64 65 72 2f 53 79 ....V...vendor/symfony/finder/Sy
52c0 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 2f mfony/Component/Finder/Iterator/
52e0 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 2e 70 68 70 37 02 RecursiveDirectoryIterator.php7.
5300 00 00 54 d2 84 51 37 02 00 00 01 50 88 37 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 ..T..Q7....P.7........N...vendor
5320 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
5340 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 t/Finder/Iterator/PathFilterIter
5360 61 74 6f 72 2e 70 68 70 c1 02 00 00 54 d2 84 51 c1 02 00 00 5f dc 41 15 b6 01 00 00 00 00 00 00 ator.php....T..Q...._.A.........
5380 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 79 6d 66 6f 6e L...vendor/symfony/finder/Symfon
53a0 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 6f 72 2f 44 61 y/Component/Finder/Comparator/Da
53c0 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 26 03 00 00 54 d2 84 51 26 03 00 00 e9 68 64 b1 teComparator.php&...T..Q&....hd.
53e0 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 66 69 6e 64 65 ........N...vendor/symfony/finde
5400 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 43 6f 6d 70 61 r/Symfony/Component/Finder/Compa
5420 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 03 00 00 54 d2 rator/NumberComparator.phpy...T.
5440 84 51 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 72 2f 73 79 6d .Qy..."`..........H...vendor/sym
5460 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 69 fony/finder/Symfony/Component/Fi
5480 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 70 68 70 8c 03 nder/Comparator/Comparator.php..
54a0 00 00 54 d2 84 51 8c 03 00 00 16 77 fe 54 b6 01 00 00 00 00 00 00 4f 00 00 00 76 65 6e 64 6f 72 ..T..Q.....w.T........O...vendor
54c0 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
54e0 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 t/Finder/Exception/ExceptionInte
5500 72 66 61 63 65 2e 70 68 70 7b 00 00 00 54 d2 84 51 7b 00 00 00 8e f5 b9 b6 b6 01 00 00 00 00 00 rface.php{...T..Q{..............
5520 00 5a 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 79 6d 66 6f .Z...vendor/symfony/finder/Symfo
5540 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 4f 70 ny/Component/Finder/Exception/Op
5560 65 72 61 74 69 6f 6e 4e 6f 74 50 65 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 8a erationNotPermitedException.php.
5580 00 00 00 54 d2 84 51 8a 00 00 00 55 12 38 38 b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 6f ...T..Q....U.88........T...vendo
55a0 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
55c0 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 41 64 61 70 74 65 72 46 61 69 6c 75 nt/Finder/Exception/AdapterFailu
55e0 72 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 16 02 00 00 54 d2 84 51 16 02 00 00 6d 8c 5f 2c b6 reException.php....T..Q....m._,.
5600 01 00 00 00 00 00 00 59 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 .......Y...vendor/symfony/finder
5620 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 45 78 63 65 70 74 /Symfony/Component/Finder/Except
5640 69 6f 6e 2f 53 68 65 6c 6c 43 6f 6d 6d 61 6e 64 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e ion/ShellCommandFailureException
5660 2e 70 68 70 24 02 00 00 54 d2 84 51 24 02 00 00 43 94 73 d3 b6 01 00 00 00 00 00 00 3e 00 00 00 .php$...T..Q$...C.s.........>...
5680 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
56a0 6d 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 fb 02 mponent/Finder/SplFileInfo.php..
56c0 00 00 54 d2 84 51 fb 02 00 00 f0 ee 68 c5 b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 ..T..Q......h.........4...vendor
56e0 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
5700 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 3e 00 00 00 54 d2 84 51 3e 00 00 00 ff 71 9f 9f b6 01 /Undefined.php>...T..Q>....q....
5720 00 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 ......5...vendor/seld/jsonlint/s
5740 72 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 b8 rc/Seld/JsonLint/JsonParser.php.
5760 2c 00 00 54 d2 84 51 b8 2c 00 00 56 bc 5c 0d b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f ,..T..Q.,..V.\.........0...vendo
5780 72 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 r/seld/jsonlint/src/Seld/JsonLin
57a0 74 2f 4c 65 78 65 72 2e 70 68 70 bf 0f 00 00 54 d2 84 51 bf 0f 00 00 ab 0b ba 59 b6 01 00 00 00 t/Lexer.php....T..Q.......Y.....
57c0 00 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 ...;...vendor/seld/jsonlint/src/
57e0 53 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 Seld/JsonLint/ParsingException.p
5800 68 70 1e 01 00 00 54 d2 84 51 1e 01 00 00 89 b2 10 f1 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 hp....T..Q................I...ve
5820 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 6d 61 2f 73 ndor/justinrainbow/json-schema/s
5840 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 55 6e 64 65 66 69 rc/JsonSchema/Constraints/Undefi
5860 6e 65 64 2e 70 68 70 78 06 00 00 54 d2 84 51 78 06 00 00 68 b7 d9 71 b6 01 00 00 00 00 00 00 44 ned.phpx...T..Qx...h..q........D
5880 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
58a0 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 54 ema/src/JsonSchema/Constraints/T
58c0 79 70 65 2e 70 68 70 d4 05 00 00 54 d2 84 51 d4 05 00 00 85 e9 2b 46 b6 01 00 00 00 00 00 00 46 ype.php....T..Q......+F........F
58e0 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
5900 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
5920 63 68 65 6d 61 2e 70 68 70 d4 01 00 00 54 d2 84 51 d4 01 00 00 b9 3a 66 4d b6 01 00 00 00 00 00 chema.php....T..Q.....:fM.......
5940 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 73 .F...vendor/justinrainbow/json-s
5960 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 73 chema/src/JsonSchema/Constraints
5980 2f 4e 75 6d 62 65 72 2e 70 68 70 57 02 00 00 54 d2 84 51 57 02 00 00 2e 31 f2 e7 b6 01 00 00 00 /Number.phpW...T..QW....1.......
59a0 00 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 ...F...vendor/justinrainbow/json
59c0 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 6e -schema/src/JsonSchema/Constrain
59e0 74 73 2f 4f 62 6a 65 63 74 2e 70 68 70 94 07 00 00 54 d2 84 51 94 07 00 00 63 e8 5a fb b6 01 00 ts/Object.php....T..Q....c.Z....
5a00 00 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 .....S...vendor/justinrainbow/js
5a20 6f 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 on-schema/src/JsonSchema/Constra
5a40 69 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 ints/ConstraintInterface.php$...
5a60 54 d2 84 51 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 T..Q$....g..........J...vendor/j
5a80 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 2f 4a 73 6f ustinrainbow/json-schema/src/Jso
5aa0 6e 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 nSchema/Constraints/Constraint.p
5ac0 68 70 15 0a 00 00 54 d2 84 51 15 0a 00 00 3e 1d e3 18 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 hp....T..Q....>...........J...ve
5ae0 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 6d 61 2f 73 ndor/justinrainbow/json-schema/s
5b00 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 43 6f 6c 6c 65 63 rc/JsonSchema/Constraints/Collec
5b20 74 69 6f 6e 2e 70 68 70 56 08 00 00 54 d2 84 51 56 08 00 00 dc 3c a7 b6 b6 01 00 00 00 00 00 00 tion.phpV...T..QV....<..........
5b40 44 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 D...vendor/justinrainbow/json-sc
5b60 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/
5b80 45 6e 75 6d 2e 70 68 70 86 01 00 00 54 d2 84 51 86 01 00 00 24 28 6d be b6 01 00 00 00 00 00 00 Enum.php....T..Q....$(m.........
5ba0 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
5bc0 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/
5be0 53 74 72 69 6e 67 2e 70 68 70 98 02 00 00 54 d2 84 51 98 02 00 00 b4 f5 97 6b b6 01 00 00 00 00 String.php....T..Q.......k......
5c00 00 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 ..=...vendor/justinrainbow/json-
5c20 73 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 schema/src/JsonSchema/Validator.
5c40 70 68 70 5b 01 00 00 54 d2 84 51 5b 01 00 00 38 11 97 f6 b6 01 00 00 00 00 00 00 13 00 00 00 76 php[...T..Q[...8...............v
5c60 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 91 00 00 00 54 d2 84 51 91 00 00 00 1a e9 endor/autoload.php....T..Q......
5c80 1c 08 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 ..........'...vendor/composer/au
5ca0 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 c5 01 00 00 54 d2 84 51 c5 01 00 toload_namespaces.php....T..Q...
5cc0 00 b4 b7 df c7 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 .............%...vendor/composer
5ce0 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 64 00 00 00 54 d2 84 51 64 00 /autoload_classmap.phpd...T..Qd.
5d00 00 00 5a a1 a6 48 b6 01 00 00 00 00 00 00 21 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 ..Z..H........!...vendor/compose
5d20 72 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 cc 03 00 00 54 d2 84 51 cc 03 00 00 54 r/autoload_real.php....T..Q....T
5d40 f8 9f 65 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 2f 43 ..e............vendor/composer/C
5d60 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 f5 0a 00 00 54 d2 84 51 f5 0a 00 00 ba 9f 3e 49 b6 01 lassLoader.php....T..Q......>I..
5d80 00 00 00 00 00 00 0c 00 00 00 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 6e 04 00 00 54 d2 84 51 6e 04 ..........bin/composern...T..Qn.
5da0 00 00 1f 96 85 57 b6 01 00 00 00 00 00 00 07 00 00 00 4c 49 43 45 4e 53 45 33 04 00 00 54 d2 84 .....W............LICENSE3...T..
5dc0 51 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 0a 0a Q3.....2.........<?php..........
5de0 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 6c 65 ..function.includeIfExists($file
5e00 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 72 65 ).{.if.(file_exists($file)).{.re
5e20 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 21 24 turn.include.$file;.}.}..if.((!$
5e40 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 5f 5f loader.=.includeIfExists(__DIR__
5e60 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 26 20 .'/../vendor/autoload.php')).&&.
5e80 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 44 49 (!$loader.=.includeIfExists(__DI
5ea0 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 29 20 R__.'/../../../autoload.php'))).
5ec0 7b 0a 65 63 68 6f 20 27 59 6f 75 20 6d 75 73 74 20 73 65 74 20 75 70 20 74 68 65 20 70 72 6f 6a {.echo.'You.must.set.up.the.proj
5ee0 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 77 ect.dependencies,.run.the.follow
5f00 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 73 ing.commands:'.PHP_EOL..'curl.-s
5f20 53 20 68 74 74 70 73 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 S.https://getcomposer.org/instal
5f40 6c 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 ler.|.php'.PHP_EOL..'php.compose
5f60 72 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 27 2e 50 48 50 5f 45 4f 4c 3b 0a 65 78 69 74 28 31 29 r.phar.install'.PHP_EOL;.exit(1)
5f80 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ;.}..return.$loader;.<?php......
5fa0 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 4f 3b 0a 0a 75 73 ......namespace.Composer\IO;..us
5fc0 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
5fe0 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
6000 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 74 mponent\Console\Output\OutputInt
6020 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 6f erface;.use.Symfony\Component\Co
6040 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 nsole\Helper\HelperSet;........c
6060 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 lass.ConsoleIO.implements.IOInte
6080 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 70 72 6f 74 65 63 rface.{.protected.$input;.protec
60a0 74 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 ted.$output;.protected.$helperSe
60c0 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 20 3d 20 t;.protected.$authentications.=.
60e0 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 61 73 74 4d 65 73 73 61 67 65 3b array();.protected.$lastMessage;
6100 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 54 69 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .private.$startTime;.........pub
6120 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 49 6e lic.function.__construct(InputIn
6140 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 20 terface.$input,.OutputInterface.
6160 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 0a 7b $output,.HelperSet.$helperSet).{
6180 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 3e 6f .$this->input.=.$input;.$this->o
61a0 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 53 65 utput.=.$output;.$this->helperSe
61c0 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 t.=.$helperSet;.}..public.functi
61e0 6f 6e 20 65 6e 61 62 6c 65 44 65 62 75 67 67 69 6e 67 28 24 73 74 61 72 74 54 69 6d 65 29 0a 7b on.enableDebugging($startTime).{
6200 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 24 73 74 61 72 74 54 69 6d 65 3b 0a .$this->startTime.=.$startTime;.
6220 7d 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 61 63 74 }.....public.function.isInteract
6240 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 69 73 49 ive().{.return.$this->input->isI
6260 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 nteractive();.}.....public.funct
6280 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
62a0 2d 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 ->output->isDecorated();.}.....p
62c0 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
62e0 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 urn.$this->output->getVerbosity(
6300 29 20 3e 3d 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f ).>=.OutputInterface::VERBOSITY_
6320 56 45 52 42 4f 53 45 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 VERBOSE;.}.....public.function.i
6340 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f sVeryVerbose().{.return.$this->o
6360 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 33 3b 20 0a 20 7d 0a utput->getVerbosity().>=.3;...}.
6380 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a ....public.function.isDebug().{.
63a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 return.$this->output->getVerbosi
63c0 74 79 28 29 20 3e 3d 20 34 3b 20 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ty().>=.4;...}.....public.functi
63e0 6f 6e 20 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 74 on.write($messages,.$newline.=.t
6400 72 75 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 rue).{.if.(null.!==.$this->start
6420 54 69 6d 65 29 20 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 Time).{.$messages.=.(array).$mes
6440 73 61 67 65 73 3b 0a 24 6d 65 73 73 61 67 65 73 5b 30 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 sages;.$messages[0].=.sprintf(.'
6460 5b 25 2e 31 66 4d 42 2f 25 2e 32 66 73 5d 20 25 73 27 2c 0a 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 [%.1fMB/%.2fs].%s',.memory_get_u
6480 73 61 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 0a 6d 69 63 72 6f 74 69 6d 65 28 sage()./.1024./.1024,.microtime(
64a0 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 2c 0a 24 6d 65 73 73 61 true).-.$this->startTime,.$messa
64c0 67 65 73 5b 30 5d 0a 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 ges[0].);.}.$this->output->write
64e0 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 ($messages,.$newline);.$this->la
6500 73 74 4d 65 73 73 61 67 65 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 stMessage.=.join($newline.?."\n"
6520 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a .:.'',.(array).$messages);.}....
6540 0a 70 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 .public.function.overwrite($mess
6560 61 67 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 6e ages,.$newline.=.true,.$size.=.n
6580 75 6c 6c 29 0a 7b 0a 0a 20 24 6d 65 73 73 61 67 65 73 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 ull).{...$messages.=.join($newli
65a0 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 65 73 73 61 67 65 ne.?."\n".:.'',.(array).$message
65c0 73 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 69 7a 65 29 29 20 7b 0a 0a 20 24 73 s);....if.(!isset($size)).{...$s
65e0 69 7a 65 20 3d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 6c ize.=.strlen(strip_tags($this->l
6600 61 73 74 4d 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 astMessage));.}...$this->write(s
6620 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 73 69 7a 65 29 2c 20 66 61 6c 73 65 29 tr_repeat("\x08",.$size),.false)
6640 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 66 61 6c ;....$this->write($messages,.fal
6660 73 65 29 3b 0a 0a 24 66 69 6c 6c 20 3d 20 24 73 69 7a 65 20 2d 20 73 74 72 6c 65 6e 28 73 74 72 se);..$fill.=.$size.-.strlen(str
6680 69 70 5f 74 61 67 73 28 24 6d 65 73 73 61 67 65 73 29 29 3b 0a 69 66 20 28 24 66 69 6c 6c 20 3e ip_tags($messages));.if.($fill.>
66a0 20 30 29 20 7b 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 .0).{...$this->write(str_repeat(
66c0 27 20 27 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 '.',.$fill),.false);...$this->wr
66e0 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 66 69 6c 6c 29 2c 20 66 ite(str_repeat("\x08",.$fill),.f
6700 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d alse);.}..if.($newline).{.$this-
6720 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 >write('');.}.$this->lastMessage
6740 20 3d 20 24 6d 65 73 73 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .=.$messages;.}.....public.funct
6760 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 ion.ask($question,.$default.=.nu
6780 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 2d 3e 67 ll).{.return.$this->helperSet->g
67a0 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c et('dialog')->ask($this->output,
67c0 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 .$question,.$default);.}.....pub
67e0 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 24 71 75 lic.function.askConfirmation($qu
6800 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 estion,.$default.=.true).{.retur
6820 6e 20 24 74 68 69 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 n.$this->helperSet->get('dialog'
6840 29 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 )->askConfirmation($this->output
6860 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ,.$question,.$default);.}.....pu
6880 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 blic.function.askAndValidate($qu
68a0 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 estion,.$validator,.$attempts.=.
68c0 66 61 6c 73 65 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 false,.$default.=.null).{.return
68e0 20 24 74 68 69 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 .$this->helperSet->get('dialog')
6900 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 ->askAndValidate($this->output,.
6920 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 74 65 6d 70 74 73 $question,.$validator,.$attempts
6940 2c 20 24 64 65 66 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 ,.$default);.}.....public.functi
6960 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 0a 7b on.askAndHideAnswer($question).{
6980 0a 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 53 ...if.(defined('PHP_WINDOWS_VERS
69a0 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c ION_BUILD')).{.$exe.=.__DIR__.'\
69c0 5c 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a \hiddeninput.exe';....if.('phar:
69e0 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 35 29 29 20 7b 0a '.===.substr(__FILE__,.0,.5)).{.
6a00 24 74 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 $tmpExe.=.sys_get_temp_dir().'/h
6a20 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 0a 20 24 73 6f 75 72 63 65 20 3d 20 iddeninput.exe';......$source.=.
6a40 66 6f 70 65 6e 28 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 fopen(__DIR__.'\\hiddeninput.exe
6a60 27 2c 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 66 6f 70 65 6e 28 24 74 6d 70 45 78 65 ',.'r');.$target.=.fopen($tmpExe
6a80 2c 20 27 77 2b 27 29 3b 0a 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f 73 74 72 65 61 6d 28 24 ,.'w+');.stream_copy_to_stream($
6aa0 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 66 63 6c 6f 73 65 28 24 73 6f 75 72 63 65 source,.$target);.fclose($source
6ac0 29 3b 0a 66 63 6c 6f 73 65 28 24 74 61 72 67 65 74 29 3b 0a 75 6e 73 65 74 28 24 73 6f 75 72 63 );.fclose($target);.unset($sourc
6ae0 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 0a 24 65 78 65 20 3d 20 24 74 6d 70 45 78 65 3b 0a 7d 0a e,.$target);..$exe.=.$tmpExe;.}.
6b00 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 66 61 6c 73 65 29 3b .$this->write($question,.false);
6b20 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 24 65 78 65 29 .$value.=.rtrim(shell_exec($exe)
6b40 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 66 20 28 69 73 73 65 );.$this->write('');....if.(isse
6b60 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 45 78 65 29 3b 0a 7d t($tmpExe)).{.unlink($tmpExe);.}
6b80 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 69 6c 65 5f 65 78 69 ..return.$value;.}..if.(file_exi
6ba0 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 24 74 65 73 74 20 3d sts('/usr/bin/env')).{...$test.=
6bc0 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 6f 20 4f 4b 27 20 32 ."/usr/bin/env.%s.-c.'echo.OK'.2
6be0 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 72 61 79 28 27 62 61 >./dev/null";.foreach.(array('ba
6c00 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 20 61 73 20 24 73 68 sh',.'zsh',.'ksh',.'csh').as.$sh
6c20 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 65 6c 6c 5f 65 78 65 ).{.if.('OK'.===.rtrim(shell_exe
6c40 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 7b 0a 24 73 68 65 6c c(sprintf($test,.$sh)))).{.$shel
6c60 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 73 73 65 74 28 24 73 l.=.$sh;.break;.}.}.if.(isset($s
6c80 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 65 73 74 69 6f 6e 2c hell)).{.$this->write($question,
6ca0 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 6c 6c 20 3d 3d 3d 20 .false);.$readCmd.=.($shell.===.
6cc0 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 3d 20 24 3c 27 20 3a 'csh').?.'set.mypassword.=.$<'.:
6ce0 20 27 72 65 61 64 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 .'read.-r.mypassword';.$command.
6d00 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 63 20 27 73 =.sprintf("/usr/bin/env.%s.-c.'s
6d20 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 68 6f 20 5c tty.-echo;.%s;.stty.echo;.echo.\
6d40 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 43 6d 64 29 $mypassword'",.$shell,.$readCmd)
6d60 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 24 63 6f 6d ;.$value.=.rtrim(shell_exec($com
6d80 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 65 74 75 72 mand));.$this->write('');..retur
6da0 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 73 2d 3e 61 n.$value;.}.}....return.$this->a
6dc0 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 66 75 6e 63 sk($question);.}.....public.func
6de0 74 69 6f 6e 20 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 tion.getAuthentications().{.retu
6e00 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a rn.$this->authentications;.}....
6e20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 .public.function.hasAuthenticati
6e40 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 24 on($repositoryName).{.$auths.=.$
6e60 74 68 69 73 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 this->getAuthentications();..ret
6e80 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
6ea0 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
6ec0 68 65 6e 74 69 63 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 hentication($repositoryName).{.$
6ee0 61 75 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e auths.=.$this->getAuthentication
6f00 73 28 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 s();..return.isset($auths[$repos
6f20 69 74 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 itoryName]).?.$auths[$repository
6f40 4e 61 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 Name].:.array('username'.=>.null
6f60 2c 20 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 ,.'password'.=>.null);.}.....pub
6f80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 lic.function.setAuthentication($
6fa0 72 65 70 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 repositoryName,.$username,.$pass
6fc0 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 word.=.null).{.$this->authentica
6fe0 74 69 6f 6e 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 tions[$repositoryName].=.array('
7000 75 73 65 72 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 username'.=>.$username,.'passwor
7020 64 27 20 3d 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 d'.=>.$password);.}.}.<?php.....
7040 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 4f 3b 0a 0a 0a .......namespace.Composer\IO;...
7060 0a 0a 0a 0a 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 ....class.NullIO.implements.IOIn
7080 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 73 49 terface.{....public.function.isI
70a0 6e 74 65 72 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 nteractive().{.return.false;.}..
70c0 0a 0a 0a 70 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 ...public.function.isVerbose().{
70e0 0a 72 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 .return.false;.}.....public.func
7100 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 tion.isVeryVerbose().{.return.fa
7120 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 20 69 73 44 65 62 lse;.}.....public.function.isDeb
7140 75 67 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 75 62 6c 69 ug().{.return.false;.}.....publi
7160 63 20 66 75 6e 63 74 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 c.function.isDecorated().{.retur
7180 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 20 77 n.false;.}.....public.function.w
71a0 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 74 72 75 65 29 rite($messages,.$newline.=.true)
71c0 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 6f 76 65 72 77 72 69 .{.}.....public.function.overwri
71e0 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 74 72 75 65 2c 20 24 te($messages,.$newline.=.true,.$
7200 73 69 7a 65 20 3d 20 38 30 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 size.=.80).{.}.....public.functi
7220 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c on.ask($question,.$default.=.nul
7240 6c 29 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 l).{.return.$default;.}.....publ
7260 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 24 71 75 65 ic.function.askConfirmation($que
7280 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e stion,.$default.=.true).{.return
72a0 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 6e .$default;.}.....public.function
72c0 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 69 .askAndValidate($question,.$vali
72e0 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 75 dator,.$attempts.=.false,.$defau
7300 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a lt.=.null).{.return.$default;.}.
7320 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 48 69 64 65 41 6e ....public.function.askAndHideAn
7340 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d swer($question).{.return.null;.}
7360 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 65 6e 74 69 .....public.function.getAuthenti
7380 63 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a cations().{.return.array();.}...
73a0 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 65 6e 74 69 63 61 74 ..public.function.hasAuthenticat
73c0 69 6f 6e 28 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 66 61 ion($repositoryName).{.return.fa
73e0 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 20 67 65 74 41 75 lse;.}.....public.function.getAu
7400 74 68 65 6e 74 69 63 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 thentication($repositoryName).{.
7420 72 65 74 75 72 6e 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 return.array('username'.=>.null,
7440 20 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 .'password'.=>.null);.}.....publ
7460 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 ic.function.setAuthentication($r
7480 65 70 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 epositoryName,.$username,.$passw
74a0 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ord.=.null).{.}.}.<?php.........
74c0 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;.......
74e0 69 6e 74 65 72 66 61 63 65 20 49 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 interface.IOInterface.{......pub
7500 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a lic.function.isInteractive();...
7520 0a 0a 0a 0a 70 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 3b ....public.function.isVerbose();
7540 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 56 65 72 79 56 65 72 .......public.function.isVeryVer
7560 62 6f 73 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 69 73 bose();.......public.function.is
7580 44 65 62 75 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 69 Debug();.......public.function.i
75a0 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 sDecorated();........public.func
75c0 74 69 6f 6e 20 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 tion.write($messages,.$newline.=
75e0 20 74 72 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 69 6f 6e 20 .true);.........public.function.
7600 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.=.
7620 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 true,.$size.=.80);............pu
7640 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 2c 20 24 64 65 blic.function.ask($question,.$de
7660 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 fault.=.null);............public
7680 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 24 71 75 65 73 74 .function.askConfirmation($quest
76a0 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ion,.$default.=.true);..........
76c0 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 41 6e 64 56 61 ........public.function.askAndVa
76e0 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 72 2c 20 24 61 lidate($question,.$validator,.$a
7700 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
7720 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 61 73 6b 41 6e );.........public.function.askAn
7740 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 dHideAnswer($question);.......pu
7760 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 blic.function.getAuthentications
7780 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 6e 20 68 61 73 41 ();.........public.function.hasA
77a0 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 3b 0a uthentication($repositoryName);.
77c0 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 68 65 ........public.function.getAuthe
77e0 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 3b 0a 0a 0a 0a 0a ntication($repositoryName);.....
7800 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 68 65 6e 74 69 63 ....public.function.setAuthentic
7820 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 65 72 6e 61 6d 65 ation($repositoryName,.$username
7840 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 68 70 0a 0a 0a 0a ,.$password.=.null);.}.<?php....
7860 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 4f 3b 0a 0a ........namespace.Composer\IO;..
7880 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
78a0 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 tput\StreamOutput;.use.Symfony\C
78c0 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 70 75 omponent\Console\Formatter\Outpu
78e0 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 6e 79 tFormatterInterface;.use.Symfony
7900 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 53 74 72 69 6e 67 49 \Component\Console\Input\StringI
7920 6e 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 nput;.use.Symfony\Component\Cons
7940 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 ole\Helper\HelperSet;.....class.
7960 42 75 66 66 65 72 49 4f 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 49 4f 0a 7b 0a 0a 0a 0a BufferIO.extends.ConsoleIO.{....
7980 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 69 6e .public.function.__construct($in
79a0 70 75 74 20 3d 20 27 27 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 put.=.'',.$verbosity.=.null,.Out
79c0 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 74 74 65 72 putFormatterInterface.$formatter
79e0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 49 6e .=.null).{.$input.=.new.StringIn
7a00 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 put($input);.$input->setInteract
7a20 69 76 65 28 66 61 6c 73 65 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 ive(false);..$output.=.new.Strea
7a40 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 72 mOutput(fopen('php://memory',.'r
7a60 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 3d 3d 20 6e 75 6c 6c 20 3f 20 53 74 72 65 61 w'),.$verbosity.===.null.?.Strea
7a80 6d 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 72 mOutput::VERBOSITY_NORMAL.:.$ver
7aa0 62 6f 73 69 74 79 2c 20 21 65 6d 70 74 79 28 24 66 6f 72 6d 61 74 74 65 72 29 2c 20 24 66 6f 72 bosity,.!empty($formatter),.$for
7ac0 6d 61 74 74 65 72 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 matter);..parent::__construct($i
7ae0 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 6e 65 77 20 48 65 6c 70 65 72 53 65 74 28 61 72 72 nput,.$output,.new.HelperSet(arr
7b00 61 79 28 29 29 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 4f 75 ay()));.}..public.function.getOu
7b20 74 70 75 74 28 29 0a 7b 0a 66 73 65 65 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 tput().{.fseek($this->output->ge
7b40 74 53 74 72 65 61 6d 28 29 2c 20 30 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 73 74 72 65 61 6d tStream(),.0);..$output.=.stream
7b60 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 _get_contents($this->output->get
7b80 53 74 72 65 61 6d 28 29 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 Stream());..$output.=.preg_repla
7ba0 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b 28 3f 3c 3d 5e 7c 5c 6e 7c 5c 78 30 38 29 28 2e 2b 3f ce_callback("{(?<=^|\n|\x08)(.+?
7bc0 29 28 5c 78 30 38 2b 29 7d 22 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 )(\x08+)}",.function.($matches).
7be0 7b 0a 24 70 72 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 {.$pre.=.strip_tags($matches[1])
7c00 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 70 72 65 29 20 3d 3d 3d 20 73 74 72 6c 65 6e 28 24 ;..if.(strlen($pre).===.strlen($
7c20 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 0a 20 72 matches[2])).{.return.'';.}....r
7c40 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 2e 22 5c 6e 22 3b 0a 7d eturn.rtrim($matches[1])."\n";.}
7c60 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d ,.$output);..return.$output;.}.}
7c80 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
7ca0 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 53 63 72 69 oser\Command;..use.Composer\Scri
7cc0 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d pt\ScriptEvents;.use.Symfony\Com
7ce0 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 72 66 ponent\Console\Input\InputInterf
7d00 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 73 6f ace;.use.Symfony\Component\Conso
7d20 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 66 6f 6e le\Input\InputOption;.use.Symfon
7d40 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 41 y\Component\Console\Input\InputA
7d60 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 6e 65 6e 74 5c 43 rgument;.use.Symfony\Component\C
7d80 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 0a onsole\Output\OutputInterface;..
7da0 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 ...class.RunScriptCommand.extend
7dc0 73 20 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 s.Command.{.protected.function.c
7de0 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 75 onfigure().{.$this.->setName('ru
7e00 6e 2d 73 63 72 69 70 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 75 6e n-script').->setDescription('Run
7e20 20 74 68 65 20 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 .the.scripts.defined.in.composer
7e40 2e 6a 73 6f 6e 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 .json.').->setDefinition(array(.
7e60 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 27 2c 20 49 6e 70 75 new.InputArgument('script',.Inpu
7e80 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 53 63 72 69 70 74 20 6e 61 6d tArgument::REQUIRED,.'Script.nam
7ea0 65 20 74 6f 20 72 75 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 e.to.run.'),.new.InputOption('de
7ec0 76 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 v',.null,.InputOption::VALUE_NON
7ee0 45 2c 20 27 53 65 74 73 20 74 68 65 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a 6e 65 77 20 49 6e E,.'Sets.the.dev.mode.'),.new.In
7f00 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f putOption('no-dev',.null,.InputO
7f20 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 20 74 68 65 ption::VALUE_NONE,.'Disables.the
7f40 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f .dev.mode.'),.)).->setHelp(<<<EO
7f60 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 72 75 6e 2d 73 63 72 69 70 74 3c 2f 69 6e 66 6f 3e 20 63 6f T.The.<info>run-script</info>.co
7f80 6d 6d 61 6e 64 20 72 75 6e 73 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f mmand.runs.scripts.defined.in.co
7fa0 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 mposer.json:..<info>php.composer
7fc0 2e 70 68 61 72 20 72 75 6e 2d 73 63 72 69 70 74 20 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 .phar.run-script.post-update-cmd
7fe0 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 66 75 6e </info>.EOT.).;.}..protected.fun
8000 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 69 6e ction.execute(InputInterface.$in
8020 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 0a put,.OutputInterface.$output).{.
8040 24 73 63 72 69 70 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 $script.=.$input->getArgument('s
8060 63 72 69 70 74 27 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 73 63 72 69 70 74 2c 20 cript');.if.(!in_array($script,.
8080 61 72 72 61 79 28 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c array(.ScriptEvents::PRE_INSTALL
80a0 5f 43 4d 44 2c 0a 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
80c0 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 _CMD,.ScriptEvents::PRE_UPDATE_C
80e0 4d 44 2c 0a 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 43 4d MD,.ScriptEvents::POST_UPDATE_CM
8100 44 2c 0a 29 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 6f 6d 70 6f 73 65 72 5c 53 D,.))).{.if.(defined('Composer\S
8120 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 27 2e 73 74 72 5f 72 65 70 6c 61 63 cript\ScriptEvents::'.str_replac
8140 65 28 27 2d 27 2c 20 27 5f 27 2c 20 73 74 72 74 6f 75 70 70 65 72 28 24 73 63 72 69 70 74 29 29 e('-',.'_',.strtoupper($script))
8160 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
8180 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 53 63 72 69 70 74 20 22 25 73 22 20 63 61 xception(sprintf('Script."%s".ca
81a0 6e 6e 6f 74 20 62 65 20 72 75 6e 20 77 69 74 68 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 27 2c 20 nnot.be.run.with.this.command',.
81c0 24 73 63 72 69 70 74 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 $script));.}..throw.new.\Invalid
81e0 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 53 63 72 69 70 ArgumentException(sprintf('Scrip
8200 74 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 27 2c 20 24 73 63 72 69 70 74 29 t."%s".does.not.exist',.$script)
8220 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 45 );.}..$this->getComposer()->getE
8240 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e ventDispatcher()->dispatchComman
8260 64 45 76 65 6e 74 28 24 73 63 72 69 70 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f dEvent($script,.$input->getOptio
8280 6e 28 27 64 65 76 27 29 20 7c 7c 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 n('dev').||.!$input->getOption('
82a0 6e 6f 2d 64 65 76 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a no-dev'));.}.}.<?php............
82c0 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
82e0 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 72 .Composer\Composer;.use.Composer
8300 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 \Factory;.use.Composer\Downloade
8320 72 5c 54 72 61 6e 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 r\TransportException;.use.Compos
8340 65 72 5c 55 74 69 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d er\Util\ConfigValidator;.use.Com
8360 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 75 73 65 poser\Util\RemoteFilesystem;.use
8380 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 .Composer\Util\StreamContextFact
83a0 6f 72 79 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 ory;.use.Symfony\Component\Conso
83c0 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 79 6d le\Input\InputInterface;.use.Sym
83e0 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
8400 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 67 6e 6f 73 tputInterface;.....class.Diagnos
8420 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 7b 0a 70 72 6f 74 65 eCommand.extends.Command.{.prote
8440 63 74 65 64 20 24 72 66 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 61 69 6c 75 72 65 73 20 3d cted.$rfs;.protected.$failures.=
8460 20 30 3b 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 69 67 75 72 .0;..protected.function.configur
8480 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 69 61 67 6e 6f 73 65 27 e().{.$this.->setName('diagnose'
84a0 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 69 61 67 6e 6f 73 65 73 20 74 68 ).->setDescription('Diagnoses.th
84c0 65 20 73 79 73 74 65 6d 20 74 6f 20 69 64 65 6e 74 69 66 79 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f e.system.to.identify.common.erro
84e0 72 73 2e 27 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 rs.').->setHelp(<<<EOT.The.<info
8500 3e 64 69 61 67 6e 6f 73 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 >diagnose</info>.command.checks.
8520 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 20 74 6f 20 68 65 6c 70 20 64 65 62 75 67 67 69 6e 67 20 common.errors.to.help.debugging.
8540 70 72 6f 62 6c 65 6d 73 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 problems...EOT.).;.}..protected.
8560 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.
8580 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)
85a0 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 .{.$this->rfs.=.new.RemoteFilesy
85c0 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e stem($this->getIO());..$output->
85e0 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 70 6c 61 74 66 6f 72 6d 20 73 65 74 74 69 6e 67 write('Checking.platform.setting
8600 73 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 s:.');.$this->outputResult($outp
8620 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 50 6c 61 74 66 6f 72 6d 28 29 29 3b 0a 0a 24 6f ut,.$this->checkPlatform());..$o
8640 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 68 74 74 70 20 63 6f 6e 6e utput->write('Checking.http.conn
8660 65 63 74 69 76 69 74 79 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c ectivity:.');.$this->outputResul
8680 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 28 29 29 3b 0a t($output,.$this->checkHttp());.
86a0 0a 24 6f 70 74 73 20 3d 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 67 65 74 5f 6f 70 74 69 .$opts.=.stream_context_get_opti
86c0 6f 6e 73 28 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e ons(StreamContextFactory::getCon
86e0 74 65 78 74 28 29 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6f 70 74 73 5b 27 68 74 74 70 27 text());.if.(!empty($opts['http'
8700 5d 5b 27 70 72 6f 78 79 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 ]['proxy'])).{.$output->write('C
8720 68 65 63 6b 69 6e 67 20 48 54 54 50 20 70 72 6f 78 79 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f hecking.HTTP.proxy:.');.$this->o
8740 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 utputResult($output,.$this->chec
8760 6b 48 74 74 70 50 72 6f 78 79 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 kHttpProxy());.$output->write('C
8780 68 65 63 6b 69 6e 67 20 48 54 54 50 53 20 70 72 6f 78 79 20 73 75 70 70 6f 72 74 20 66 6f 72 20 hecking.HTTPS.proxy.support.for.
87a0 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 request_fulluri:.');.$this->outp
87c0 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 utResult($output,.$this->checkHt
87e0 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 29 29 3b 0a tpsProxyFullUriRequestParam());.
8800 7d 0a 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 }..$composer.=.$this->getCompose
8820 72 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 6f 75 74 70 r(false);.if.($composer).{.$outp
8840 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f ut->write('Checking.composer.jso
8860 6e 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 n:.');.$this->outputResult($outp
8880 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 43 6f 6d 70 6f 73 65 72 53 63 68 65 6d 61 28 29 ut,.$this->checkComposerSchema()
88a0 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d );.}..if.($composer).{.$config.=
88c0 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 7d 20 65 6c 73 65 20 .$composer->getConfig();.}.else.
88e0 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 {.$config.=.Factory::createConfi
8900 67 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f 61 75 74 68 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 g();.}..if.($oauth.=.$config->ge
8920 74 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f t('github-oauth')).{.foreach.($o
8940 61 75 74 68 20 61 73 20 24 64 6f 6d 61 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 6f 75 auth.as.$domain.=>.$token).{.$ou
8960 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 27 2e 24 64 6f 6d 61 69 6e 2e tput->write('Checking.'.$domain.
8980 27 20 6f 61 75 74 68 20 61 63 63 65 73 73 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 '.oauth.access:.');.$this->outpu
89a0 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 47 69 74 tResult($output,.$this->checkGit
89c0 68 75 62 4f 61 75 74 68 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a 7d 0a hubOauth($domain,.$token));.}.}.
89e0 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 63 6f 6d 70 6f 73 .$output->write('Checking.compos
8a00 65 72 20 76 65 72 73 69 6f 6e 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 er.version:.');.$this->outputRes
8a20 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 56 65 72 73 69 6f 6e ult($output,.$this->checkVersion
8a40 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 69 6c 75 72 65 73 3b 0a 7d 0a ());..return.$this->failures;.}.
8a60 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 43 6f 6d 70 6f 73 65 72 53 .private.function.checkComposerS
8a80 63 68 65 6d 61 28 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6e 66 69 chema().{.$validator.=.new.Confi
8aa0 67 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 6c 69 73 74 gValidator($this->getIO());.list
8ac0 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 ($errors,.$publishErrors,.$warni
8ae0 6e 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 46 61 63 74 ngs).=.$validator->validate(Fact
8b00 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 29 3b 0a 0a 69 66 20 28 24 65 ory::getComposerFile());..if.($e
8b20 72 72 6f 72 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 7c 7c 20 24 77 61 72 6e rrors.||.$publishErrors.||.$warn
8b40 69 6e 67 73 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f ings).{.$messages.=.array(.'erro
8b60 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 62 6c r'.=>.array_merge($errors,.$publ
8b80 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 69 6e ishErrors),.'warning'.=>.$warnin
8ba0 67 73 2c 0a 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 gs,.);..$output.=.'';.foreach.($
8bc0 6d 65 73 73 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b 0a 66 messages.as.$style.=>.$msgs).{.f
8be0 6f 72 65 61 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 6f 75 74 70 75 74 oreach.($msgs.as.$msg).{.$output
8c00 20 2e 3d 20 27 3c 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 ..=.'<'...$style...'>'...$msg...
8c20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 50 48 50 5f 45 4f 4c 3b 0a 7d '</'...$style...'>'...PHP_EOL;.}
8c40 0a 7d 0a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 .}..return.rtrim($output);.}..re
8c60 74 75 72 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 63 turn.true;.}..private.function.c
8c80 68 65 63 6b 48 74 74 70 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 6e 73 69 heckHttp().{.$protocol.=.extensi
8ca0 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a on_loaded('openssl').?.'https'.:
8cc0 20 27 68 74 74 70 27 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 .'http';.try.{.$json.=.$this->rf
8ce0 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 s->getContents('packagist.org',.
8d00 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 $protocol...'://packagist.org/pa
8d20 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c ckages.json',.false);.}.catch.(\
8d40 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 Exception.$e).{.return.$e;.}..re
8d60 74 75 72 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 63 turn.true;.}..private.function.c
8d80 68 65 63 6b 48 74 74 70 50 72 6f 78 79 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 heckHttpProxy().{.$protocol.=.ex
8da0 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 3f 20 27 68 74 74 tension_loaded('openssl').?.'htt
8dc0 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e ps'.:.'http';.try.{.$json.=.json
8de0 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 _decode($this->rfs->getContents(
8e00 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 'packagist.org',.$protocol...':/
8e20 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 66 /packagist.org/packages.json',.f
8e40 61 6c 73 65 29 2c 20 74 72 75 65 29 3b 0a 24 68 61 73 68 20 3d 20 72 65 73 65 74 28 24 6a 73 6f alse),.true);.$hash.=.reset($jso
8e60 6e 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 3b 0a 24 68 61 73 68 20 3d n['provider-includes']);.$hash.=
8e80 20 24 68 61 73 68 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 5f 72 65 .$hash['sha256'];.$path.=.str_re
8ea0 70 6c 61 63 65 28 27 25 68 61 73 68 25 27 2c 20 24 68 61 73 68 2c 20 6b 65 79 28 24 6a 73 6f 6e place('%hash%',.$hash,.key($json
8ec0 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 3b 0a 24 70 72 6f 76 69 64 ['provider-includes']));.$provid
8ee0 65 72 20 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 27 70 61 er.=.$this->rfs->getContents('pa
8f00 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 ckagist.org',.$protocol...'://pa
8f20 63 6b 61 67 69 73 74 2e 6f 72 67 2f 27 2e 24 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 0a 69 66 ckagist.org/'.$path,.false);..if
8f40 20 28 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 20 24 70 72 6f 76 69 64 65 72 29 20 21 3d 3d 20 .(hash('sha256',.$provider).!==.
8f60 24 68 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 68 61 74 20 79 $hash).{.return.'It.seems.that.y
8f80 6f 75 72 20 70 72 6f 78 79 20 69 73 20 6d 6f 64 69 66 79 69 6e 67 20 68 74 74 70 20 74 72 61 66 our.proxy.is.modifying.http.traf
8fa0 66 69 63 20 6f 6e 20 74 68 65 20 66 6c 79 27 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 fic.on.the.fly';.}.}.catch.(\Exc
8fc0 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 eption.$e).{.return.$e;.}..retur
8fe0 6e 20 74 72 75 65 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 n.true;.}.........private.functi
9000 6f 6e 20 63 68 65 63 6b 48 74 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 on.checkHttpsProxyFullUriRequest
9020 50 61 72 61 6d 28 29 0a 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 Param().{.$url.=.'https://api.gi
9040 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 53 65 6c 64 61 65 6b 2f 6a 73 6f 6e 6c 69 6e 74 2f thub.com/repos/Seldaek/jsonlint/
9060 7a 69 70 62 61 6c 6c 2f 31 2e 30 2e 30 20 27 3b 0a 74 72 79 20 7b 0a 24 72 66 63 52 65 73 75 6c zipball/1.0.0.';.try.{.$rfcResul
9080 74 20 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 27 61 70 69 t.=.$this->rfs->getContents('api
90a0 2e 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 .github.com',.$url,.false);.}.ca
90c0 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 0a 69 66 tch.(TransportException.$e).{.if
90e0 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 29 29 20 .(!extension_loaded('openssl')).
9100 7b 0a 72 65 74 75 72 6e 20 27 59 6f 75 20 6e 65 65 64 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 {.return.'You.need.the.openssl.e
9120 78 74 65 6e 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 66 6f 72 20 74 68 69 73 20 63 68 65 63 xtension.installed.for.this.chec
9140 6b 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 k';.}..try.{.$this->rfs->getCont
9160 65 6e 74 73 28 27 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 24 75 72 6c 2c 20 66 61 6c ents('api.github.com',.$url,.fal
9180 73 65 2c 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 71 75 65 se,.array('http'.=>.array('reque
91a0 73 74 5f 66 75 6c 6c 75 72 69 27 20 3d 3e 20 66 61 6c 73 65 29 29 29 3b 0a 7d 20 63 61 74 63 68 st_fulluri'.=>.false)));.}.catch
91c0 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 0a 72 65 74 75 72 .(TransportException.$e).{.retur
91e0 6e 20 27 55 6e 61 62 6c 65 20 74 6f 20 61 73 73 65 72 74 20 74 68 65 20 73 69 74 75 61 74 69 6f n.'Unable.to.assert.the.situatio
9200 6e 2c 20 6d 61 79 62 65 20 67 69 74 68 75 62 20 69 73 20 64 6f 77 6e 20 28 27 2e 24 65 2d 3e 67 n,.maybe.github.is.down.('.$e->g
9220 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 74 20 73 etMessage().')';.}..return.'It.s
9240 65 65 6d 73 20 74 68 65 72 65 20 69 73 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 79 6f 75 eems.there.is.a.problem.with.you
9260 72 20 70 72 6f 78 79 20 73 65 72 76 65 72 2c 20 74 72 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 r.proxy.server,.try.setting.the.
9280 22 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 65 6e 76 "HTTP_PROXY_REQUEST_FULLURI".env
92a0 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 74 6f 20 22 66 61 6c 73 65 22 27 3b 0a 7d ironment.variable.to."false"';.}
92c0 0a 0a 72 65 74 75 72 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 ..return.true;.}..private.functi
92e0 6f 6e 20 63 68 65 63 6b 47 69 74 68 75 62 4f 61 75 74 68 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f on.checkGithubOauth($domain,.$to
9300 6b 65 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 73 65 74 41 75 74 68 65 6e ken).{.$this->getIO()->setAuthen
9320 74 69 63 61 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 tication($domain,.$token,.'x-oau
9340 74 68 2d 62 61 73 69 63 27 29 3b 0a 74 72 79 20 7b 0a 24 75 72 6c 20 3d 20 24 64 6f 6d 61 69 6e th-basic');.try.{.$url.=.$domain
9360 20 3d 3d 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3f 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 .===.'github.com'.?.'https://api
9380 2e 27 2e 24 64 6f 6d 61 69 6e 2e 27 2f 75 73 65 72 2f 72 65 70 6f 73 27 20 3a 20 27 68 74 74 70 .'.$domain.'/user/repos'.:.'http
93a0 73 3a 2f 2f 27 2e 24 64 6f 6d 61 69 6e 2e 27 2f 61 70 69 2f 76 33 2f 75 73 65 72 2f 72 65 70 6f s://'.$domain.'/api/v3/user/repo
93c0 73 27 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 s';..return.$this->rfs->getConte
93e0 6e 74 73 28 24 64 6f 6d 61 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 20 3f 20 74 72 75 65 nts($domain,.$url,.false).?.true
9400 20 3a 20 27 55 6e 65 78 70 65 63 74 65 64 20 65 72 72 6f 72 27 3b 0a 7d 20 63 61 74 63 68 20 28 .:.'Unexpected.error';.}.catch.(
9420 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 \Exception.$e).{.if.($e.instance
9440 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 24 65 2d 3e 67 65 74 of.TransportException.&&.$e->get
9460 43 6f 64 65 28 29 20 3d 3d 3d 20 34 30 31 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 77 61 72 6e 69 Code().===.401).{.return.'<warni
9480 6e 67 3e 54 68 65 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 2e 24 64 6f 6d 61 69 6e ng>The.oauth.token.for.'.$domain
94a0 2e 27 20 73 65 65 6d 73 20 69 6e 76 61 6c 69 64 2c 20 72 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 .'.seems.invalid,.run."composer.
94c0 63 6f 6e 66 69 67 20 2d 2d 67 6c 6f 62 61 6c 20 2d 2d 75 6e 73 65 74 20 67 69 74 68 75 62 2d 6f config.--global.--unset.github-o
94e0 61 75 74 68 2e 27 2e 24 64 6f 6d 61 69 6e 2e 27 22 20 74 6f 20 72 65 6d 6f 76 65 20 69 74 3c 2f auth.'.$domain.'".to.remove.it</
9500 77 61 72 6e 69 6e 67 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 warning>';.}..return.$e;.}.}..pr
9520 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 56 65 72 73 69 6f 6e 28 29 0a 7b 0a ivate.function.checkVersion().{.
9540 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 $protocol.=.extension_loaded('op
9560 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 6c 61 74 enssl').?.'https'.:.'http';.$lat
9580 65 73 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e est.=.trim($this->rfs->getConten
95a0 74 73 28 27 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 ts('getcomposer.org',.$protocol.
95c0 2e 20 27 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 76 65 72 73 69 6f 6e 27 2c 20 ..'://getcomposer.org/version',.
95e0 66 61 6c 73 65 29 29 3b 0a 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 false));..if.(Composer::VERSION.
9600 21 3d 3d 20 24 6c 61 74 65 73 74 20 26 26 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e !==.$latest.&&.Composer::VERSION
9620 20 21 3d 3d 20 27 31 2e 30 2e 30 2d 61 6c 70 68 61 37 27 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c .!==.'1.0.0-alpha7').{.return.'<
9640 77 61 72 6e 69 6e 67 3e 59 6f 75 72 20 61 72 65 20 6e 6f 74 20 72 75 6e 6e 69 6e 67 20 74 68 65 warning>Your.are.not.running.the
9660 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 3c 2f 77 61 72 6e 69 6e 67 3e 27 3b 0a 7d 0a 0a 72 .latest.version</warning>';.}..r
9680 65 74 75 72 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 eturn.true;.}..private.function.
96a0 6f 75 74 70 75 74 52 65 73 75 6c 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 outputResult(OutputInterface.$ou
96c0 74 70 75 74 2c 20 24 72 65 73 75 6c 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 72 tput,.$result).{.if.(true.===.$r
96e0 65 73 75 6c 74 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 esult).{.$output->writeln('<info
9700 3e 4f 4b 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 61 >OK</info>');.}.else.{.$this->fa
9720 69 6c 75 72 65 73 2b 2b 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 ilures++;.$output->writeln('<err
9740 6f 72 3e 46 41 49 4c 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 69 66 20 28 24 72 65 73 75 6c 74 20 69 or>FAIL</error>');.if.($result.i
9760 6e 73 74 61 6e 63 65 6f 66 20 5c 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d nstanceof.\Exception).{.$output-
9780 3e 77 72 69 74 65 6c 6e 28 27 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 72 65 73 75 6c 74 29 2e >writeln('['.get_class($result).
97a0 27 5d 20 27 2e 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 65 '].'.$result->getMessage());.}.e
97c0 6c 73 65 69 66 20 28 24 72 65 73 75 6c 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 lseif.($result).{.$output->write
97e0 6c 6e 28 24 72 65 73 75 6c 74 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ln($result);.}.}.}..private.func
9800 74 69 6f 6e 20 63 68 65 63 6b 50 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d tion.checkPlatform().{.$output.=
9820 20 27 27 3b 0a 24 6f 75 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 73 67 2c 20 24 73 74 79 .'';.$out.=.function.($msg,.$sty
9840 6c 65 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 le).use.(&$output).{.$output..=.
9860 27 3c 27 2e 24 73 74 79 6c 65 2e 27 3e 27 2e 24 6d 73 67 2e 27 3c 2f 27 2e 24 73 74 79 6c 65 2e '<'.$style.'>'.$msg.'</'.$style.
9880 27 3e 27 3b 0a 7d 3b 0a 0a 0a 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 77 '>';.};....$errors.=.array();.$w
98a0 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 69 6e 69 50 61 74 68 20 3d 20 70 arnings.=.array();..$iniPath.=.p
98c0 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 24 64 69 73 70 6c 61 79 49 6e hp_ini_loaded_file();.$displayIn
98e0 69 4d 65 73 73 61 67 65 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 24 69 6e 69 50 61 74 68 29 20 iMessage.=.false;.if.($iniPath).
9900 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 50 48 50 5f 45 4f 4c 2e 50 48 50 5f 45 4f 4c 2e {.$iniMessage.=.PHP_EOL.PHP_EOL.
9920 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 'The.php.ini.used.by.your.comman
9940 64 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 d-line.PHP.is:.'...$iniPath;.}.e
9960 6c 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 50 48 50 5f 45 4f 4c 2e 50 48 50 5f lse.{.$iniMessage.=.PHP_EOL.PHP_
9980 45 4f 4c 2e 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 EOL.'A.php.ini.file.does.not.exi
99a0 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 61 74 65 20 6f 6e 65 2e st..You.will.have.to.create.one.
99c0 27 3b 0a 7d 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 3d 20 50 48 50 5f 45 4f 4c 2e 27 49 66 20 ';.}.$iniMessage..=.PHP_EOL.'If.
99e0 79 6f 75 20 63 61 6e 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 65 20 69 6e 69 20 66 69 6c 65 2c you.can.not.modify.the.ini.file,
9a00 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 72 75 6e 20 60 70 68 70 20 2d 64 20 6f 70 74 69 6f 6e .you.can.also.run.`php.-d.option
9a20 3d 76 61 6c 75 65 60 20 74 6f 20 6d 6f 64 69 66 79 20 69 6e 69 20 76 61 6c 75 65 73 20 6f 6e 20 =value`.to.modify.ini.values.on.
9a40 74 68 65 20 66 6c 79 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 20 2d 64 20 6d 75 6c 74 69 70 6c 65 the.fly..You.can.use.-d.multiple
9a60 20 74 69 6d 65 73 2e 27 3b 0a 0a 69 66 20 28 21 69 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 .times.';..if.(!ini_get('allow_u
9a80 72 6c 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 61 6c 6c 6f 77 5f 75 72 6c rl_fopen')).{.$errors['allow_url
9aa0 5f 66 6f 70 65 6e 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f _fopen'].=.true;.}..if.(version_
9ac0 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 32 27 2c 20 27 3c compare(PHP_VERSION,.'5.3.2',.'<
9ae0 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 70 68 70 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 ')).{.$errors['php'].=.PHP_VERSI
9b00 4f 4e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 65 72 72 6f 72 73 5b 27 70 68 70 27 5d ON;.}..if.(!isset($errors['php']
9b20 29 20 26 26 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 4f 4e ).&&.version_compare(PHP_VERSION
9b40 2c 20 27 35 2e 33 2e 34 27 2c 20 27 3c 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 70 68 ,.'5.3.4',.'<')).{.$warnings['ph
9b60 70 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e p'].=.PHP_VERSION;.}..if.(!exten
9b80 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 24 77 61 72 6e 69 sion_loaded('openssl')).{.$warni
9ba0 6e 67 73 5b 27 6f 70 65 6e 73 73 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 6e ngs['openssl'].=.true;.}..if.(in
9bc0 69 5f 67 65 74 28 27 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 27 29 29 20 7b 0a 24 77 61 72 6e i_get('apc.enable_cli')).{.$warn
9be0 69 6e 67 73 5b 27 61 70 63 5f 63 6c 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 6f 62 5f 73 74 ings['apc_cli'].=.true;.}..ob_st
9c00 61 72 74 28 29 3b 0a 70 68 70 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 41 4c 29 3b 0a 24 70 art();.phpinfo(INFO_GENERAL);.$p
9c20 68 70 69 6e 66 6f 20 3d 20 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 69 66 20 28 70 72 65 hpinfo.=.ob_get_clean();.if.(pre
9c40 67 5f 6d 61 74 63 68 28 27 7b 43 6f 6e 66 69 67 75 72 65 20 43 6f 6d 6d 61 6e 64 28 3f 3a 20 2a g_match('{Configure.Command(?:.*
9c60 3c 2f 74 64 3e 3c 74 64 20 63 6c 61 73 73 3d 22 76 22 3e 7c 20 2a 3d 3e 20 2a 29 28 2e 2a 3f 29 </td><td.class="v">|.*=>.*)(.*?)
9c80 28 3f 3a 3c 2f 74 64 3e 7c 24 29 7d 6d 27 2c 20 24 70 68 70 69 6e 66 6f 2c 20 24 6d 61 74 63 68 (?:</td>|$)}m',.$phpinfo,.$match
9ca0 29 29 20 7b 0a 24 63 6f 6e 66 69 67 75 72 65 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 0a 69 66 )).{.$configure.=.$match[1];..if
9cc0 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 .(false.!==.strpos($configure,.'
9ce0 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 --enable-sigchild')).{.$warnings
9d00 5b 27 73 69 67 63 68 69 6c 64 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 ['sigchild'].=.true;.}..if.(fals
9d20 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 2d 2d 77 69 74 68 e.!==.strpos($configure,.'--with
9d40 2d 63 75 72 6c 77 72 61 70 70 65 72 73 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 63 75 -curlwrappers')).{.$warnings['cu
9d60 72 6c 77 72 61 70 70 65 72 73 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 rlwrappers'].=.true;.}.}..if.(!e
9d80 6d 70 74 79 28 24 65 72 72 6f 72 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f 72 mpty($errors)).{.foreach.($error
9da0 73 20 61 73 20 24 65 72 72 6f 72 20 3d 3e 20 24 63 75 72 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 s.as.$error.=>.$current).{.switc
9dc0 68 20 28 24 65 72 72 6f 72 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 74 65 78 74 20 3d h.($error).{.case.'php':.$text.=
9de0 20 50 48 50 5f 45 4f 4c 2e 22 59 6f 75 72 20 50 48 50 20 28 7b 24 63 75 72 72 65 6e 74 7d 29 20 .PHP_EOL."Your.PHP.({$current}).
9e00 69 73 20 74 6f 6f 20 6f 6c 64 2c 20 79 6f 75 20 6d 75 73 74 20 75 70 67 72 61 64 65 20 74 6f 20 is.too.old,.you.must.upgrade.to.
9e20 50 48 50 20 35 2e 33 2e 32 20 6f 72 20 68 69 67 68 65 72 2e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 PHP.5.3.2.or.higher.";.break;..c
9e40 61 73 65 20 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 3a 0a 24 74 65 78 74 20 3d 20 50 ase.'allow_url_fopen':.$text.=.P
9e60 48 50 5f 45 4f 4c 2e 22 54 68 65 20 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 73 65 74 74 HP_EOL."The.allow_url_fopen.sett
9e80 69 6e 67 20 69 73 20 69 6e 63 6f 72 72 65 63 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 ing.is.incorrect.".PHP_EOL;.$tex
9ea0 74 20 2e 3d 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 t..=."Add.the.following.to.the.e
9ec0 6e 64 20 6f 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a nd.of.your.`php.ini`:".PHP_EOL;.
9ee0 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 3d 20 $text..=."....allow_url_fopen.=.
9f00 4f 6e 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 74 72 75 65 3b 0a On";.$displayIniMessage.=.true;.
9f20 62 72 65 61 6b 3b 0a 7d 0a 24 6f 75 74 28 24 74 65 78 74 2c 20 27 65 72 72 6f 72 27 29 3b 0a 7d break;.}.$out($text,.'error');.}
9f40 0a 0a 24 6f 75 74 70 75 74 20 2e 3d 20 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d ..$output..=.PHP_EOL;.}..if.(!em
9f60 70 74 79 28 24 77 61 72 6e 69 6e 67 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 77 61 72 6e pty($warnings)).{.foreach.($warn
9f80 69 6e 67 73 20 61 73 20 24 77 61 72 6e 69 6e 67 20 3d 3e 20 24 63 75 72 72 65 6e 74 29 20 7b 0a ings.as.$warning.=>.$current).{.
9fa0 73 77 69 74 63 68 20 28 24 77 61 72 6e 69 6e 67 29 20 7b 0a 63 61 73 65 20 27 61 70 63 5f 63 6c switch.($warning).{.case.'apc_cl
9fc0 69 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 61 70 63 2e 65 6e 61 i':.$text.=.PHP_EOL."The.apc.ena
9fe0 62 6c 65 5f 63 6c 69 20 73 65 74 74 69 6e 67 20 69 73 20 69 6e 63 6f 72 72 65 63 74 2e 22 2e 50 ble_cli.setting.is.incorrect.".P
a000 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 HP_EOL;.$text..=."Add.the.follow
a020 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 ing.to.the.end.of.your.`php.ini`
a040 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 61 70 63 2e 65 6e :".PHP_EOL;.$text..=."....apc.en
a060 61 62 6c 65 5f 63 6c 69 20 3d 20 4f 66 66 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 able_cli.=.Off";.$displayIniMess
a080 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 73 69 67 63 68 69 age.=.true;.break;..case.'sigchi
a0a0 6c 64 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 50 48 50 20 77 61 73 20 63 6f ld':.$text.=.PHP_EOL."PHP.was.co
a0c0 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 20 77 68 mpiled.with.--enable-sigchild.wh
a0e0 69 63 68 20 63 61 6e 20 63 61 75 73 65 20 69 73 73 75 65 73 20 6f 6e 20 73 6f 6d 65 20 70 6c 61 ich.can.cause.issues.on.some.pla
a100 74 66 6f 72 6d 73 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 52 65 63 6f tforms.".PHP_EOL;.$text..=."Reco
a120 6d 70 69 6c 65 20 69 74 20 77 69 74 68 6f 75 74 20 74 68 69 73 20 66 6c 61 67 20 69 66 20 70 6f mpile.it.without.this.flag.if.po
a140 73 73 69 62 6c 65 2c 20 73 65 65 20 61 6c 73 6f 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 ssible,.see.also:".PHP_EOL;.$tex
a160 74 20 2e 3d 20 22 20 20 20 20 68 74 74 70 73 3a 2f 2f 62 75 67 73 2e 70 68 70 2e 6e 65 74 2f 62 t..=."....https://bugs.php.net/b
a180 75 67 2e 70 68 70 3f 69 64 3d 32 32 39 39 39 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 ug.php?id=22999";.break;..case.'
a1a0 63 75 72 6c 77 72 61 70 70 65 72 73 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 curlwrappers':.$text.=.PHP_EOL."
a1c0 50 48 50 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 77 69 74 68 2d 63 75 72 PHP.was.compiled.with.--with-cur
a1e0 6c 77 72 61 70 70 65 72 73 20 77 68 69 63 68 20 77 69 6c 6c 20 63 61 75 73 65 20 69 73 73 75 65 lwrappers.which.will.cause.issue
a200 73 20 77 69 74 68 20 48 54 54 50 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 6e 64 20 47 s.with.HTTP.authentication.and.G
a220 69 74 48 75 62 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 52 65 63 6f 6d itHub.".PHP_EOL;.$text..=."Recom
a240 70 69 6c 65 20 69 74 20 77 69 74 68 6f 75 74 20 74 68 69 73 20 66 6c 61 67 20 69 66 20 70 6f 73 pile.it.without.this.flag.if.pos
a260 73 69 62 6c 65 22 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 sible";.break;..case.'openssl':.
a280 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 $text.=.PHP_EOL."The.openssl.ext
a2a0 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 72 65 ension.is.missing,.which.will.re
a2c0 64 75 63 65 20 74 68 65 20 73 65 63 75 72 69 74 79 20 61 6e 64 20 73 74 61 62 69 6c 69 74 79 20 duce.the.security.and.stability.
a2e0 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 of.Composer.".PHP_EOL;.$text..=.
a300 22 49 66 20 70 6f 73 73 69 62 6c 65 20 79 6f 75 20 73 68 6f 75 6c 64 20 65 6e 61 62 6c 65 20 69 "If.possible.you.should.enable.i
a320 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 20 2d 2d 77 69 74 68 2d 6f t.or.recompile.php.with.--with-o
a340 70 65 6e 73 73 6c 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 74 65 penssl";.break;..case.'php':.$te
a360 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 59 6f 75 72 20 50 48 50 20 28 7b 24 63 75 72 72 65 6e xt.=.PHP_EOL."Your.PHP.({$curren
a380 74 7d 29 20 69 73 20 71 75 69 74 65 20 6f 6c 64 2c 20 75 70 67 72 61 64 69 6e 67 20 74 6f 20 50 t}).is.quite.old,.upgrading.to.P
a3a0 48 50 20 35 2e 33 2e 34 20 6f 72 20 68 69 67 68 65 72 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 HP.5.3.4.or.higher.is.recommende
a3c0 64 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 43 6f 6d 70 6f 73 65 72 20 d.".PHP_EOL;.$text..=."Composer.
a3e0 77 6f 72 6b 73 20 77 69 74 68 20 35 2e 33 2e 32 2b 20 66 6f 72 20 6d 6f 73 74 20 70 65 6f 70 6c works.with.5.3.2+.for.most.peopl
a400 65 2c 20 62 75 74 20 74 68 65 72 65 20 6d 69 67 68 74 20 62 65 20 65 64 67 65 20 63 61 73 65 20 e,.but.there.might.be.edge.case.
a420 69 73 73 75 65 73 2e 22 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 24 6f 75 74 28 24 74 65 78 74 2c 20 27 issues.";.break;.}.$out($text,.'
a440 77 61 72 6e 69 6e 67 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 70 6c 61 79 49 6e 69 4d warning');.}.}..if.($displayIniM
a460 65 73 73 61 67 65 29 20 7b 0a 24 6f 75 74 28 24 69 6e 69 4d 65 73 73 61 67 65 2c 20 27 77 61 72 essage).{.$out($iniMessage,.'war
a480 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 77 61 72 6e 69 6e 67 73 20 26 26 20 ning');.}..return.!$warnings.&&.
a4a0 21 24 65 72 72 6f 72 73 20 3f 20 74 72 75 65 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c !$errors.?.true.:.$output;.}.}.<
a4c0 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
a4e0 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 46 61 63 74 6f 72 er\Command;..use.Composer\Factor
a500 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;.
a520 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 5c use.Composer\DependencyResolver\
a540 50 6f 6f 6c 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 43 Pool;.use.Composer\Package\LinkC
a560 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 65 onstraint\VersionConstraint;.use
a580 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 69 74 65 52 65 .Composer\Repository\CompositeRe
a5a0 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 pository;..use.Symfony\Component
a5c0 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
a5e0 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
a600 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
a620 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
a640 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
a660 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 0a 0a 0a 63 \Output\OutputInterface;.......c
a680 6c 61 73 73 20 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d lass.ArchiveCommand.extends.Comm
a6a0 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
a6c0 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 72 63 68 69 76 65 27 re().{.$this.->setName('archive'
a6e0 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 61 6e 20 61 72 ).->setDescription('Create.an.ar
a700 63 68 69 76 65 20 6f 66 20 74 68 69 73 20 63 6f 6d 70 6f 73 65 72 20 70 61 63 6b 61 67 65 27 29 chive.of.this.composer.package')
a720 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 20 49 6e 70 75 .->setDefinition(array(.new.Inpu
a740 74 41 72 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 tArgument('package',.InputArgume
a760 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 61 72 nt::OPTIONAL,.'The.package.to.ar
a780 63 68 69 76 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f chive.instead.of.the.current.pro
a7a0 6a 65 63 74 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 ject'),.new.InputArgument('versi
a7c0 6f 6e 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 54 on',.InputArgument::OPTIONAL,.'T
a7e0 68 65 20 70 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 20 74 6f 20 61 72 63 68 69 76 65 27 29 2c he.package.version.to.archive'),
a800 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 66 27 2c 20 .new.InputOption('format',.'f',.
a820 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 46 6f InputOption::VALUE_REQUIRED,.'Fo
a840 72 6d 61 74 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 61 72 63 68 69 76 65 3a 20 74 rmat.of.the.resulting.archive:.t
a860 61 72 20 6f 72 20 7a 69 70 27 2c 20 27 74 61 72 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 ar.or.zip',.'tar'),.new.InputOpt
a880 69 6f 6e 28 27 64 69 72 27 2c 20 66 61 6c 73 65 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 ion('dir',.false,.InputOption::V
a8a0 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 57 72 69 74 65 20 74 68 65 20 61 72 63 68 69 76 ALUE_REQUIRED,.'Write.the.archiv
a8c0 65 20 74 6f 20 74 68 69 73 20 64 69 72 65 63 74 6f 72 79 27 2c 20 27 2e 27 29 2c 0a 29 29 0a 2d e.to.this.directory',.'.'),.)).-
a8e0 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 61 72 63 68 69 76 >setHelp(<<<EOT.The.<info>archiv
a900 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 6e 20 61 72 63 68 e</info>.command.creates.an.arch
a920 69 76 65 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 6d 61 74 0a 63 6f 6e 74 ive.of.the.specified.format.cont
a940 61 69 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 aining.the.files.and.directories
a960 20 6f 66 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 70 72 6f 6a 65 63 74 20 6f 72 20 74 68 65 20 .of.the.Composer.project.or.the.
a980 73 70 65 63 69 66 69 65 64 0a 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 specified.package.in.the.specifi
a9a0 65 64 20 76 65 72 73 69 6f 6e 20 61 6e 64 20 77 72 69 74 65 73 20 69 74 20 74 6f 20 74 68 65 20 ed.version.and.writes.it.to.the.
a9c0 73 70 65 63 69 66 69 65 64 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 specified.directory...<info>php.
a9e0 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 61 72 63 68 69 76 65 20 5b 2d 2d 66 6f 72 6d 61 74 3d composer.phar.archive.[--format=
aa00 7a 69 70 5d 20 5b 2d 2d 64 69 72 3d 2f 66 6f 6f 5d 20 5b 70 61 63 6b 61 67 65 20 5b 76 65 72 73 zip].[--dir=/foo].[package.[vers
aa20 69 6f 6e 5d 5d 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 ion]]</info>..EOT.).;.}..protect
aa40 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 61 ed.function.execute(InputInterfa
aa60 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 70 ce.$input,.OutputInterface.$outp
aa80 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 28 0a 24 74 68 ut).{.return.$this->archive(.$th
aaa0 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 is->getIO(),.$input->getArgument
aac0 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 ('package'),.$input->getArgument
aae0 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 ('version'),.$input->getOption('
ab00 66 6f 72 6d 61 74 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 69 72 format'),.$input->getOption('dir
ab20 27 29 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 20 61 72 63 68 ').);.}..protected.function.arch
ab40 69 76 65 28 49 4f 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 ive(IOInterface.$io,.$packageNam
ab60 65 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 20 24 66 6f 72 6d e.=.null,.$version.=.null,.$form
ab80 61 74 20 3d 20 27 74 61 72 27 2c 20 24 64 65 73 74 20 3d 20 27 2e 27 29 0a 7b 0a 24 63 6f 6e 66 at.=.'tar',.$dest.=.'.').{.$conf
aba0 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 24 66 ig.=.Factory::createConfig();.$f
abc0 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 3b 0a 24 61 72 63 68 69 76 65 4d 61 actory.=.new.Factory;.$archiveMa
abe0 6e 61 67 65 72 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 41 72 63 68 69 76 65 4d nager.=.$factory->createArchiveM
ac00 61 6e 61 67 65 72 28 24 63 6f 6e 66 69 67 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 4e 61 anager($config);..if.($packageNa
ac20 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 50 61 me).{.$package.=.$this->selectPa
ac40 63 6b 61 67 65 28 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f ckage($io,.$packageName,.$versio
ac60 6e 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a n);..if.(!$package).{.return.1;.
ac80 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 }.}.else.{.$package.=.$this->get
aca0 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 0a 24 69 6f Composer()->getPackage();.}..$io
acc0 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 69 6e 67 20 74 68 65 20 61 72 63 68 ->write('<info>Creating.the.arch
ace0 69 76 65 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 61 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2d 3e ive.</info>');.$archiveManager->
ad00 61 72 63 68 69 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 24 64 65 73 74 archive($package,.$format,.$dest
ad20 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 );..return.0;.}..protected.funct
ad40 69 6f 6e 20 73 65 6c 65 63 74 50 61 63 6b 61 67 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 ion.selectPackage(IOInterface.$i
ad60 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c o,.$packageName,.$version.=.null
ad80 29 0a 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 53 65 61 72 63 68 69 6e 67 20 ).{.$io->write('<info>Searching.
ada0 66 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 70 61 63 6b 61 67 65 2e 3c 2f 69 6e 66 6f for.the.specified.package.</info
adc0 3e 27 29 3b 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 >');..if.($composer.=.$this->get
ade0 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 Composer(false)).{.$localRepo.=.
ae00 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 28 $composer->getRepositoryManager(
ae20 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 )->getLocalRepository();.$repos.
ae40 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 79 5f =.new.CompositeRepository(array_
ae60 6d 65 72 67 65 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 merge(array($localRepo),.$compos
ae80 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 65 74 52 er->getRepositoryManager()->getR
aea0 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 24 64 65 66 61 75 epositories()));.}.else.{.$defau
aec0 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 65 66 61 75 6c 74 ltRepos.=.Factory::createDefault
aee0 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 29 29 3b 0a 24 6f Repositories($this->getIO());.$o
af00 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 72 2e 6a 73 6f 6e utput->writeln('No.composer.json
af20 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 63 74 6f 72 79 2c .found.in.the.current.directory,
af40 20 73 65 61 72 63 68 69 6e 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 .searching.packages.from.'...imp
af60 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 6c 74 52 65 lode(',.',.array_keys($defaultRe
af80 70 6f 73 29 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 pos)));.$repos.=.new.CompositeRe
afa0 70 6f 73 69 74 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 3b 0a 7d 0a 0a 24 70 6f 6f pository($defaultRepos);.}..$poo
afc0 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 l.=.new.Pool();.$pool->addReposi
afe0 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 24 76 tory($repos);..$constraint.=.($v
b000 65 72 73 69 6f 6e 29 20 3f 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 ersion).?.new.VersionConstraint(
b020 27 3e 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 20 3a 20 6e 75 6c 6c 3b 0a 24 70 61 63 6b 61 67 65 '>=',.$version).:.null;.$package
b040 73 20 3d 20 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 s.=.$pool->whatProvides($package
b060 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 Name,.$constraint);..if.(count($
b080 70 61 63 6b 61 67 65 73 29 20 3e 20 31 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 packages).>.1).{.$package.=.$pac
b0a0 6b 61 67 65 73 5b 30 5d 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 46 6f 75 6e kages[0];.$io->write('<info>Foun
b0c0 64 20 6d 75 6c 74 69 70 6c 65 20 6d 61 74 63 68 65 73 2c 20 73 65 6c 65 63 74 65 64 20 27 2e 24 d.multiple.matches,.selected.'.$
b0e0 70 61 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 2e 3c 2f 69 package->getPrettyString().'.</i
b100 6e 66 6f 3e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 41 6c 74 65 72 6e 61 74 69 76 65 73 nfo>');.$io->write('Alternatives
b120 20 77 65 72 65 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 .were.'.implode(',.',.array_map(
b140 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 20 72 65 74 75 72 6e 20 24 70 2d 3e 67 65 74 50 72 function.($p).{.return.$p->getPr
b160 65 74 74 79 53 74 72 69 6e 67 28 29 3b 20 7d 2c 20 24 70 61 63 6b 61 67 65 73 29 29 2e 27 2e 27 ettyString();.},.$packages)).'.'
b180 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 50 6c 65 61 73 65 20 75 );.$io->write('<comment>Please.u
b1a0 73 65 20 61 20 6d 6f 72 65 20 73 70 65 63 69 66 69 63 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f se.a.more.specific.constraint.to
b1c0 20 70 69 63 6b 20 61 20 64 69 66 66 65 72 65 6e 74 20 70 61 63 6b 61 67 65 2e 3c 2f 63 6f 6d 6d .pick.a.different.package.</comm
b1e0 65 6e 74 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 ent>');.}.elseif.($packages).{.$
b200 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 73 5b 30 5d 3b 0a 24 69 6f 2d 3e 77 72 69 package.=.$packages[0];.$io->wri
b220 74 65 28 27 3c 69 6e 66 6f 3e 46 6f 75 6e 64 20 61 6e 20 65 78 61 63 74 20 6d 61 74 63 68 20 27 te('<info>Found.an.exact.match.'
b240 2e 24 70 61 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 2e 3c .$package->getPrettyString().'.<
b260 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c /info>');.}.else.{.$io->write('<
b280 65 72 72 6f 72 3e 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6d error>Could.not.find.a.package.m
b2a0 61 74 63 68 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e 27 2e 3c 2f 65 72 72 6f 72 atching.'.$packageName.'.</error
b2c0 3e 27 29 3b 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 24 70 61 >');.return.false;.}..return.$pa
b2e0 63 6b 61 67 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 ckage;.}.}.<?php............name
b300 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 20 43 6f 6d space.Composer\Command;..use.Com
b320 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 43 6f 6e poser\Composer;.use.Composer\Con
b340 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 sole\Application;.use.Composer\I
b360 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 49 4f 5c 4e O\IOInterface;.use.Composer\IO\N
b380 75 6c 6c 49 4f 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 ullIO;.use.Symfony\Component\Con
b3a0 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 20 61 73 20 42 61 73 65 43 6f 6d 6d sole\Command\Command.as.BaseComm
b3c0 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6d 6d 61 and;........abstract.class.Comma
b3e0 6e 64 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 69 76 nd.extends.BaseCommand.{....priv
b400 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a ate.$composer;.....private.$io;.
b420 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 70 6f 73 65 72 .....public.function.getComposer
b440 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d ($required.=.true).{.if.(null.==
b460 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f =.$this->composer).{.$applicatio
b480 6e 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 3b 0a 69 66 20 n.=.$this->getApplication();.if.
b4a0 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 ($application.instanceof.Applica
b4c0 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 61 70 70 6c tion).{..$this->composer.=.$appl
b4e0 69 63 61 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 29 3b ication->getComposer($required);
b500 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 71 75 69 72 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 .}.elseif.($required).{.throw.ne
b520 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 w.\RuntimeException(.'Could.not.
b540 63 72 65 61 74 65 20 61 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 20 69 6e 73 74 61 create.a.Composer\Composer.insta
b560 6e 63 65 2c 20 79 6f 75 20 6d 75 73 74 20 69 6e 6a 65 63 74 20 27 2e 0a 27 6f 6e 65 20 69 66 20 nce,.you.must.inject.'..'one.if.
b580 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e 6f 74 20 75 73 65 64 20 77 69 74 68 20 61 20 this.command.is.not.used.with.a.
b5a0 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 6f 6e 20 69 6e 73 Composer\Console\Application.ins
b5c0 74 61 6e 63 65 27 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d tance'.);.}.}..return.$this->com
b5e0 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 69 6f 6e 20 73 65 74 poser;.}.....public.function.set
b600 43 6f 6d 70 6f 73 65 72 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 24 Composer(Composer.$composer).{.$
b620 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 7d 0a 0a 0a this->composer.=.$composer;.}...
b640 0a 0a 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 69 66 20 28 ..public.function.getIO().{.if.(
b660 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6f 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 null.===.$this->io).{.$applicati
b680 6f 6e 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 3b 0a 69 66 on.=.$this->getApplication();.if
b6a0 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 .($application.instanceof.Applic
b6c0 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 61 70 70 6c 69 63 61 74 69 ation).{..$this->io.=.$applicati
b6e0 6f 6e 2d 3e 67 65 74 49 4f 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 on->getIO();.}.else.{.$this->io.
b700 3d 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 =.new.NullIO();.}.}..return.$thi
b720 73 2d 3e 69 6f 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 s->io;.}.....public.function.set
b740 49 4f 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 IO(IOInterface.$io).{.$this->io.
b760 3d 20 24 69 6f 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 =.$io;.}.}.<?php............name
b780 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 20 43 6f 6d space.Composer\Command;..use.Com
b7a0 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 46 61 63 74 6f poser\Config;.use.Composer\Facto
b7c0 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 20 ry;.use.Composer\Installer;.use.
b7e0 43 6f 6d 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 Composer\Installer\ProjectInstal
b800 6c 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 72 5c 49 6e 73 74 ler;.use.Composer\Installer\Inst
b820 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 72 5c 49 4f allationManager;.use.Composer\IO
b840 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 61 \IOInterface;.use.Composer\Packa
b860 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 50 61 63 ge\BasePackage;.use.Composer\Pac
b880 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 6e 73 74 kage\LinkConstraint\VersionConst
b8a0 72 61 69 6e 74 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 raint;.use.Composer\DependencyRe
b8c0 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 solver\Pool;.use.Composer\Depend
b8e0 65 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 encyResolver\Operation\InstallOp
b900 65 72 61 74 69 6f 6e 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 eration;.use.Composer\Repository
b920 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \ComposerRepository;.use.Compose
b940 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 72 79 r\Repository\CompositeRepository
b960 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 46 69 6c 65 73 79 ;.use.Composer\Repository\Filesy
b980 73 74 65 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 52 65 70 stemRepository;.use.Composer\Rep
b9a0 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 ository\InstalledFilesystemRepos
b9c0 69 74 6f 72 79 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 itory;.use.Symfony\Component\Con
b9e0 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 65 20 53 79 sole\Input\InputArgument;.use.Sy
ba00 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 6e mfony\Component\Console\Input\In
ba20 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 6e putInterface;.use.Symfony\Compon
ba40 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 75 ent\Console\Input\InputOption;.u
ba60 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 74 se.Symfony\Component\Console\Out
ba80 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 66 6f 6e 79 put\OutputInterface;.use.Symfony
baa0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 75 73 65 20 43 6f \Component\Finder\Finder;.use.Co
bac0 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
bae0 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
bb00 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 6d 70 \Util\RemoteFilesystem;.use.Comp
bb20 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 72 73 oser\Package\Version\VersionPars
bb40 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f er;........class.CreateProjectCo
bb60 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 74 65 mmand.extends.Command.{.protecte
bb80 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 0a 2d d.function.configure().{.$this.-
bba0 3e 73 65 74 4e 61 6d 65 28 27 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 27 29 0a 2d 3e 73 65 74 >setName('create-project').->set
bbc0 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 Description('Create.new.project.
bbe0 66 72 6f 6d 20 61 20 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 67 69 76 65 6e 20 64 69 72 65 63 74 from.a.package.into.given.direct
bc00 6f 72 79 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 ory.').->setDefinition(array(.ne
bc20 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 2c 20 49 6e 70 75 74 w.InputArgument('package',.Input
bc40 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 6e 61 6d Argument::REQUIRED,.'Package.nam
bc60 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 e.to.be.installed'),.new.InputAr
bc80 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e gument('directory',.InputArgumen
bca0 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 44 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 t::OPTIONAL,.'Directory.where.th
bcc0 65 20 66 69 6c 65 73 20 73 68 6f 75 6c 64 20 62 65 20 63 72 65 61 74 65 64 27 29 2c 0a 6e 65 77 e.files.should.be.created'),.new
bce0 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 .InputArgument('version',.InputA
bd00 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 2c 20 77 69 6c rgument::OPTIONAL,.'Version,.wil
bd20 6c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6c 61 74 65 73 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 l.defaults.to.latest'),.new.Inpu
bd40 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 73 27 2c 20 49 6e 70 75 74 4f tOption('stability',.'s',.InputO
bd60 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4d 69 6e 69 6d 75 6d 2d ption::VALUE_REQUIRED,.'Minimum-
bd80 73 74 61 62 69 6c 69 74 79 20 61 6c 6c 6f 77 65 64 20 28 75 6e 6c 65 73 73 20 61 20 76 65 72 73 stability.allowed.(unless.a.vers
bda0 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 29 2e 27 2c 20 27 73 74 61 62 6c 65 27 29 2c 0a ion.is.specified).',.'stable'),.
bdc0 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 2c new.InputOption('prefer-source',
bde0 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,.
be00 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 67 'Forces.installation.from.packag
be20 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 69 e.sources.when.possible,.includi
be40 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 74 ng.VCS.information.'),.new.Input
be60 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 Option('prefer-dist',.null,.Inpu
be80 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
bea0 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e tallation.from.package.dist.even
bec0 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f .for.dev.versions.'),.new.InputO
bee0 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 49 6e ption('repository-url',.null,.In
bf00 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 63 6b putOption::VALUE_REQUIRED,.'Pick
bf20 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 20 6c .a.different.repository.url.to.l
bf40 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 70 75 ook.for.the.package.'),.new.Inpu
bf60 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 6f 6e tOption('dev',.null,.InputOption
bf80 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 61 6c ::VALUE_NONE,.'Whether.to.instal
bfa0 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 2e 27 l.dependencies.for.development.'
bfc0 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e ),.new.InputOption('no-custom-in
bfe0 73 74 61 6c 6c 65 72 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 stallers',.null,.InputOption::VA
c000 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 64 69 73 61 62 6c 65 20 63 75 LUE_NONE,.'Whether.to.disable.cu
c020 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 stom.installers.'),.new.InputOpt
c040 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 ion('no-scripts',.null,.InputOpt
c060 69 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 70 72 65 ion::VALUE_NONE,.'Whether.to.pre
c080 76 65 6e 74 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 64 65 66 69 6e 65 64 20 73 63 vent.execution.of.all.defined.sc
c0a0 72 69 70 74 73 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 ripts.in.the.root.package.'),.ne
c0c0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c w.InputOption('no-progress',.nul
c0e0 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 44 6f 20 l,.InputOption::VALUE_NONE,.'Do.
c100 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c not.output.download.progress.'),
c120 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 2c 20 6e 75 6c .new.InputOption('keep-vcs',.nul
c140 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 57 68 65 l,.InputOption::VALUE_NONE,.'Whe
c160 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 64 65 6c 65 74 69 6f 6e 20 76 63 73 20 66 6f 6c ther.to.prevent.deletion.vcs.fol
c180 64 65 72 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 65 20 der.'),.)).->setHelp(<<<EOT.The.
c1a0 3c 69 6e 66 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 <info>create-project</info>.comm
c1c0 61 6e 64 20 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 and.creates.a.new.project.from.a
c1e0 20 67 69 76 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 .given.package.into.a.new.direct
c200 6f 72 79 2e 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 ory..You.can.use.this.command.to
c220 20 62 6f 6f 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 .bootstrap.new.projects.or.setup
c240 20 61 20 63 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 .a.clean.version-controlled.inst
c260 61 6c 6c 61 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 allation.for.developers.of.your.
c280 70 72 6f 6a 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 project...<info>php.composer.pha
c2a0 72 20 63 72 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 r.create-project.vendor/project.
c2c0 74 61 72 67 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 target-directory.[version]</info
c2e0 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 76 65 72 73 >..You.can.also.specify.the.vers
c300 69 6f 6e 20 77 69 74 68 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 75 73 69 6e 67 20 ion.with.the.package.name.using.
c320 3d 20 6f 72 20 3a 20 61 73 20 73 65 70 61 72 61 74 6f 72 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c =.or.:.as.separator...To.install
c340 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 2c 20 65 69 74 68 65 72 20 73 70 65 63 69 .unstable.packages,.either.speci
c360 66 79 20 74 68 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 77 61 6e 74 2c 20 6f 72 20 75 73 65 20 fy.the.version.you.want,.or.use.
c380 74 68 65 0a 2d 2d 73 74 61 62 69 6c 69 74 79 3d 64 65 76 20 28 77 68 65 72 65 20 64 65 76 20 63 the.--stability=dev.(where.dev.c
c3a0 61 6e 20 62 65 20 6f 6e 65 20 6f 66 20 52 43 2c 20 62 65 74 61 2c 20 61 6c 70 68 61 20 6f 72 20 an.be.one.of.RC,.beta,.alpha.or.
c3c0 64 65 76 29 2e 0a 0a 54 6f 20 73 65 74 75 70 20 61 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b dev)...To.setup.a.developer.work
c3e0 61 62 6c 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 able.version.you.should.create.t
c400 68 65 20 70 72 6f 6a 65 63 74 20 75 73 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 he.project.using.the.source.cont
c420 72 6f 6c 6c 65 64 20 63 6f 64 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e rolled.code.by.appending.the.<in
c440 66 6f 3e 27 2d 2d 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 fo>'--prefer-source'</info>.flag
c460 2e 20 41 6c 73 6f 2c 20 69 74 20 69 73 0a 61 64 76 69 73 61 62 6c 65 20 74 6f 20 69 6e 73 74 61 ..Also,.it.is.advisable.to.insta
c480 6c 6c 20 61 6c 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 ll.all.dependencies.required.for
c4a0 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 0a 3c 69 .development.by.appending.the.<i
c4c0 6e 66 6f 3e 27 2d 2d 64 65 76 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 54 6f 20 69 6e 73 nfo>'--dev'</info>.flag...To.ins
c4e0 74 61 6c 6c 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 72 65 70 6f tall.a.package.from.another.repo
c500 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 6f 75 0a sitory.than.the.default.one.you.
c520 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 6f 72 79 can.pass.the.<info>'--repository
c540 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 3c 2f 69 -url=http://myrepository.org'</i
c560 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 74 65 64 nfo>.flag...EOT.).;.}..protected
c580 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 65 .function.execute(InputInterface
c5a0 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 74 .$input,.OutputInterface.$output
c5c0 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e ).{.$config.=.Factory::createCon
c5e0 66 69 67 28 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 24 fig();..$preferSource.=.false;.$
c600 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6e preferDist.=.false;.switch.($con
c620 66 69 67 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b fig->get('preferred-install')).{
c640 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 .case.'source':.$preferSource.=.
c660 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 true;.break;.case.'dist':.$prefe
c680 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 rDist.=.true;.break;.case.'auto'
c6a0 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 :.default:...break;.}.if.($input
c6c0 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 20 7c 7c 20 ->getOption('prefer-source').||.
c6e0 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 2d 64 69 73 74 27 29 $input->getOption('prefer-dist')
c700 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f ).{.$preferSource.=.$input->getO
c720 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 ption('prefer-source');.$preferD
c740 69 73 74 20 3d 20 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 2d ist.=.$input->getOption('prefer-
c760 64 69 73 74 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c dist');.}..return.$this->install
c780 50 72 6f 6a 65 63 74 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 63 6f 6e 66 69 67 Project(.$this->getIO(),.$config
c7a0 2c 0a 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 ,.$input->getArgument('package')
c7c0 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 ,.$input->getArgument('directory
c7e0 27 29 2c 0a 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 '),.$input->getArgument('version
c800 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 '),.$input->getOption('stability
c820 27 29 2c 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 0a 24 70 72 65 66 65 72 44 69 73 74 2c 0a '),.$preferSource,.$preferDist,.
c840 24 69 6e 70 75 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 $input->getOption('dev'),.$input
c860 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 29 2c 0a 24 ->getOption('repository-url'),.$
c880 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 input->getOption('no-custom-inst
c8a0 61 6c 6c 65 72 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d allers'),.$input->getOption('no-
c8c0 73 63 72 69 70 74 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6b 65 scripts'),.$input->getOption('ke
c8e0 65 70 2d 76 63 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d ep-vcs'),.$input->getOption('no-
c900 70 72 6f 67 72 65 73 73 27 29 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e progress').);.}..public.function
c920 20 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c .installProject(IOInterface.$io,
c940 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f .$config,.$packageName,.$directo
c960 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c ry.=.null,.$packageVersion.=.nul
c980 6c 2c 20 24 73 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 24 70 72 65 66 65 l,.$stability.=.'stable',.$prefe
c9a0 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 rSource.=.false,.$preferDist.=.f
c9c0 61 6c 73 65 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 alse,.$installDevPackages.=.fals
c9e0 65 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 e,.$repositoryUrl.=.null,.$disab
ca00 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 53 leCustomInstallers.=.false,.$noS
ca20 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 6b 65 65 70 56 63 73 20 3d 20 66 61 6c 73 65 cripts.=.false,.$keepVcs.=.false
ca40 2c 20 24 6e 6f 50 72 6f 67 72 65 73 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 73 74 61 62 69 6c ,.$noProgress.=.false).{.$stabil
ca60 69 74 79 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 69 66 ity.=.strtolower($stability);.if
ca80 20 28 24 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 72 63 27 29 20 7b 0a 24 73 74 61 62 69 6c .($stability.===.'rc').{.$stabil
caa0 69 74 79 20 3d 20 27 52 43 27 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 42 61 73 65 50 61 63 ity.=.'RC';.}.if.(!isset(BasePac
cac0 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 29 29 kage::$stabilities[$stability]))
cae0 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
cb00 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 73 74 61 62 69 6c 69 74 79 20 70 72 6f 76 69 64 eption('Invalid.stability.provid
cb20 65 64 20 28 27 2e 24 73 74 61 62 69 6c 69 74 79 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 ed.('.$stability.'),.must.be.one
cb40 20 6f 66 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 .of:.'.implode(',.',.array_keys(
cb60 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 29 3b 0a 7d 0a BasePackage::$stabilities)));.}.
cb80 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 20 7b 0a .if.(null.===.$repositoryUrl).{.
cba0 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 $sourceRepo.=.new.CompositeRepos
cbc0 69 74 6f 72 79 28 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 itory(Factory::createDefaultRepo
cbe0 73 69 74 6f 72 69 65 73 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 7d 20 65 6c 73 65 69 sitories($io,.$config));.}.elsei
cc00 66 20 28 22 6a 73 6f 6e 22 20 3d 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 72 65 70 6f 73 69 74 6f f.("json".===.pathinfo($reposito
cc20 72 79 55 72 6c 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 29 20 7b 0a 24 73 ryUrl,.PATHINFO_EXTENSION)).{.$s
cc40 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 ourceRepo.=.new.FilesystemReposi
cc60 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c tory(new.JsonFile($repositoryUrl
cc80 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 29 3b 0a 7d ,.new.RemoteFilesystem($io)));.}
cca0 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 65 70 6f 73 69 74 6f 72 .elseif.(0.===.strpos($repositor
ccc0 79 55 72 6c 2c 20 27 68 74 74 70 27 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e yUrl,.'http')).{.$sourceRepo.=.n
cce0 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 27 75 72 6c ew.ComposerRepository(array('url
cd00 27 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 2c 20 24 69 6f 2c 20 24 63 6f 6e 66 '.=>.$repositoryUrl),.$io,.$conf
cd20 69 67 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 61 6c 69 64 ig);.}.else.{.throw.new.\Invalid
cd40 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 ArgumentException("Invalid.repos
cd60 69 74 6f 72 79 20 75 72 6c 20 67 69 76 65 6e 2e 20 48 61 73 20 74 6f 20 62 65 20 61 20 2e 6a 73 itory.url.given..Has.to.be.a..js
cd80 6f 6e 20 66 69 6c 65 20 6f 72 20 61 6e 20 68 74 74 70 20 75 72 6c 2e 22 29 3b 0a 7d 0a 0a 24 70 on.file.or.an.http.url.");.}..$p
cda0 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 3b 0a 24 63 61 arser.=.new.VersionParser();.$ca
cdc0 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 ndidates.=.array();.$requirement
cde0 73 20 3d 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 69 s.=.$parser->parseNameVersionPai
ce00 72 73 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 29 3b 0a 24 6e 61 6d 65 20 3d rs(array($packageName));.$name.=
ce20 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 6e 61 .strtolower($requirements[0]['na
ce40 6d 65 27 5d 29 3b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 26 26 20 69 me']);.if.(!$packageVersion.&&.i
ce60 73 73 65 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 76 65 72 73 69 6f 6e 27 5d sset($requirements[0]['version']
ce80 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 24 72 65 71 75 69 72 65 6d )).{.$packageVersion.=.$requirem
cea0 65 6e 74 73 5b 30 5d 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e ents[0]['version'];.}..$pool.=.n
cec0 65 77 20 50 6f 6f 6c 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 27 64 65 76 27 20 ew.Pool($packageVersion.?.'dev'.
cee0 3a 20 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 :.$stability);.$pool->addReposit
cf00 6f 72 79 28 24 73 6f 75 72 63 65 52 65 70 6f 29 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d ory($sourceRepo);..$constraint.=
cf20 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f .$packageVersion.?.new.VersionCo
cf40 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 nstraint('=',.$parser->normalize
cf60 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 29 20 3a 20 6e 75 6c 6c 3b 0a 24 63 61 6e 64 ($packageVersion)).:.null;.$cand
cf80 69 64 61 74 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 idates.=.$pool->whatProvides($na
cfa0 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 me,.$constraint);.foreach.($cand
cfc0 69 64 61 74 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a idates.as.$key.=>.$candidate).{.
cfe0 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 24 6e if.($candidate->getName().!==.$n
d000 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 73 5b 24 6b 65 79 5d 29 3b ame).{.unset($candidates[$key]);
d020 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 63 61 6e 64 69 64 61 74 65 73 29 20 7b 0a 74 68 72 6f 77 20 .}.}..if.(!$candidates).{.throw.
d040 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 43 new.\InvalidArgumentException("C
d060 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 24 6e 61 6d 65 22 20 2e 20 28 ould.not.find.package.$name"...(
d080 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 22 20 77 69 74 68 20 76 65 72 73 69 6f 6e $packageVersion.?.".with.version
d0a0 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2e 22 20 3a 20 22 20 77 69 74 68 20 73 74 61 62 .$packageVersion.".:.".with.stab
d0c0 69 6c 69 74 79 20 24 73 74 61 62 69 6c 69 74 79 2e 22 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c ility.$stability."));.}..if.(nul
d0e0 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 20 65 78 70 l.===.$directory).{.$parts.=.exp
d100 6c 6f 64 65 28 22 2f 22 2c 20 24 6e 61 6d 65 2c 20 32 29 3b 0a 24 64 69 72 65 63 74 6f 72 79 20 lode("/",.$name,.2);.$directory.
d120 3d 20 67 65 74 63 77 64 28 29 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 =.getcwd()...DIRECTORY_SEPARATOR
d140 20 2e 20 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b ...array_pop($parts);.}....$pack
d160 61 67 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 73 5b 30 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 age.=.$candidates[0];.foreach.($
d180 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 candidates.as.$candidate).{.if.(
d1a0 76 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 version_compare($package->getVer
d1c0 73 69 6f 6e 28 29 2c 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 sion(),.$candidate->getVersion()
d1e0 2c 20 27 3c 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b ,.'<')).{.$package.=.$candidate;
d200 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 73 29 3b 0a 0a 24 69 6f 2d 3e 77 .}.}.unset($candidates);..$io->w
d220 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 20 2e 20 24 70 61 63 6b rite('<info>Installing.'...$pack
d240 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 27 20 28 27 20 2e 20 56 65 72 73 69 6f 6e 50 age->getName()...'.('...VersionP
d260 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 67 65 2c 20 66 arser::formatVersion($package,.f
d280 61 6c 73 65 29 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 alse)...')</info>');..if.($disab
d2a0 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 leCustomInstallers).{.$io->write
d2c0 28 27 3c 69 6e 66 6f 3e 43 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 20 68 61 76 65 20 62 ('<info>Custom.installers.have.b
d2e0 65 65 6e 20 64 69 73 61 62 6c 65 64 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 een.disabled.</info>');.}..if.(0
d300 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 .===.strpos($package->getPrettyV
d320 65 72 73 69 6f 6e 28 29 2c 20 27 64 65 76 2d 27 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 70 ersion(),.'dev-').&&.in_array($p
d340 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 ackage->getSourceType(),.array('
d360 67 69 74 27 2c 20 27 68 67 27 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 git',.'hg'))).{.$package->setSou
d380 72 63 65 52 65 66 65 72 65 6e 63 65 28 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 rceReference(substr($package->ge
d3a0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 tPrettyVersion(),.4));.}..$dm.=.
d3c0 24 74 68 69 73 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 $this->createDownloadManager($io
d3e0 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 ,.$config);.$dm->setPreferSource
d400 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 ($preferSource).->setPreferDist(
d420 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 $preferDist).->setOutputProgress
d440 28 21 24 6e 6f 50 72 6f 67 72 65 73 73 29 3b 0a 0a 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c (!$noProgress);..$projectInstall
d460 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
d480 74 6f 72 79 2c 20 24 64 6d 29 3b 0a 24 69 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 49 tory,.$dm);.$im.=.$this->createI
d4a0 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e nstallationManager();.$im->addIn
d4c0 73 74 61 6c 6c 65 72 28 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 69 6d 2d staller($projectInstaller);.$im-
d4e0 3e 69 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 >install(new.InstalledFilesystem
d500 52 65 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 Repository(new.JsonFile('php://m
d520 65 6d 6f 72 79 27 29 29 2c 20 6e 65 77 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 emory')),.new.InstallOperation($
d540 70 61 63 6b 61 67 65 29 29 3b 0a 24 69 6d 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 package));.$im->notifyInstalls()
d560 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 27 73 6f 75 72 63 65 27 20 ;..$installedFromVcs.=.'source'.
d580 3d 3d 3d 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 ===.$package->getInstallationSou
d5a0 72 63 65 28 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 65 rce();..$io->write('<info>Create
d5c0 64 20 70 72 6f 6a 65 63 74 20 69 6e 20 27 20 2e 20 24 64 69 72 65 63 74 6f 72 79 20 2e 20 27 3c d.project.in.'...$directory...'<
d5e0 2f 69 6e 66 6f 3e 27 29 3b 0a 63 68 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 0a 70 75 /info>');.chdir($directory);..pu
d600 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 3d 27 2e 24 70 tenv('COMPOSER_ROOT_VERSION='.$p
d620 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 3b 0a 0a 0a 20 ackage->getPrettyVersion());....
d640 75 6e 73 65 74 28 24 64 6d 2c 20 24 69 6d 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 72 6f 6a 65 63 unset($dm,.$im,.$config,.$projec
d660 74 49 6e 73 74 61 6c 6c 65 72 2c 20 24 73 6f 75 72 63 65 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 tInstaller,.$sourceRepo,.$packag
d680 65 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 e);....$composer.=.Factory::crea
d6a0 74 65 28 24 69 6f 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a te($io);.$installer.=.Installer:
d6c0 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 61 :create($io,.$composer);..$insta
d6e0 6c 6c 65 72 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 ller->setPreferSource($preferSou
d700 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 rce).->setPreferDist($preferDist
d720 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 ).->setDevMode($installDevPackag
d740 65 73 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 20 21 20 24 6e 6f 53 63 72 69 70 74 es).->setRunScripts(.!.$noScript
d760 73 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 s);..if.($disableCustomInstaller
d780 73 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e s).{.$installer->disableCustomIn
d7a0 73 74 61 6c 6c 65 72 73 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 65 72 2d 3e stallers();.}..if.(!$installer->
d7c0 72 75 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 69 66 20 28 21 24 6b 65 65 70 run()).{.return.1;.}..if.(!$keep
d7e0 56 63 73 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 0a 26 26 20 28 0a 21 24 Vcs.&&.$installedFromVcs.&&.(.!$
d800 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7c 7c 20 24 69 6f 2d 3e 61 73 6b 43 io->isInteractive().||.$io->askC
d820 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 27 3c 69 6e 66 6f 3e 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 onfirmation('<info>Do.you.want.t
d840 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 56 43 53 20 28 2e 67 69 74 2c o.remove.the.existing.VCS.(.git,
d860 20 2e 73 76 6e 2e 2e 29 20 68 69 73 74 6f 72 79 3f 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 ..svn..).history?</info>.[<comme
d880 6e 74 3e 59 2c 6e 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 27 2c 20 74 72 75 65 29 0a 29 0a 29 20 nt>Y,n</comment>]?.',.true).).).
d8a0 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 72 28 29 3b 0a 24 66 69 6e 64 65 {.$finder.=.new.Finder();.$finde
d8c0 72 2d 3e 64 65 70 74 68 28 30 29 2d 3e 64 69 72 65 63 74 6f 72 69 65 73 28 29 2d 3e 69 6e 28 67 r->depth(0)->directories()->in(g
d8e0 65 74 63 77 64 28 29 29 2d 3e 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 2d 3e 69 67 6e 6f etcwd())->ignoreVCS(false)->igno
d900 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 reDotFiles(false);.foreach.(arra
d920 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c 20 27 43 56 53 27 2c 20 27 5f 64 61 72 63 73 y('.svn',.'_svn',.'CVS',.'_darcs
d940 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 ',.'.arch-params',.'.monotone',.
d960 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 27 29 20 61 73 20 24 76 63 73 4e 61 '.bzr',.'.git',.'.hg').as.$vcsNa
d980 6d 65 29 20 7b 0a 24 66 69 6e 64 65 72 2d 3e 6e 61 6d 65 28 24 76 63 73 4e 61 6d 65 29 3b 0a 7d me).{.$finder->name($vcsName);.}
d9a0 0a 0a 74 72 79 20 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 ..try.{.$fs.=.new.Filesystem();.
d9c0 24 64 69 72 73 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 66 69 6e 64 65 $dirs.=.iterator_to_array($finde
d9e0 72 29 3b 0a 75 6e 73 65 74 28 24 66 69 6e 64 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 r);.unset($finder);.foreach.($di
da00 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 21 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 rs.as.$dir).{.if.(!$fs->removeDi
da20 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 rectory($dir)).{.throw.new.\Runt
da40 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 6d 6f 76 65 20 27 imeException('Could.not.remove.'
da60 2e 24 64 69 72 29 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 .$dir);.}.}.}.catch.(\Exception.
da80 24 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 41 6e 20 65 72 72 6f $e).{.$io->write('<error>An.erro
daa0 72 20 6f 63 63 75 72 72 65 64 20 77 68 69 6c 65 20 72 65 6d 6f 76 69 6e 67 20 74 68 65 20 56 43 r.occurred.while.removing.the.VC
dac0 53 20 6d 65 74 61 64 61 74 61 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 S.metadata:.'.$e->getMessage().'
dae0 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 </error>');.}.}..return.0;.}..pr
db00 6f 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 otected.function.createDownloadM
db20 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 66 69 67 20 24 anager(IOInterface.$io,.Config.$
db40 63 6f 6e 66 69 67 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 config).{.$factory.=.new.Factory
db60 28 29 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 44 6f 77 6e ();..return.$factory->createDown
db80 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 72 loadManager($io,.$config);.}..pr
dba0 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
dbc0 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c ionManager().{.return.new.Instal
dbe0 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a lationManager();.}.}.<?php......
dc00 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 6d 61 6e 64 ......namespace.Composer\Command
dc20 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
dc40 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 79 6d 66 6f \Input\InputInterface;.use.Symfo
dc60 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 74 70 ny\Component\Console\Output\Outp
dc80 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 62 6f 75 74 43 6f 6d 6d utInterface;.....class.AboutComm
dca0 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 74 65 64 20 and.extends.Command.{.protected.
dcc0 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 73 function.configure().{.$this.->s
dce0 65 74 4e 61 6d 65 28 27 61 62 6f 75 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e etName('about').->setDescription
dd00 28 27 53 68 6f 72 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 43 6f 6d 70 6f 73 ('Short.information.about.Compos
dd20 65 72 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 er').->setHelp(<<<EOT.<info>php.
dd40 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 61 62 6f 75 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 composer.phar.about</info>.EOT.)
dd60 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
dd80 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
dda0 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 terface.$output).{.$output->writ
ddc0 65 6c 6e 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 43 6f 6d 70 6f 73 65 72 20 2d 20 50 61 63 6b eln(<<<EOT.<info>Composer.-.Pack
dde0 61 67 65 20 4d 61 6e 61 67 65 6d 65 6e 74 20 66 6f 72 20 50 48 50 3c 2f 69 6e 66 6f 3e 0a 3c 63 age.Management.for.PHP</info>.<c
de00 6f 6d 6d 65 6e 74 3e 43 6f 6d 70 6f 73 65 72 20 69 73 20 61 20 64 65 70 65 6e 64 65 6e 63 79 20 omment>Composer.is.a.dependency.
de20 6d 61 6e 61 67 65 72 20 74 72 61 63 6b 69 6e 67 20 6c 6f 63 61 6c 20 64 65 70 65 6e 64 65 6e 63 manager.tracking.local.dependenc
de40 69 65 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 6c 69 62 72 61 72 69 ies.of.your.projects.and.librari
de60 65 73 2e 0a 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 20 es..See.http://getcomposer.org/.
de80 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a for.more.information.</comment>.
dea0 45 4f 54 0a 29 3b 0a 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 EOT.);..}.}.<?php............nam
dec0 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 20 43 6f espace.Composer\Command;..use.Co
dee0 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 44 65 mposer\Composer;.use.Composer\De
df00 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 6f pendencyResolver\Pool;.use.Compo
df20 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 6f ser\DependencyResolver\DefaultPo
df40 6c 69 63 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 licy;.use.Composer\Factory;.use.
df60 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 Composer\Package\CompletePackage
df80 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\
dfa0 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 6e 74 LinkConstraint\VersionConstraint
dfc0 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
dfe0 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ersionParser;.use.Symfony\Compon
e000 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 65 ent\Console\Input\InputInterface
e020 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\
e040 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 6e 79 Input\InputArgument;.use.Symfony
e060 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 4f 70 \Component\Console\Input\InputOp
e080 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 6e 73 tion;.use.Symfony\Component\Cons
e0a0 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 20 ole\Output\OutputInterface;.use.
e0c0 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 52 65 70 6f 73 69 74 Composer\Repository\ArrayReposit
e0e0 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
e100 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
e120 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 epository\ComposerRepository;.us
e140 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 65 e.Composer\Repository\PlatformRe
e160 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 72 pository;.use.Composer\Repositor
e180 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 73 y\RepositoryInterface;......clas
e1a0 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 0a s.ShowCommand.extends.Command.{.
e1c0 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 0a 70 72 6f 74 65 protected.$versionParser;..prote
e1e0 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 69 cted.function.configure().{.$thi
e200 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 65 73 63 72 69 70 s.->setName('show').->setDescrip
e220 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 75 74 20 70 61 63 tion('Show.information.about.pac
e240 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 61 79 28 0a 6e kages').->setDefinition(array(.n
e260 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 2c 20 49 6e 70 75 ew.InputArgument('package',.Inpu
e280 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 61 67 65 20 74 6f tArgument::OPTIONAL,.'Package.to
e2a0 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 65 6e 74 28 27 76 .inspect'),.new.InputArgument('v
e2c0 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 54 49 4f 4e 41 4c ersion',.InputArgument::OPTIONAL
e2e0 2c 20 27 56 65 72 73 69 6f 6e 20 6f 72 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 ,.'Version.or.version.constraint
e300 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 .to.inspect'),.new.InputOption('
e320 69 6e 73 74 61 6c 6c 65 64 27 2c 20 27 69 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 installed',.'i',.InputOption::VA
e340 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 LUE_NONE,.'List.installed.packag
e360 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 es.only'),.new.InputOption('plat
e380 66 6f 72 6d 27 2c 20 27 70 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e form',.'p',.InputOption::VALUE_N
e3a0 4f 4e 45 2c 20 27 4c 69 73 74 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c ONE,.'List.platform.packages.onl
e3c0 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 y'),.new.InputOption('available'
e3e0 2c 20 27 61 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 ,.'a',.InputOption::VALUE_NONE,.
e400 27 4c 69 73 74 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 'List.available.packages.only'),
e420 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 2c 20 27 73 27 2c 20 49 6e .new.InputOption('self',.'s',.In
e440 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 68 6f 77 20 74 68 65 putOption::VALUE_NONE,.'Show.the
e460 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 2c 0a 6e 65 77 .root.package.information'),.new
e480 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 2c 20 27 4e 27 2c 20 49 .InputOption('name-only',.'N',.I
e4a0 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 20 70 61 nputOption::VALUE_NONE,.'List.pa
e4c0 63 6b 61 67 65 20 6e 61 6d 65 73 20 6f 6e 6c 79 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 ckage.names.only'),.)).->setHelp
e4e0 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
e500 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
e520 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
e540 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
e560 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.$
e580 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).
e5a0 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 {.$this->versionParser.=.new.Ver
e5c0 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e sionParser;....$platformRepo.=.n
e5e0 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 69 66 20 28 24 69 6e 70 ew.PlatformRepository;..if.($inp
e600 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 ut->getOption('self')).{.$packag
e620 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 2d 3e 67 e.=.$this->getComposer(false)->g
e640 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 etPackage();.$repos.=.$installed
e660 52 65 70 6f 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 Repo.=.new.ArrayRepository(array
e680 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 ($package));.}.elseif.($input->g
e6a0 65 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d etOption('platform')).{.$repos.=
e6c0 20 24 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 .$installedRepo.=.$platformRepo;
e6e0 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 69 6e .}.elseif.($input->getOption('in
e700 73 74 61 6c 6c 65 64 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 stalled')).{.$repos.=.$installed
e720 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 Repo.=.$this->getComposer()->get
e740 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 6c 52 65 70 RepositoryManager()->getLocalRep
e760 6f 73 69 74 6f 72 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 ository();.}.elseif.($input->get
e780 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 Option('available')).{.$installe
e7a0 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 69 66 20 28 24 63 6f 6d 70 dRepo.=.$platformRepo;.if.($comp
e7c0 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 61 6c 73 65 29 oser.=.$this->getComposer(false)
e7e0 29 20 7b 0a 24 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 ).{.$repos.=.new.CompositeReposi
e800 74 6f 72 79 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 61 6e tory($composer->getRepositoryMan
e820 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 7d 20 65 6c ager()->getRepositories());.}.el
e840 73 65 20 7b 0a 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 se.{.$defaultRepos.=.Factory::cr
e860 65 61 74 65 44 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 eateDefaultRepositories($this->g
e880 65 74 49 4f 28 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 etIO());.$repos.=.new.CompositeR
e8a0 65 70 6f 73 69 74 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 3b 0a 24 6f 75 74 70 75 epository($defaultRepos);.$outpu
e8c0 74 2d 3e 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 t->writeln('No.composer.json.fou
e8e0 6e 64 20 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 nd.in.the.current.directory,.sho
e900 77 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e wing.available.packages.from.'..
e920 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
e940 6c 74 52 65 70 6f 73 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 6f 6d 70 6f 73 65 ltRepos)));.}.}.elseif.($compose
e960 72 20 3d 20 24 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 r.=.$this->getComposer(false)).{
e980 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(
e9a0 29 3b 0a 24 6c 6f 63 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 );.$localRepo.=.$composer->getRe
e9c0 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 6c 52 65 70 6f 73 positoryManager()->getLocalRepos
e9e0 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 6e 65 77 20 43 6f itory();.$installedRepo.=.new.Co
ea00 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 6f 63 61 6c 52 65 mpositeRepository(array($localRe
ea20 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 73 20 3d 20 6e 65 po,.$platformRepo));.$repos.=.ne
ea40 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 65 72 67 w.CompositeRepository(array_merg
ea60 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 63 6f 6d 70 6f 73 e(array($installedRepo),.$compos
ea80 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 65 74 52 er->getRepositoryManager()->getR
eaa0 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 24 64 65 66 61 75 epositories()));.}.else.{.$defau
eac0 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 65 66 61 75 6c 74 ltRepos.=.Factory::createDefault
eae0 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 29 29 3b 0a 24 6f Repositories($this->getIO());.$o
eb00 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 72 2e 6a 73 6f 6e utput->writeln('No.composer.json
eb20 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 63 74 6f 72 79 2c .found.in.the.current.directory,
eb40 20 73 68 6f 77 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d .showing.available.packages.from
eb60 20 27 20 2e 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 .'...implode(',.',.array_keys($d
eb80 65 66 61 75 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 efaultRepos)));.$installedRepo.=
eba0 20 24 70 6c 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 .$platformRepo;.$repos.=.new.Com
ebc0 70 6f 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 positeRepository(array_merge(arr
ebe0 61 79 28 24 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 ay($installedRepo),.$defaultRepo
ec00 73 29 29 3b 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 s));.}....if.($input->getArgumen
ec20 74 28 27 70 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 t('package').||.!empty($package)
ec40 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 65 6d 70 ).{.$versions.=.array();.if.(emp
ec60 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 ty($package)).{.list($package,.$
ec80 76 65 72 73 69 6f 6e 73 29 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 24 69 versions).=.$this->getPackage($i
eca0 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 2c 20 24 69 6e 70 75 74 2d 3e 67 65 nstalledRepo,.$repos,.$input->ge
ecc0 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 tArgument('package'),.$input->ge
ece0 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 29 3b 0a 0a 69 66 20 28 21 24 70 61 tArgument('version'));..if.(!$pa
ed00 63 6b 61 67 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 ckage).{.throw.new.\InvalidArgum
ed20 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 69 6e 70 75 74 2d 3e entException('Package.'.$input->
ed40 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2e 27 20 6e 6f 74 20 66 6f 75 getArgument('package').'.not.fou
ed60 6e 64 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 nd');.}.}.else.{.$versions.=.arr
ed80 61 79 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 20 ay($package->getPrettyVersion().
eda0 3d 3e 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 7d 0a 0a 24 =>.$package->getVersion());.}..$
edc0 74 68 69 73 2d 3e 70 72 69 6e 74 4d 65 74 61 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c this->printMeta($input,.$output,
ede0 20 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 .$package,.$versions,.$installed
ee00 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 6e 74 4c 69 6e 6b 73 Repo,.$repos);.$this->printLinks
ee20 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 72 65 71 ($input,.$output,.$package,.'req
ee40 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 73 28 24 69 6e 70 75 uires');.$this->printLinks($inpu
ee60 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 76 52 65 71 75 69 72 t,.$output,.$package,.'devRequir
ee80 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 66 20 28 24 70 61 63 es',.'requires.(dev)');.if.($pac
eea0 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 75 74 70 75 74 2d 3e kage->getSuggests()).{.$output->
eec0 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 3c 2f 69 6e 66 6f 3e writeln("\n<info>suggests</info>
eee0 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 67 67 65 73 ");.foreach.($package->getSugges
ef00 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 61 73 6f 6e 29 20 7b ts().as.$suggested.=>.$reason).{
ef20 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 74 65 64 20 2e 20 27 .$output->writeln($suggested...'
ef40 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 3c 2f 63 6f 6d 6d 65 .<comment>'...$reason...'</comme
ef60 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 6e 6b 73 28 24 69 6e nt>');.}.}.$this->printLinks($in
ef80 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 70 72 6f 76 69 64 65 put,.$output,.$package,.'provide
efa0 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 20 24 s');.$this->printLinks($input,.$
efc0 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 63 74 73 27 29 3b 0a output,.$package,.'conflicts');.
efe0 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 20 24 6f 75 74 70 75 $this->printLinks($input,.$outpu
f000 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 0a 0a 72 65 74 75 72 t,.$package,.'replaces');..retur
f020 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 28 29 3b 0a 0a 69 66 n;.}....$packages.=.array();..if
f040 20 28 24 72 65 70 6f 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 .($repos.instanceof.CompositeRep
f060 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 72 65 70 6f 73 2d 3e 67 65 74 52 ository).{.$repos.=.$repos->getR
f080 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 61 72 72 epositories();.}.elseif.(!is_arr
f0a0 61 79 28 24 72 65 70 6f 73 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 24 72 65 ay($repos)).{.$repos.=.array($re
f0c0 70 6f 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 pos);.}..foreach.($repos.as.$rep
f0e0 6f 29 20 7b 0a 69 66 20 28 24 72 65 70 6f 20 3d 3d 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f o).{.if.($repo.===.$platformRepo
f100 29 20 7b 0a 24 74 79 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 ).{.$type.=.'<info>platform</inf
f120 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 0a 24 72 65 70 6f 20 3d 3d 3d 20 24 69 6e 73 74 o>:';.}.elseif.(.$repo.===.$inst
f140 61 6c 6c 65 64 52 65 70 6f 0a 7c 7c 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 69 6e 73 alledRepo.||.($installedRepo.ins
f160 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 69 tanceof.CompositeRepository.&&.i
f180 6e 5f 61 72 72 61 79 28 24 72 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 n_array($repo,.$installedRepo->g
f1a0 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 20 74 72 75 65 29 29 0a 29 20 7b 0a 24 74 79 etRepositories(),.true)).).{.$ty
f1c0 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a pe.=.'<info>installed</info>:';.
f1e0 7d 20 65 6c 73 65 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c }.else.{.$type.=.'<comment>avail
f200 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 3b 0a 7d 0a 69 66 20 28 24 72 65 70 6f 20 69 6e able</comment>:';.}.if.($repo.in
f220 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 stanceof.ComposerRepository.&&.$
f240 72 65 70 6f 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 repo->hasProviders()).{.foreach.
f260 28 24 72 65 70 6f 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 6e ($repo->getProviderNames().as.$n
f280 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 5d 20 3d ame).{.$packages[$type][$name].=
f2a0 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 .$name;.}.}.else.{.foreach.($rep
f2c0 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 29 20 7b 0a o->getPackages().as.$package).{.
f2e0 69 66 20 28 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 if.(!isset($packages[$type][$pac
f300 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c 20 21 69 73 5f 6f 62 6a 65 63 74 28 kage->getName()]).||.!is_object(
f320 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 $packages[$type][$package->getNa
f340 6d 65 28 29 5d 29 0a 7c 7c 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 me()]).||.version_compare($packa
f360 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 2d ges[$type][$package->getName()]-
f380 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 >getVersion(),.$package->getVers
f3a0 69 6f 6e 28 29 2c 20 27 3c 27 29 0a 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d ion(),.'<').).{.$packages[$type]
f3c0 5b 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 [$package->getName()].=.$package
f3e0 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 74 72 65 65 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f ;.}.}.}.}..$tree.=.!$input->getO
f400 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 ption('platform').&&.!$input->ge
f420 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d tOption('installed').&&.!$input-
f440 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 29 3b 0a 24 69 6e 64 65 6e 74 >getOption('available');.$indent
f460 20 3d 20 24 74 72 65 65 20 3f 20 27 20 20 27 20 3a 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 61 .=.$tree.?.'..'.:.'';.foreach.(a
f480 72 72 61 79 28 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e rray('<info>platform</info>:'.=>
f4a0 20 74 72 75 65 2c 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 .true,.'<comment>available</comm
f4c0 65 6e 74 3e 3a 27 20 3d 3e 20 66 61 6c 73 65 2c 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 ent>:'.=>.false,.'<info>installe
f4e0 64 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 d</info>:'.=>.true).as.$type.=>.
f500 24 73 68 6f 77 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 $showVersion).{.if.(isset($packa
f520 67 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 69 66 20 28 24 74 72 65 65 29 20 7b 0a 24 6f 75 74 ges[$type])).{.if.($tree).{.$out
f540 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 79 70 65 29 3b 0a 7d 0a 6b 73 6f 72 74 28 24 70 61 put->writeln($type);.}.ksort($pa
f560 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 24 ckages[$type]);..$nameLength.=.$
f580 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 versionLength.=.0;.foreach.($pac
f5a0 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 kages[$type].as.$package).{.if.(
f5c0 69 73 5f 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 is_object($package)).{.$nameLeng
f5e0 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 73 74 72 6c 65 6e 28 24 70 61 th.=.max($nameLength,.strlen($pa
f600 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 29 3b 0a 24 76 65 72 73 69 ckage->getPrettyName()));.$versi
f620 6f 6e 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 2c 20 73 onLength.=.max($versionLength,.s
f640 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d trlen($this->versionParser->form
f660 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a atVersion($package)));.}.else.{.
f680 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 24 $nameLength.=.max($nameLength,.$
f6a0 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 6c 69 73 74 28 24 77 69 64 74 68 29 20 3d 20 24 74 68 package);.}.}.list($width).=.$th
f6c0 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 67 65 74 54 65 72 6d 69 6e 61 is->getApplication()->getTermina
f6e0 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f lDimensions();.if.(defined('PHP_
f700 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 77 69 64 74 WINDOWS_VERSION_BUILD')).{.$widt
f720 68 2d 2d 3b 0a 7d 0a 0a 24 77 72 69 74 65 56 65 72 73 69 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d h--;.}..$writeVersion.=.!$input-
f740 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 29 20 26 26 20 24 73 68 6f 77 >getOption('name-only').&&.$show
f760 56 65 72 73 69 6f 6e 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 20 24 76 65 72 73 69 Version.&&.($nameLength.+.$versi
f780 6f 6e 4c 65 6e 67 74 68 20 2b 20 33 20 3c 3d 20 24 77 69 64 74 68 29 3b 0a 24 77 72 69 74 65 44 onLength.+.3.<=.$width);.$writeD
f7a0 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 escription.=.!$input->getOption(
f7c0 27 6e 61 6d 65 2d 6f 6e 6c 79 27 29 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 20 28 'name-only').&&.($nameLength.+.(
f7e0 24 73 68 6f 77 56 65 72 73 69 6f 6e 20 3f 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3a 20 $showVersion.?.$versionLength.:.
f800 30 29 20 2b 20 32 34 20 3c 3d 20 24 77 69 64 74 68 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 0).+.24.<=.$width);.foreach.($pa
f820 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 ckages[$type].as.$package).{.if.
f840 28 69 73 5f 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d (is_object($package)).{.$output-
f860 3e 77 72 69 74 65 28 24 69 6e 64 65 6e 74 20 2e 20 73 74 72 5f 70 61 64 28 24 70 61 63 6b 61 67 >write($indent...str_pad($packag
f880 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 2c e->getPrettyName(),.$nameLength,
f8a0 20 27 20 27 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 24 77 72 69 74 65 56 65 72 73 69 6f .'.'),.false);..if.($writeVersio
f8c0 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 73 74 72 5f 70 61 n).{.$output->write('.'...str_pa
f8e0 64 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 d($this->versionParser->formatVe
f900 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 2c 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 2c rsion($package),.$versionLength,
f920 20 27 20 27 29 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 69 74 65 44 65 73 63 .'.'),.false);.}..if.($writeDesc
f940 72 69 70 74 69 6f 6e 29 20 7b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 74 6f 6b ription).{.$description.=.strtok
f960 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 22 5c 72 ($package->getDescription(),."\r
f980 5c 6e 22 29 3b 0a 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 24 77 69 64 74 68 20 2d 20 24 6e 61 6d \n");.$remaining.=.$width.-.$nam
f9a0 65 4c 65 6e 67 74 68 20 2d 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 2d 20 34 3b 0a 69 66 eLength.-.$versionLength.-.4;.if
f9c0 20 28 73 74 72 6c 65 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 20 3e 20 24 72 65 6d 61 69 6e .(strlen($description).>.$remain
f9e0 69 6e 67 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 ing).{.$description.=.substr($de
fa00 73 63 72 69 70 74 69 6f 6e 2c 20 30 2c 20 24 72 65 6d 61 69 6e 69 6e 67 20 2d 20 33 29 20 2e 20 scription,.0,.$remaining.-.3)...
fa20 27 2e 2e 2e 27 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 64 '...';.}.$output->write('.'...$d
fa40 65 73 63 72 69 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d escription);.}.}.else.{.$output-
fa60 3e 77 72 69 74 65 28 24 69 6e 64 65 6e 74 20 2e 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 6f >write($indent...$package);.}.$o
fa80 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 69 66 20 28 24 74 72 65 65 29 utput->writeln('');.}.if.($tree)
faa0 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d .{.$output->writeln('');.}.}.}.}
fac0 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 67 ............protected.function.g
fae0 65 74 50 61 63 6b 61 67 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 etPackage(RepositoryInterface.$i
fb00 6e 73 74 61 6c 6c 65 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 nstalledRepo,.RepositoryInterfac
fb20 65 20 24 72 65 70 6f 73 2c 20 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c e.$repos,.$name,.$version.=.null
fb40 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 ).{.$name.=.strtolower($name);.$
fb60 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 76 65 72 73 69 6f 6e 29 constraint.=.null;.if.($version)
fb80 20 7b 0a 24 63 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 .{.$constraint.=.$this->versionP
fba0 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 76 65 72 73 69 6f 6e arser->parseConstraints($version
fbc0 29 3b 0a 7d 0a 0a 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
fbe0 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 3b 0a 24 70 y();.$pool.=.new.Pool('dev');.$p
fc00 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 0a 24 6d 61 ool->addRepository($repos);..$ma
fc20 74 63 68 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d tchedPackage.=.null;.$versions.=
fc40 20 61 72 72 61 79 28 29 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 .array();.$matches.=.$pool->what
fc60 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 66 6f Provides($name,.$constraint);.fo
fc80 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 70 61 reach.($matches.as.$index.=>.$pa
fca0 63 6b 61 67 65 29 20 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 ckage).{...if.($package->getName
fcc0 28 29 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 ().!==.$name).{.unset($matches[$
fce0 69 6e 64 65 78 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c index]);.continue;.}....if.(null
fd00 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d .===.$version.&&.$installedRepo-
fd20 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 6d 61 74 63 68 65 >hasPackage($package)).{.$matche
fd40 64 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e dPackage.=.$package;.}..$version
fd60 73 5b 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 5d 20 s[$package->getPrettyVersion()].
fd80 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 0a 24 6d 61 74 63 68 =.$package->getVersion();.$match
fda0 65 73 5b 24 69 6e 64 65 78 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a es[$index].=.$package->getId();.
fdc0 7d 0a 0a 0a 20 69 66 20 28 21 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 26 26 20 24 6d 61 }....if.(!$matchedPackage.&&.$ma
fde0 74 63 68 65 73 20 26 26 20 24 70 72 65 66 65 72 65 64 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 tches.&&.$prefered.=.$policy->se
fe00 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 lectPreferedPackages($pool,.arra
fe20 79 28 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 y(),.$matches)).{.$matchedPackag
fe40 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 70 72 65 e.=.$pool->literalToPackage($pre
fe60 66 65 72 65 64 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6d 61 74 63 fered[0]);.}..return.array($matc
fe80 68 65 64 50 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 hedPackage,.$versions);.}.....pr
fea0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 4d 65 74 61 28 49 6e 70 75 74 otected.function.printMeta(Input
fec0 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
fee0 65 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 e.$output,.CompletePackageInterf
ff00 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 ace.$package,.array.$versions,.R
ff20 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 64 52 65 70 epositoryInterface.$installedRep
ff40 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 73 29 0a 7b o,.RepositoryInterface.$repos).{
ff60 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 65 3c 2f 69 .$output->writeln('<info>name</i
ff80 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 nfo>.....:.'...$package->getPret
ffa0 74 79 4e 61 6d 65 28 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 tyName());.$output->writeln('<in
ffc0 66 6f 3e 64 65 73 63 72 69 70 2e 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 fo>descrip.</info>.:.'...$packag
ffe0 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 e->getDescription());.$output->w
10000 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6b 65 79 77 6f 72 64 73 3c 2f 69 6e 66 6f 3e 20 3a 20 riteln('<info>keywords</info>.:.
10020 27 20 2e 20 6a 6f 69 6e 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 '...join(',.',.$package->getKeyw
10040 6f 72 64 73 28 29 20 3f 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e ords().?:.array()));.$this->prin
10060 74 56 65 72 73 69 6f 6e 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b tVersions($input,.$output,.$pack
10080 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 age,.$versions,.$installedRepo,.
100a0 24 72 65 70 6f 73 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 $repos);.$output->writeln('<info
100c0 3e 74 79 70 65 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d >type</info>.....:.'...$package-
100e0 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c >getType());.$output->writeln('<
10100 69 6e 66 6f 3e 6c 69 63 65 6e 73 65 3c 2f 69 6e 66 6f 3e 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f info>license</info>..:.'...implo
10120 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 de(',.',.$package->getLicense())
10140 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 6f 75 72 63 );.$output->writeln('<info>sourc
10160 65 3c 2f 69 6e 66 6f 3e 20 20 20 3a 20 27 20 2e 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d 20 3c e</info>...:.'...sprintf('[%s].<
10180 63 6f 6d 6d 65 6e 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 comment>%s</comment>.%s',.$packa
101a0 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 ge->getSourceType(),.$package->g
101c0 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 etSourceUrl(),.$package->getSour
101e0 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c ceReference()));.$output->writel
10200 6e 28 27 3c 69 6e 66 6f 3e 64 69 73 74 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 73 n('<info>dist</info>.....:.'...s
10220 70 72 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 printf('[%s].<comment>%s</commen
10240 74 3e 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 2c t>.%s',.$package->getDistType(),
10260 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 .$package->getDistUrl(),.$packag
10280 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 e->getDistReference()));.$output
102a0 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 ->writeln('<info>names</info>...
102c0 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
102e0 65 74 4e 61 6d 65 73 28 29 29 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 etNames()));..if.($package->getS
10300 75 70 70 6f 72 74 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 upport()).{.$output->writeln("\n
10320 3c 69 6e 66 6f 3e 73 75 70 70 6f 72 74 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 <info>support</info>");.foreach.
10340 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 20 61 73 20 24 74 79 70 65 ($package->getSupport().as.$type
10360 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 .=>.$value).{.$output->writeln('
10380 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e <comment>'...$type...'</comment>
103a0 20 3a 20 27 2e 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d .:.'.$value);.}.}..if.($package-
103c0 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 >getAutoload()).{.$output->write
103e0 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 ln("\n<info>autoload</info>");.f
10400 6f 72 65 61 63 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 oreach.($package->getAutoload().
10420 61 73 20 24 74 79 70 65 20 3d 3e 20 24 61 75 74 6f 6c 6f 61 64 73 29 20 7b 0a 24 6f 75 74 70 75 as.$type.=>.$autoloads).{.$outpu
10440 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..
10460 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 .'</comment>');..if.($type.===.'
10480 70 73 72 2d 30 27 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 psr-0').{.foreach.($autoloads.as
104a0 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 .$name.=>.$path).{.$output->writ
104c0 65 6c 6e 28 28 24 6e 61 6d 65 20 3f 3a 20 27 2a 27 29 20 2e 20 27 20 3d 3e 20 27 20 2e 20 28 24 eln(($name.?:.'*')...'.=>.'...($
104e0 70 61 74 68 20 3f 3a 20 27 2e 27 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 79 70 65 path.?:.'.'));.}.}.elseif.($type
10500 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 .===.'classmap').{.$output->writ
10520 65 6c 6e 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 61 75 74 6f 6c 6f 61 64 73 29 29 3b 0a eln(implode(',.',.$autoloads));.
10540 7d 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 }.}.if.($package->getIncludePath
10560 73 28 29 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 s()).{.$output->writeln('<commen
10580 74 3e 69 6e 63 6c 75 64 65 2d 70 61 74 68 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f 75 74 t>include-path</comment>');.$out
105a0 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 70 61 63 6b put->writeln(implode(',.',.$pack
105c0 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 29 29 3b 0a 7d 0a 7d 0a 7d 0a age->getIncludePaths()));.}.}.}.
105e0 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 69 6e 74 56 65 72 73 ....protected.function.printVers
10600 69 6f 6e 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 ions(InputInterface.$input,.Outp
10620 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 utInterface.$output,.CompletePac
10640 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 kageInterface.$package,.array.$v
10660 65 72 73 69 6f 6e 73 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 ersions,.RepositoryInterface.$in
10680 73 74 61 6c 6c 65 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 stalledRepo,.RepositoryInterface
106a0 20 24 72 65 70 6f 73 29 0a 7b 0a 75 61 73 6f 72 74 28 24 76 65 72 73 69 6f 6e 73 2c 20 27 76 65 .$repos).{.uasort($versions,.'ve
106c0 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 27 29 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 rsion_compare');.$versions.=.arr
106e0 61 79 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 ay_keys(array_reverse($versions)
10700 29 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 );....if.($installedRepo->hasPac
10720 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 kage($package)).{.$installedVers
10740 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 73 69 6f 6e ion.=.$package->getPrettyVersion
10760 28 29 3b 0a 24 6b 65 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 6e 73 74 61 6c 6c ();.$key.=.array_search($install
10780 65 64 56 65 72 73 69 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 edVersion,.$versions);.if.(false
107a0 20 21 3d 3d 20 24 6b 65 79 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 24 6b 65 79 5d 20 3d 20 27 .!==.$key).{.$versions[$key].=.'
107c0 3c 69 6e 66 6f 3e 2a 20 27 20 2e 20 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 20 2e 20 <info>*.'...$installedVersion...
107e0 27 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 69 6d 70 6c '</info>';.}.}..$versions.=.impl
10800 6f 64 65 28 27 2c 20 27 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e ode(',.',.$versions);..$output->
10820 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 6e 66 6f 3e 20 3a writeln('<info>versions</info>.:
10840 20 27 20 2e 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f .'...$versions);.}...........pro
10860 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 4c 69 6e 6b 73 28 49 6e 70 75 74 tected.function.printLinks(Input
10880 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
108a0 65 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 e.$output,.CompletePackageInterf
108c0 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 54 79 70 65 2c 20 24 74 69 74 6c 65 20 ace.$package,.$linkType,.$title.
108e0 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 74 6c 65 20 3d 20 24 74 69 74 6c 65 20 3f 3a 20 24 6c 69 =.null).{.$title.=.$title.?:.$li
10900 6e 6b 54 79 70 65 3b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b nkType;.if.($links.=.$package->{
10920 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 54 79 70 65 29 7d 28 29 29 20 7b 0a 24 'get'.ucfirst($linkType)}()).{.$
10940 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 22 20 2e 20 24 74 69 output->writeln("\n<info>"...$ti
10960 74 6c 65 20 2e 20 22 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e tle..."</info>");..foreach.($lin
10980 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 ks.as.$link).{.$output->writeln(
109a0 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e $link->getTarget()...'.<comment>
109c0 27 20 2e 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 '...$link->getPrettyConstraint()
109e0 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ...'</comment>');.}.}.}.}.<?php.
10a00 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 43 6f ...........namespace.Composer\Co
10a20 6d 6d 61 6e 64 3b 0a 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 mmand;..use.Composer\Installer;.
10a40 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 6e use.Symfony\Component\Console\In
10a60 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 5c put\InputInterface;.use.Symfony\
10a80 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 4f 70 74 Component\Console\Input\InputOpt
10aa0 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 6e 73 6f ion;.use.Symfony\Component\Conso
10ac0 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 65 20 53 79 6d 66 le\Input\InputArgument;.use.Symf
10ae0 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 74 ony\Component\Console\Output\Out
10b00 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 43 6f putInterface;.....class.UpdateCo
10b20 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 74 65 mmand.extends.Command.{.protecte
10b40 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 0a 2d d.function.configure().{.$this.-
10b60 3e 73 65 74 4e 61 6d 65 28 27 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 >setName('update').->setDescript
10b80 69 6f 6e 28 27 55 70 64 61 74 65 73 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 ion('Updates.your.dependencies.t
10ba0 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 o.the.latest.version.according.t
10bc0 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2c 20 61 6e 64 20 75 70 64 61 74 65 73 20 74 68 65 o.composer.json,.and.updates.the
10be0 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 .composer.lock.file.').->setDefi
10c00 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(
10c20 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 53 5f 41 52 'packages',.InputArgument::IS_AR
10c40 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 4c 2c 20 27 RAY.|.InputArgument::OPTIONAL,.'
10c60 50 61 63 6b 61 67 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 75 70 64 61 74 65 64 2c Packages.that.should.be.updated,
10c80 20 69 66 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 .if.not.provided.all.packages.ar
10ca0 65 2e 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 e.'),.new.InputOption('prefer-so
10cc0 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 3a 56 41 4c 55 45 5f urce',.null,.InputOption::VALUE_
10ce0 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 6e 20 66 72 6f 6d 20 NONE,.'Forces.installation.from.
10d00 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 69 62 6c 65 2c 20 69 package.sources.when.possible,.i
10d20 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 27 29 2c 0a 6e 65 77 ncluding.VCS.information.'),.new
10d40 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c .InputOption('prefer-dist',.null
10d60 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 46 6f 72 63 ,.InputOption::VALUE_NONE,.'Forc
10d80 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 67 65 20 64 69 73 es.installation.from.package.dis
10da0 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 t.even.for.dev.versions.'),.new.
10dc0 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 InputOption('dry-run',.null,.Inp
10de0 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 74 utOption::VALUE_NONE,.'Outputs.t
10e00 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 75 he.operations.but.will.not.execu
10e20 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 te.anything.(implicitly.enables.
10e40 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 --verbose).'),.new.InputOption('
10e60 64 65 76 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 dev',.null,.InputOption::VALUE_N
10e80 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 ONE,.'Enables.installation.of.re
10ea0 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 64 20 62 79 20 64 quire-dev.packages.(enabled.by.d
10ec0 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 73 61 6e 69 74 79 29 efault,.only.present.for.sanity)
10ee0 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 64 65 76 27 2c 20 6e .'),.new.InputOption('no-dev',.n
10f00 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 44 ull,.InputOption::VALUE_NONE,.'D
10f20 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d isables.installation.of.require-
10f40 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e dev.packages.'),.new.InputOption
10f60 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 ('no-custom-installers',.null,.I
10f80 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 61 62 6c 65 nputOption::VALUE_NONE,.'Disable
10fa0 73 20 61 6c 6c 20 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2e 27 29 2c 0a 6e 65 77 20 s.all.custom.installers.'),.new.
10fc0 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 6c 2c 20 InputOption('no-scripts',.null,.
10fe0 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 70 73 20 InputOption::VALUE_NONE,.'Skips.
11000 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 64 65 66 the.execution.of.all.scripts.def
11020 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 2c 0a 6e ined.in.composer.json.file.'),.n
11040 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 ew.InputOption('no-progress',.nu
11060 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 44 6f ll,.InputOption::VALUE_NONE,.'Do
11080 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 .not.output.download.progress.')
110a0 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c ,.new.InputOption('verbose',.'v|
110c0 76 76 7c 76 76 76 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 vv|vvv',.InputOption::VALUE_NONE
110e0 2c 20 27 53 68 6f 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 ,.'Shows.more.details.including.
11100 6e 65 77 20 63 6f 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 new.commits.pulled.in.when.updat
11120 69 6e 67 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e ing.packages.'),.new.InputOption
11140 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 ('optimize-autoloader',.'o',.Inp
11160 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 utOption::VALUE_NONE,.'Optimize.
11180 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d autoloader.during.autoloader.dum
111a0 70 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 p').)).->setHelp(<<<EOT.The.<inf
111c0 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 61 64 73 20 74 68 o>update</info>.command.reads.th
111e0 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 74 68 65 0a 63 75 e.composer.json.file.from.the.cu
11200 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 20 69 74 2c 20 61 rrent.directory,.processes.it,.a
11220 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 74 61 6c 6c 73 20 nd.updates,.removes.or.installs.
11240 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 66 6f 3e 70 68 70 all.the.dependencies...<info>php
11260 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 6f 3e 0a 0a 54 6f .composer.phar.update</info>..To
11280 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 6e 20 74 6f 20 61 .limit.the.update.operation.to.a
112a0 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 74 20 74 68 65 20 .few.packages,.you.can.list.the.
112c0 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 61 74 65 20 61 73 package(s).you.want.to.update.as
112e0 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 2e 70 68 61 72 20 .such:..<info>php.composer.phar.
11300 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 2f 6d 79 70 61 63 update.vendor/package1.foo/mypac
11320 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 7d 0a 0a 70 72 6f kage.[...]</info>.EOT.).;.}..pro
11340 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
11360 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.$
11380 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 73 2d 3e 67 65 74 output).{.$composer.=.$this->get
113a0 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f Composer();.$composer->getDownlo
113c0 61 64 4d 61 6e 61 67 65 72 28 29 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 adManager()->setOutputProgress(!
113e0 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 $input->getOption('no-progress')
11400 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 69 6e 73 74 61 6c );.$io.=.$this->getIO();.$instal
11420 6c 20 3d 20 49 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 l.=.Installer::create($io,.$comp
11440 6f 73 65 72 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 24 oser);..$preferSource.=.false;.$
11460 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d preferDist.=.false;.switch.($com
11480 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 70 72 65 66 65 72 72 poser->getConfig()->get('preferr
114a0 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 ed-install')).{.case.'source':.$
114c0 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 preferSource.=.true;.break;.case
114e0 20 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 .'dist':.$preferDist.=.true;.bre
11500 61 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 ak;.case.'auto':.default:...brea
11520 6b 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 k;.}.if.($input->getOption('pref
11540 65 72 2d 73 6f 75 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e er-source').||.$input->getOption
11560 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 ('prefer-dist')).{.$preferSource
11580 20 3d 20 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 2d 73 6f 75 .=.$input->getOption('prefer-sou
115a0 72 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 rce');.$preferDist.=.$input->get
115c0 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 0a 24 69 6e 73 74 61 Option('prefer-dist');.}..$insta
115e0 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 6e ll.->setDryRun($input->getOption
11600 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 74 ('dry-run')).->setVerbose($input
11620 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 65 ->getOption('verbose')).->setPre
11640 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 ferSource($preferSource).->setPr
11660 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f eferDist($preferDist).->setDevMo
11680 64 65 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 de(!$input->getOption('no-dev'))
116a0 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 .->setRunScripts(!$input->getOpt
116c0 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 ion('no-scripts')).->setOptimize
116e0 41 75 74 6f 6c 6f 61 64 65 72 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 Autoloader($input->getOption('op
11700 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 timize-autoloader')).->setUpdate
11720 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 24 69 6e 70 (true).->setUpdateWhitelist($inp
11740 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 0a 3b 0a 0a ut->getArgument('packages')).;..
11760 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d if.($input->getOption('no-custom
11780 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 2d 3e 64 69 73 61 62 -installers')).{.$install->disab
117a0 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 leCustomInstallers();.}..return.
117c0 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 20 3f 20 30 20 3a 20 31 3b 0a 7d 0a 7d 0a 3c 3f 70 $install->run().?.0.:.1;.}.}.<?p
117e0 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
11800 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
11820 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 65 3b 0a 75 \Console\Input\InputInterface;.u
11840 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
11860 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 6e 79 5c 43 6f ut\InputArgument;.use.Symfony\Co
11880 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
118a0 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
118c0 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 6d \Output\OutputInterface;.use.Com
118e0 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 43 6f 6e 66 69 poser\Config;.use.Composer\Confi
11900 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 g\JsonConfigSource;.use.Composer
11920 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e \Factory;.use.Composer\Json\Json
11940 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 20 65 File;......class.ConfigCommand.e
11960 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 20 24 63 xtends.Command.{....protected.$c
11980 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 46 69 6c 65 onfig;.....protected.$configFile
119a0 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 0a ;.....protected.$configSource;..
119c0 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 69 67 75 72 65 28 ...protected.function.configure(
119e0 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 6f 6e 66 69 67 27 29 0a 2d 3e ).{.$this.->setName('config').->
11a00 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 65 74 20 63 6f 6e 66 69 67 20 6f 70 74 69 6f setDescription('Set.config.optio
11a20 6e 73 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 20 ns').->setDefinition(array(.new.
11a40 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 2c 20 27 67 27 2c 20 49 6e 70 75 74 InputOption('global',.'g',.Input
11a60 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 70 70 6c 79 20 63 6f 6d 6d 61 Option::VALUE_NONE,.'Apply.comma
11a80 6e 64 20 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 20 66 69 6c 65 27 29 2c 0a nd.to.the.global.config.file'),.
11aa0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 2c 20 27 65 27 2c 20 49 new.InputOption('editor',.'e',.I
11ac0 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 70 65 6e 20 65 64 nputOption::VALUE_NONE,.'Open.ed
11ae0 69 74 6f 72 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 2c itor'),.new.InputOption('unset',
11b00 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,.
11b20 27 55 6e 73 65 74 20 74 68 65 20 67 69 76 65 6e 20 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 2c 0a 'Unset.the.given.setting-key'),.
11b40 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 6e 70 new.InputOption('list',.'l',.Inp
11b60 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 63 6f 6e 66 utOption::VALUE_NONE,.'List.conf
11b80 69 67 75 72 61 74 69 6f 6e 20 73 65 74 74 69 6e 67 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f iguration.settings'),.new.InputO
11ba0 70 74 69 6f 6e 28 27 66 69 6c 65 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a ption('file',.'f',.InputOption::
11bc0 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 VALUE_REQUIRED,.'If.you.want.to.
11be0 63 68 6f 6f 73 65 20 61 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e choose.a.different.composer.json
11c00 20 6f 72 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 2c 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e .or.config.json',.'composer.json
11c20 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b '),.new.InputArgument('setting-k
11c40 65 79 27 2c 20 6e 75 6c 6c 2c 20 27 53 65 74 74 69 6e 67 20 6b 65 79 27 29 2c 0a 6e 65 77 20 49 ey',.null,.'Setting.key'),.new.I
11c60 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 2c 20 49 6e nputArgument('setting-value',.In
11c80 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 2c 20 27 53 65 74 74 69 6e 67 20 putArgument::IS_ARRAY,.'Setting.
11ca0 76 61 6c 75 65 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 69 value'),.)).->setHelp(<<<EOT.Thi
11cc0 73 20 63 6f 6d 6d 61 6e 64 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 65 64 69 74 20 73 6f 6d s.command.allows.you.to.edit.som
11ce0 65 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 72 20 73 65 74 74 69 6e 67 73 20 69 6e 20 65 69 74 e.basic.composer.settings.in.eit
11d00 68 65 72 20 74 68 65 0a 6c 6f 63 61 6c 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 her.the.local.composer.json.file
11d20 20 6f 72 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e .or.the.global.config.json.file.
11d40 0a 0a 54 6f 20 65 64 69 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e ..To.edit.the.global.config.json
11d60 20 66 69 6c 65 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 .file:......<comment>%command.fu
11d80 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 67 6c 6f 62 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 ll_name%.--global</comment>..To.
11da0 61 64 64 20 61 20 72 65 70 6f 73 69 74 6f 72 79 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e add.a.repository:......<comment>
11dc0 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 72 65 70 6f 73 69 74 6f 72 69 65 73 %command.full_name%.repositories
11de0 2e 66 6f 6f 20 76 63 73 20 68 74 74 70 3a 2f 2f 62 61 72 2e 63 6f 6d 3c 2f 63 6f 6d 6d 65 6e 74 .foo.vcs.http://bar.com</comment
11e00 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 64 64 20 61 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 74 >..You.can.add.a.repository.to.t
11e20 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 20 62 79 20 70 61 he.global.config.json.file.by.pa
11e40 73 73 69 6e 67 20 69 6e 20 74 68 65 0a 3c 69 6e 66 6f 3e 2d 2d 67 6c 6f 62 61 6c 3c 2f 69 6e 66 ssing.in.the.<info>--global</inf
11e60 6f 3e 20 6f 70 74 69 6f 6e 2e 0a 0a 54 6f 20 65 64 69 74 20 74 68 65 20 66 69 6c 65 20 69 6e 20 o>.option...To.edit.the.file.in.
11e80 61 6e 20 65 78 74 65 72 6e 61 6c 20 65 64 69 74 6f 72 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e an.external.editor:......<commen
11ea0 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 6f 72 3c 2f t>%command.full_name%.--editor</
11ec0 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 63 68 6f 6f 73 65 20 79 6f 75 72 20 65 64 69 74 6f 72 20 comment>..To.choose.your.editor.
11ee0 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 65 20 22 45 44 49 54 4f 52 22 20 65 6e 76 20 76 61 72 you.can.set.the."EDITOR".env.var
11f00 69 61 62 6c 65 2e 0a 0a 54 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 66 69 67 75 iable...To.get.a.list.of.configu
11f20 72 61 74 69 6f 6e 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 66 69 6c 65 3a 0a 0a 20 20 20 20 ration.values.in.the.file:......
11f40 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 6c <comment>%command.full_name%.--l
11f60 69 73 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 77 61 79 73 20 70 61 ist</comment>..You.can.always.pa
11f80 73 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 6f 70 74 69 6f 6e 2e 20 41 73 20 61 6e 20 65 ss.more.than.one.option..As.an.e
11fa0 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 65 64 69 74 20 74 68 65 0a xample,.if.you.want.to.edit.the.
11fc0 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 20 20 20 20 3c 63 global.config.json.file.......<c
11fe0 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 omment>%command.full_name%.--edi
12000 74 6f 72 20 2d 2d 67 6c 6f 62 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d tor.--global</comment>.EOT.).;.}
12020 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 69 74 69 61 6c 69 .....protected.function.initiali
12040 7a 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 ze(InputInterface.$input,.Output
12060 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 75 74 2d Interface.$output).{.if.($input-
12080 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 20 26 26 20 27 63 6f 6d 70 6f 73 65 >getOption('global').&&.'compose
120a0 72 2e 6a 73 6f 6e 27 20 21 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 r.json'.!==.$input->getOption('f
120c0 69 6c 65 27 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 ile')).{.throw.new.\RuntimeExcep
120e0 74 69 6f 6e 28 27 2d 2d 66 69 6c 65 20 61 6e 64 20 2d 2d 67 6c 6f 62 61 6c 20 63 61 6e 20 6e 6f tion('--file.and.--global.can.no
12100 74 20 62 65 20 63 6f 6d 62 69 6e 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 t.be.combined');.}..$this->confi
12120 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 0a 0a 20 g.=.Factory::createConfig();....
12140 0a 20 24 63 6f 6e 66 69 67 46 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ..$configFile.=.$input->getOptio
12160 6e 28 27 67 6c 6f 62 61 6c 27 29 0a 3f 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 n('global').?.($this->config->ge
12180 74 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 0a 3a 20 24 69 t('home')...'/config.json').:.$i
121a0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 3b 0a 0a 24 74 68 69 73 2d nput->getOption('file');..$this-
121c0 3e 63 6f 6e 66 69 67 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 6f 6e 66 >configFile.=.new.JsonFile($conf
121e0 69 67 46 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 6e igFile);.$this->configSource.=.n
12200 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 ew.JsonConfigSource($this->confi
12220 67 46 69 6c 65 29 3b 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e gFile);....if.($input->getOption
12240 28 27 67 6c 6f 62 61 6c 27 29 20 26 26 20 21 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 ('global').&&.!$this->configFile
12260 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 ->exists()).{.touch($this->confi
12280 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 gFile->getPath());.$this->config
122a0 46 69 6c 65 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 6e 65 File->write(array('config'.=>.ne
122c0 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 29 29 3b 0a 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 63 w.\ArrayObject));.chmod($this->c
122e0 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 0a onfigFile->getPath(),.0600);.}..
12300 69 66 20 28 21 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 if.(!$this->configFile->exists()
12320 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(
12340 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 'No.composer.json.found.in.the.c
12360 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 urrent.directory');.}.}.....prot
12380 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
123a0 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
123c0 75 74 70 75 74 29 0a 7b 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e utput).{...if.($input->getOption
123e0 28 27 65 64 69 74 6f 72 27 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 67 65 74 65 6e 76 28 27 ('editor')).{.$editor.=.getenv('
12400 45 44 49 54 4f 52 27 29 3b 0a 69 66 20 28 21 24 65 64 69 74 6f 72 29 20 7b 0a 69 66 20 28 64 65 EDITOR');.if.(!$editor).{.if.(de
12420 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
12440 27 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 27 6e 6f 74 65 70 61 64 27 3b 0a 7d 20 65 6c 73 ')).{.$editor.=.'notepad';.}.els
12460 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 76 69 6d 27 2c 20 27 76 69 27 2c 20 e.{.foreach.(array('vim',.'vi',.
12480 27 6e 61 6e 6f 27 2c 20 27 70 69 63 6f 27 2c 20 27 65 64 27 29 20 61 73 20 24 63 61 6e 64 69 64 'nano',.'pico',.'ed').as.$candid
124a0 61 74 65 29 20 7b 0a 69 66 20 28 65 78 65 63 28 27 77 68 69 63 68 20 27 2e 24 63 61 6e 64 69 64 ate).{.if.(exec('which.'.$candid
124c0 61 74 65 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 ate)).{.$editor.=.$candidate;.br
124e0 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 73 79 73 74 65 6d 28 24 65 64 69 74 6f 72 20 2e 20 27 eak;.}.}.}.}..system($editor...'
12500 20 27 20 2e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 .'...$this->configFile->getPath(
12520 29 20 2e 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 4f )...(defined('PHP_WINDOWS_VERSIO
12540 4e 5f 42 55 49 4c 44 27 29 20 3f 20 27 27 3a 20 27 20 3e 20 60 74 74 79 60 27 29 29 3b 0a 0a 72 N_BUILD').?.'':.'.>.`tty`'));..r
12560 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 eturn.0;.}..if.(!$input->getOpti
12580 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 6d on('global')).{.$this->config->m
125a0 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b erge($this->configFile->read());
125c0 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 73 .}....if.($input->getOption('lis
125e0 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 t')).{.$this->listConfiguration(
12600 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 61 6c 6c 28 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e $this->config->all(),.$this->con
12620 66 69 67 2d 3e 72 61 77 28 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b fig->raw(),.$output);..return.0;
12640 0a 7d 0a 0a 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 .}..$settingKey.=.$input->getArg
12660 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 3b 0a 69 66 20 28 21 24 73 65 74 74 ument('setting-key');.if.(!$sett
12680 69 6e 67 4b 65 79 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 72 ingKey).{.return.0;.}....if.(arr
126a0 61 79 28 29 20 21 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 ay().!==.$input->getArgument('se
126c0 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 tting-value').&&.$input->getOpti
126e0 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d on('unset')).{.throw.new.\Runtim
12700 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 20 eException('You.can.not.combine.
12720 61 20 73 65 74 74 69 6e 67 20 76 61 6c 75 65 20 77 69 74 68 20 2d 2d 75 6e 73 65 74 27 29 3b 0a a.setting.value.with.--unset');.
12740 7d 0a 0a 0a 20 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 }....if.(array().===.$input->get
12760 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 20 26 26 20 21 24 69 Argument('setting-value').&&.!$i
12780 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 24 64 61 74 nput->getOption('unset')).{.$dat
127a0 61 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 61 6c 6c 28 29 3b 0a 69 66 20 28 70 72 a.=.$this->config->all();.if.(pr
127c0 65 67 5f 6d 61 74 63 68 28 27 2f 5e 72 65 70 6f 73 3f 28 3f 3a 69 74 6f 72 69 65 73 29 3f 28 3f eg_match('/^repos?(?:itories)?(?
127e0 3a 5c 2e 28 2e 2b 29 29 3f 2f 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 :\.(.+))?/',.$settingKey,.$match
12800 65 73 29 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 29 20 7b es)).{.if.(empty($matches[1])).{
12820 0a 24 76 61 6c 75 65 20 3d 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 .$value.=.isset($data['repositor
12840 69 65 73 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 20 3a ies']).?.$data['repositories'].:
12860 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 .array();.}.else.{.if.(!isset($d
12880 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 6d 61 74 63 68 65 73 5b 31 5d 5d ata['repositories'][$matches[1]]
128a0 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
128c0 78 63 65 70 74 69 6f 6e 28 27 54 68 65 72 65 20 69 73 20 6e 6f 20 27 2e 24 6d 61 74 63 68 65 73 xception('There.is.no.'.$matches
128e0 5b 31 5d 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 0a 24 [1].'.repository.defined');.}..$
12900 76 61 6c 75 65 20 3d 20 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 6d value.=.$data['repositories'][$m
12920 61 74 63 68 65 73 5b 31 5d 5d 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 73 74 72 70 6f 73 28 24 atches[1]];.}.}.elseif.(strpos($
12940 73 65 74 74 69 6e 67 4b 65 79 2c 20 27 2e 27 29 29 20 7b 0a 24 62 69 74 73 20 3d 20 65 78 70 6c settingKey,.'.')).{.$bits.=.expl
12960 6f 64 65 28 27 2e 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 24 64 61 74 61 20 3d 20 24 ode('.',.$settingKey);.$data.=.$
12980 64 61 74 61 5b 27 63 6f 6e 66 69 67 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 69 74 73 20 61 data['config'];.foreach.($bits.a
129a0 73 20 24 62 69 74 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 24 62 69 74 5d 29 s.$bit).{.if.(isset($data[$bit])
129c0 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 64 61 74 61 5b 24 62 69 74 5d 3b 0a 7d 20 65 6c 73 65 69 ).{.$data.=.$data[$bit];.}.elsei
129e0 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 69 6d 70 6c 6f 64 65 28 27 2e 27 2c 20 24 62 69 74 f.(isset($data[implode('.',.$bit
12a00 73 29 5d 29 29 20 7b 0a 0a 20 24 64 61 74 61 20 3d 20 24 64 61 74 61 5b 69 6d 70 6c 6f 64 65 28 s)])).{...$data.=.$data[implode(
12a20 27 2e 27 2c 20 24 62 69 74 73 29 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 '.',.$bits)];.break;.}.else.{.th
12a40 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 24 73 65 74 74 69 row.new.\RuntimeException($setti
12a60 6e 67 4b 65 79 2e 27 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 61 72 72 61 ngKey.'.is.not.defined');.}.arra
12a80 79 5f 73 68 69 66 74 28 24 62 69 74 73 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 y_shift($bits);.}..$value.=.$dat
12aa0 61 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 63 6f 6e 66 69 67 a;.}.elseif.(isset($data['config
12ac0 27 5d 5b 24 73 65 74 74 69 6e 67 4b 65 79 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 '][$settingKey])).{.$value.=.$da
12ae0 74 61 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 73 65 74 74 69 6e 67 4b 65 79 5d 3b 0a 7d 20 65 6c 73 ta['config'][$settingKey];.}.els
12b00 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 69 6f 6e 28 e.{.throw.new.\RuntimeException(
12b20 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 27 29 3b 0a $settingKey.'.is.not.defined');.
12b40 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 }..if.(is_array($value)).{.$valu
12b60 65 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 6f 75 74 e.=.json_encode($value);.}..$out
12b80 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b put->writeln($value);..return.0;
12ba0 0a 7d 0a 0a 24 76 61 6c 75 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e .}..$values.=.$input->getArgumen
12bc0 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 3b 20 0a 0a 0a 20 69 66 20 28 70 72 65 67 t('setting-value');.....if.(preg
12be0 5f 6d 61 74 63 68 28 27 2f 5e 72 65 70 6f 73 3f 28 3f 3a 69 74 6f 72 69 65 73 29 3f 5c 2e 28 2e _match('/^repos?(?:itories)?\.(.
12c00 2b 29 2f 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a +)/',.$settingKey,.$matches)).{.
12c20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 if.($input->getOption('unset')).
12c40 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 {.return.$this->configSource->re
12c60 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a moveRepository($matches[1]);.}..
12c80 69 66 20 28 32 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f if.(2.!==.count($values)).{.thro
12ca0 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 6f 75 20 6d 75 73 w.new.\RuntimeException('You.mus
12cc0 74 20 70 61 73 73 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 61 20 75 72 6c 2e 20 45 78 61 6d 70 t.pass.the.type.and.a.url..Examp
12ce0 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 69 67 20 72 65 70 le:.php.composer.phar.config.rep
12d00 6f 73 69 74 6f 72 69 65 73 2e 66 6f 6f 20 76 63 73 20 68 74 74 70 3a 2f 2f 62 61 72 2e 63 6f 6d ositories.foo.vcs.http://bar.com
12d20 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 ');.}..return.$this->configSourc
12d40 65 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 61 72 e->addRepository($matches[1],.ar
12d60 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 30 5d 2c 0a 27 75 72 6c 27 ray(.'type'.=>.$values[0],.'url'
12d80 20 3d 3e 20 24 76 61 6c 75 65 73 5b 31 5d 2c 0a 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 .=>.$values[1],.));.}....if.(pre
12da0 67 5f 6d 61 74 63 68 28 27 2f 5e 67 69 74 68 75 62 2d 6f 61 75 74 68 5c 2e 28 2e 2b 29 2f 27 2c g_match('/^github-oauth\.(.+)/',
12dc0 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 .$settingKey,.$matches)).{.if.($
12de0 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 input->getOption('unset')).{.ret
12e00 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 urn.$this->configSource->removeC
12e20 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6d 61 onfigSetting('github-oauth.'.$ma
12e40 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 tches[1]);.}..if.(1.!==.count($v
12e60 61 6c 75 65 73 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 alues)).{.throw.new.\RuntimeExce
12e80 70 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 2c 20 65 78 70 65 63 ption('Too.many.arguments,.expec
12ea0 74 65 64 20 6f 6e 6c 79 20 6f 6e 65 20 74 6f 6b 65 6e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ted.only.one.token');.}..return.
12ec0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 $this->configSource->addConfigSe
12ee0 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6d 61 74 63 68 65 73 5b 31 tting('github-oauth.'.$matches[1
12f00 5d 2c 20 24 76 61 6c 75 65 73 5b 30 5d 29 3b 0a 7d 0a 0a 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 ],.$values[0]);.}..$booleanValid
12f20 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 ator.=.function.($val).{.return.
12f40 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 74 72 75 65 27 2c 20 27 66 61 in_array($val,.array('true',.'fa
12f60 6c 73 65 27 2c 20 27 31 27 2c 20 27 30 27 29 2c 20 74 72 75 65 29 3b 20 7d 3b 0a 24 62 6f 6f 6c lse',.'1',.'0'),.true);.};.$bool
12f80 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 eanNormalizer.=.function.($val).
12fa0 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f {.return.$val.!==.'false'.&&.(bo
12fc0 6f 6c 29 20 24 76 61 6c 3b 20 7d 3b 0a 0a 0a 20 24 75 6e 69 71 75 65 43 6f 6e 66 69 67 56 61 6c ol).$val;.};....$uniqueConfigVal
12fe0 75 65 73 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 ues.=.array(.'process-timeout'.=
13000 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c >.array('is_numeric',.'intval'),
13020 0a 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 20 3d 3e 20 61 72 72 61 79 28 0a 24 62 .'use-include-path'.=>.array(.$b
13040 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c 0a 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 ooleanValidator,.$booleanNormali
13060 7a 65 72 0a 29 2c 0a 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 zer.),.'preferred-install'.=>.ar
13080 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 69 6e ray(.function.($val).{.return.in
130a0 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 61 75 74 6f 27 2c 20 27 73 6f 75 72 _array($val,.array('auto',.'sour
130c0 63 65 27 2c 20 27 64 69 73 74 27 29 2c 20 74 72 75 65 29 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e ce',.'dist'),.true);.},.function
130e0 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 0a 29 2c 0a 27 6e 6f 74 .($val).{.return.$val;.}.),.'not
13100 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 0a 24 62 6f 6f 6c 65 ify-on-install'.=>.array(.$boole
13120 61 6e 56 61 6c 69 64 61 74 6f 72 2c 0a 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 0a anValidator,.$booleanNormalizer.
13140 29 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 ),.'vendor-dir'.=>.array('is_str
13160 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 ing',.function.($val).{.return.$
13180 76 61 6c 3b 20 7d 29 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f val;.}),.'bin-dir'.=>.array('is_
131a0 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 string',.function.($val).{.retur
131c0 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 n.$val;.}),.'cache-dir'.=>.array
131e0 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 ('is_string',.function.($val).{.
13200 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 return.$val;.}),.'cache-files-di
13220 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f r'.=>.array('is_string',.functio
13240 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 n.($val).{.return.$val;.}),.'cac
13260 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 he-repo-dir'.=>.array('is_string
13280 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c ',.function.($val).{.return.$val
132a0 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 ;.}),.'cache-vcs-dir'.=>.array('
132c0 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 is_string',.function.($val).{.re
132e0 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 74 74 6c 27 20 3d 3e 20 61 72 turn.$val;.}),.'cache-ttl'.=>.ar
13300 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 63 61 ray('is_numeric',.'intval'),.'ca
13320 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 che-files-ttl'.=>.array('is_nume
13340 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 ric',.'intval'),.'cache-files-ma
13360 78 73 69 7a 65 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 xsize'.=>.array(.function.($val)
13380 20 7b 20 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 28 5b 30 2d 39 .{.return.preg_match('/^\s*([0-9
133a0 2e 5d 2b 29 5c 73 2a 28 3f 3a 28 5b 6b 6d 67 5d 29 28 3f 3a 69 3f 62 29 3f 29 3f 5c 73 2a 24 2f .]+)\s*(?:([kmg])(?:i?b)?)?\s*$/
133c0 69 27 2c 20 24 76 61 6c 29 20 3e 20 30 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c i',.$val).>.0;.},.function.($val
133e0 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 0a 29 2c 0a 27 64 69 73 63 61 72 64 2d 63 ).{.return.$val;.}.),.'discard-c
13400 68 61 6e 67 65 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c hanges'.=>.array(.function.($val
13420 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 ).{.return.in_array($val,.array(
13440 27 73 74 61 73 68 27 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 'stash',.'true',.'false',.'1',.'
13460 30 27 29 2c 20 74 72 75 65 29 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0'),.true);.},.function.($val).{
13480 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 .if.('stash'.===.$val).{.return.
134a0 27 73 74 61 73 68 27 3b 0a 7d 0a 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 73 'stash';.}.return.$val.!==.'fals
134c0 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 0a 7d 0a 29 2c 0a 29 3b 0a 24 6d 75 6c 74 e'.&&.(bool).$val;.}.),.);.$mult
134e0 69 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 2d 70 iConfigValues.=.array(.'github-p
13500 72 6f 74 6f 63 6f 6c 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 rotocols'.=>.array(.function.($v
13520 61 6c 73 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 73 29 29 20 7b 0a 72 als).{.if.(!is_array($vals)).{.r
13540 65 74 75 72 6e 20 27 61 72 72 61 79 20 65 78 70 65 63 74 65 64 27 3b 0a 7d 0a 0a 66 6f 72 65 61 eturn.'array.expected';.}..forea
13560 63 68 20 28 24 76 61 6c 73 20 61 73 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 ch.($vals.as.$val).{.if.(!in_arr
13580 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 2c 20 27 ay($val,.array('git',.'https',.'
135a0 68 74 74 70 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 76 61 6c 69 64 20 70 72 6f 74 6f 63 6f http'))).{.return.'valid.protoco
135c0 6c 73 20 69 6e 63 6c 75 64 65 3a 20 67 69 74 2c 20 68 74 74 70 73 2c 20 68 74 74 70 27 3b 0a 7d ls.include:.git,.https,.http';.}
135e0 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 .}..return.true;.},.function.($v
13600 61 6c 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 73 3b 0a 7d 0a 29 2c 0a 29 3b 0a 0a 66 6f als).{.return.$vals;.}.),.);..fo
13620 72 65 61 63 68 20 28 24 75 6e 69 71 75 65 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 61 73 20 24 6e reach.($uniqueConfigValues.as.$n
13640 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 69 66 20 28 24 73 65 74 74 69 6e ame.=>.$callbacks).{.if.($settin
13660 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 gKey.===.$name).{.if.($input->ge
13680 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tOption('unset')).{.return.$this
136a0 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 ->configSource->removeConfigSett
136c0 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 7d 0a 0a 6c 69 73 74 28 24 76 61 6c 69 64 ing($settingKey);.}..list($valid
136e0 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 20 3d 20 24 63 61 6c 6c 62 61 63 6b 73 3b ator,.$normalizer).=.$callbacks;
13700 0a 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 .if.(1.!==.count($values)).{.thr
13720 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 6f 75 20 63 61 ow.new.\RuntimeException('You.ca
13740 6e 20 6f 6e 6c 79 20 70 61 73 73 20 6f 6e 65 20 76 61 6c 75 65 2e 20 45 78 61 6d 70 6c 65 3a 20 n.only.pass.one.value..Example:.
13760 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 69 67 20 70 72 6f 63 65 73 73 php.composer.phar.config.process
13780 2d 74 69 6d 65 6f 75 74 20 33 30 30 27 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 -timeout.300');.}..if.(true.!==.
137a0 24 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 73 $validation.=.$validator($values
137c0 5b 30 5d 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 [0])).{.throw.new.\RuntimeExcept
137e0 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 22 25 73 22 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 ion(sprintf(.'"%s".is.an.invalid
13800 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 69 6f 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c .value'.($validation.?.'.('.$val
13820 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a 24 76 61 6c 75 65 73 5b 30 5d 0a 29 29 idation.')'.:.''),.$values[0].))
13840 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d ;.}..return.$this->configSource-
13860 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 >addConfigSetting($settingKey,.$
13880 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 65 73 5b 30 5d 29 29 3b 0a 7d 0a 7d 0a 0a 66 6f normalizer($values[0]));.}.}..fo
138a0 72 65 61 63 68 20 28 24 6d 75 6c 74 69 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 61 73 20 24 6e 61 reach.($multiConfigValues.as.$na
138c0 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 69 66 20 28 24 73 65 74 74 69 6e 67 me.=>.$callbacks).{.if.($setting
138e0 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 Key.===.$name).{.if.($input->get
13900 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d Option('unset')).{.return.$this-
13920 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 >configSource->removeConfigSetti
13940 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 7d 0a 0a 6c 69 73 74 28 24 76 61 6c 69 64 61 ng($settingKey);.}..list($valida
13960 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 20 3d 20 24 63 61 6c 6c 62 61 63 6b 73 3b 0a tor,.$normalizer).=.$callbacks;.
13980 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 6c 69 if.(true.!==.$validation.=.$vali
139a0 64 61 74 6f 72 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e dator($values)).{.throw.new.\Run
139c0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 25 73 20 69 73 20 61 6e timeException(sprintf(.'%s.is.an
139e0 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 69 6f 6e 20 3f 20 27 .invalid.value'.($validation.?.'
13a00 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a 6a 73 6f 6e 5f .('.$validation.')'.:.''),.json_
13a20 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 73 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 encode($values).));.}..return.$t
13a40 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 his->configSource->addConfigSett
13a60 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 ing($settingKey,.$normalizer($va
13a80 6c 75 65 73 29 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 lues));.}.}..throw.new.\InvalidA
13aa0 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 53 65 74 74 69 6e 67 20 27 2e 24 73 65 74 rgumentException('Setting.'.$set
13ac0 74 69 6e 67 4b 65 79 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f 72 20 69 73 20 6e tingKey.'.does.not.exist.or.is.n
13ae0 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 27 29 3b 0a ot.supported.by.this.command');.
13b00 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 6c 69 }..........protected.function.li
13b20 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 74 65 6e 74 73 2c stConfiguration(array.$contents,
13b40 20 61 72 72 61 79 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 .array.$rawContents,.OutputInter
13b60 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 72 69 67 face.$output,.$k.=.null).{.$orig
13b80 4b 20 3d 20 24 6b 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 65 6e 74 73 20 61 73 20 24 6b K.=.$k;.foreach.($contents.as.$k
13ba0 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6b 20 3d 3d 3d 20 6e 75 6c 6c 20 ey.=>.$value).{.if.($k.===.null.
13bc0 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 61 72 72 61 79 28 27 63 6f 6e 66 69 67 &&.!in_array($key,.array('config
13be0 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b ',.'repositories'))).{.continue;
13c00 0a 7d 0a 0a 24 72 61 77 56 61 6c 20 3d 20 69 73 73 65 74 28 24 72 61 77 43 6f 6e 74 65 6e 74 73 .}..$rawVal.=.isset($rawContents
13c20 5b 24 6b 65 79 5d 29 20 3f 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 5b 24 6b 65 79 5d 20 3a 20 6e [$key]).?.$rawContents[$key].:.n
13c40 75 6c 6c 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 26 26 20 28 21 ull;..if.(is_array($value).&&.(!
13c60 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 76 61 6c 75 65 29 29 20 7c 7c 20 28 24 6b 65 79 is_numeric(key($value)).||.($key
13c80 20 3d 3d 3d 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 .===.'repositories'.&&.null.===.
13ca0 24 6b 29 29 29 20 7b 0a 24 6b 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 63 6f $k))).{.$k..=.preg_replace('{^co
13cc0 6e 66 69 67 5c 2e 7d 27 2c 20 27 27 2c 20 24 6b 65 79 20 2e 20 27 2e 27 29 3b 0a 24 74 68 69 73 nfig\.}',.'',.$key...'.');.$this
13ce0 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 76 61 6c 75 65 2c 20 24 72 61 77 ->listConfiguration($value,.$raw
13d00 56 61 6c 2c 20 24 6f 75 74 70 75 74 2c 20 24 6b 29 3b 0a 0a 69 66 20 28 73 75 62 73 74 72 5f 63 Val,.$output,.$k);..if.(substr_c
13d20 6f 75 6e 74 28 24 6b 2c 20 27 2e 27 29 20 3e 20 31 29 20 7b 0a 24 6b 20 3d 20 73 74 72 5f 73 70 ount($k,.'.').>.1).{.$k.=.str_sp
13d40 6c 69 74 28 24 6b 2c 20 73 74 72 72 70 6f 73 28 24 6b 2c 20 27 2e 27 2c 20 2d 32 29 29 3b 0a 24 lit($k,.strrpos($k,.'.',.-2));.$
13d60 6b 20 3d 20 24 6b 5b 30 5d 20 2e 20 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6b 20 3d 20 24 k.=.$k[0]...'.';.}.else.{.$k.=.$
13d80 6f 72 69 67 4b 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 origK;.}..continue;.}..if.(is_ar
13da0 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 5f 6d 61 ray($value)).{.$value.=.array_ma
13dc0 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 61 72 p(function.($val).{.return.is_ar
13de0 72 61 79 28 24 76 61 6c 29 20 3f 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 29 20 3a 20 ray($val).?.json_encode($val).:.
13e00 24 76 61 6c 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 24 76 61 6c 75 65 20 3d 20 27 5b 27 2e $val;.},.$value);..$value.=.'['.
13e20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 61 6c 75 65 29 2e 27 5d 27 3b 0a 7d 0a 0a 69 66 implode(',.',.$value).']';.}..if
13e40 20 28 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 76 61 .(is_bool($value)).{.$value.=.va
13e60 72 5f 65 78 70 6f 72 74 28 24 76 61 6c 75 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 69 r_export($value,.true);.}..if.(i
13e80 73 5f 73 74 72 69 6e 67 28 24 72 61 77 56 61 6c 29 20 26 26 20 24 72 61 77 56 61 6c 20 21 3d 20 s_string($rawVal).&&.$rawVal.!=.
13ea0 24 76 61 6c 75 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 5b 3c 63 6f $value).{.$output->writeln('[<co
13ec0 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 24 6b 65 79 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 mment>'...$k...$key...'</comment
13ee0 3e 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 72 61 77 56 61 6c 20 2e 20 27 20 28 27 20 2e 20 24 76 >].<info>'...$rawVal...'.('...$v
13f00 61 6c 75 65 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 alue...')</info>');.}.else.{.$ou
13f20 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 tput->writeln('[<comment>'...$k.
13f40 2e 20 24 6b 65 79 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 ..$key...'</comment>].<info>'...
13f60 24 76 61 6c 75 65 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 $value...'</info>');.}.}.}.}.<?p
13f80 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
13fa0 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 6e 73 74 61 6c 6c 65 \Command;..use.Composer\Installe
13fc0 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 6e 73 6f 6c 65 r;.use.Symfony\Component\Console
13fe0 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 79 6d 66 6f \Input\InputInterface;.use.Symfo
14000 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
14020 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
14040 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;...
14060 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 ....class.InstallCommand.extends
14080 20 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 .Command.{.protected.function.co
140a0 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 69 6e 73 nfigure().{.$this.->setName('ins
140c0 74 61 6c 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 49 6e 73 74 61 6c 6c tall').->setDescription('Install
140e0 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 66 72 6f 6d 20 s.the.project.dependencies.from.
14100 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 20 69 66 20 70 72 65 73 65 6e the.composer.lock.file.if.presen
14120 74 2c 20 6f 72 20 66 61 6c 6c 73 20 62 61 63 6b 20 6f 6e 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 t,.or.falls.back.on.the.composer
14140 2e 6a 73 6f 6e 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 .json.').->setDefinition(array(.
14160 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 2c new.InputOption('prefer-source',
14180 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,.
141a0 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 67 'Forces.installation.from.packag
141c0 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 69 e.sources.when.possible,.includi
141e0 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 74 ng.VCS.information.'),.new.Input
14200 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 Option('prefer-dist',.null,.Inpu
14220 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
14240 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e tallation.from.package.dist.even
14260 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f .for.dev.versions.'),.new.InputO
14280 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 ption('dry-run',.null,.InputOpti
142a0 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 on::VALUE_NONE,.'Outputs.the.ope
142c0 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 rations.but.will.not.execute.any
142e0 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 thing.(implicitly.enables.--verb
14300 6f 73 65 29 2e 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 20 ose).'),.new.InputOption('dev',.
14320 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 27 null,.InputOption::VALUE_NONE,.'
14340 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d Enables.installation.of.require-
14360 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e dev.packages.'),.new.InputOption
14380 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 ('no-dev',.null,.InputOption::VA
143a0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e LUE_NONE,.'Disables.installation
143c0 20 6f 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 .of.require-dev.packages.(enable
143e0 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 73 d.by.default,.only.present.for.s
14400 61 6e 69 74 79 29 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 63 anity).'),.new.InputOption('no-c
14420 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 ustom-installers',.null,.InputOp
14440 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 20 61 6c 6c 20 tion::VALUE_NONE,.'Disables.all.
14460 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f custom.installers.'),.new.InputO
14480 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f ption('no-scripts',.null,.InputO
144a0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 ption::VALUE_NONE,.'Skips.the.ex
144c0 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 ecution.of.all.scripts.defined.i
144e0 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 n.composer.json.file.'),.new.Inp
14500 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e utOption('no-progress',.null,.In
14520 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 6f 20 6e 6f 74 20 6f putOption::VALUE_NONE,.'Do.not.o
14540 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 utput.download.progress.'),.new.
14560 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 InputOption('verbose',.'v|vv|vvv
14580 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 53 68 6f ',.InputOption::VALUE_NONE,.'Sho
145a0 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 20 63 6f ws.more.details.including.new.co
145c0 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 6e 67 20 70 61 mmits.pulled.in.when.updating.pa
145e0 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 ckages.'),.new.InputOption('opti
14600 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 mize-autoloader',.'o',.InputOpti
14620 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 75 74 6f 6c 6f on::VALUE_NONE,.'Optimize.autolo
14640 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 27 29 0a 29 29 ader.during.autoloader.dump').))
14660 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 69 6e 73 74 .->setHelp(<<<EOT.The.<info>inst
14680 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 20 63 6f 6d all</info>.command.reads.the.com
146a0 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 20 66 72 6f 6d 0a 74 68 65 20 63 75 72 72 65 6e 74 poser.lock.file.from.the.current
146c0 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 64 20 64 6f .directory,.processes.it,.and.do
146e0 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 0a 6c 69 62 wnloads.and.installs.all.the.lib
14700 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 69 6e 65 64 raries.and.dependencies.outlined
14720 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 20 49 66 20 74 68 65 20 66 69 6c 65 20 64 6f 65 73 20 .in.that.file..If.the.file.does.
14740 6e 6f 74 0a 65 78 69 73 74 20 69 74 20 77 69 6c 6c 20 6c 6f 6f 6b 20 66 6f 72 20 63 6f 6d 70 6f not.exist.it.will.look.for.compo
14760 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 64 6f 20 74 68 65 20 73 61 6d 65 2e 0a 0a 3c 69 6e 66 6f ser.json.and.do.the.same...<info
14780 3e 70 68 70 20 63 6f 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 >php.composer.phar.install</info
147a0 3e 0a 0a 45 4f 54 0a 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 >..EOT.).;.}..protected.function
147c0 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 69 6e 70 75 74 2c 20 .execute(InputInterface.$input,.
147e0 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 63 6f 6d 70 OutputInterface.$output).{.$comp
14800 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 29 3b 0a 24 63 6f oser.=.$this->getComposer();.$co
14820 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 2d 3e 73 65 mposer->getDownloadManager()->se
14840 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 tOutputProgress(!$input->getOpti
14860 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d on('no-progress'));.$io.=.$this-
14880 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 3a 3a >getIO();.$install.=.Installer::
148a0 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 70 72 65 66 65 72 create($io,.$composer);..$prefer
148c0 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 Source.=.false;.$preferDist.=.fa
148e0 6c 73 65 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 lse;.switch.($composer->getConfi
14900 67 28 29 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b g()->get('preferred-install')).{
14920 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 .case.'source':.$preferSource.=.
14940 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 true;.break;.case.'dist':.$prefe
14960 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 rDist.=.true;.break;.case.'auto'
14980 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 :.default:...break;.}.if.($input
149a0 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 20 7c 7c 20 ->getOption('prefer-source').||.
149c0 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 2d 64 69 73 74 27 29 $input->getOption('prefer-dist')
149e0 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f ).{.$preferSource.=.$input->getO
14a00 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 ption('prefer-source');.$preferD
14a20 69 73 74 20 3d 20 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 2d ist.=.$input->getOption('prefer-
14a40 64 69 73 74 27 29 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 dist');.}..$install.->setDryRun(
14a60 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e $input->getOption('dry-run')).->
14a80 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 76 65 setVerbose($input->getOption('ve
14aa0 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 70 72 65 66 rbose')).->setPreferSource($pref
14ac0 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 erSource).->setPreferDist($prefe
14ae0 72 44 69 73 74 29 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 rDist).->setDevMode($input->getO
14b00 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 73 28 21 24 ption('dev')).->setRunScripts(!$
14b20 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 27 29 29 0a input->getOption('no-scripts')).
14b40 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 69 6e 70 75 74 2d 3e ->setOptimizeAutoloader($input->
14b60 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 getOption('optimize-autoloader')
14b80 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 ).;..if.($input->getOption('no-c
14ba0 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 2d 3e ustom-installers')).{.$install->
14bc0 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 28 29 3b 0a 7d 0a 0a 72 65 disableCustomInstallers();.}..re
14be0 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 3b 0a 7d 0a turn.$install->run().?.0.:.1;.}.
14c00 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
14c20 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 55 74 69 poser\Command;..use.Composer\Uti
14c40 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 l\ConfigValidator;.use.Symfony\C
14c60 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
14c80 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
14ca0 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 65 20 53 79 sole\Input\InputArgument;.use.Sy
14cc0 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 5c 4f mfony\Component\Console\Output\O
14ce0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c utputInterface;........class.Val
14d00 69 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 7b 0a 0a idateCommand.extends.Command.{..
14d20 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 69 67 75 72 65 28 29 ..protected.function.configure()
14d40 0a 7b 0a 24 74 68 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 .{.$this.->setName('validate').-
14d60 3e 73 65 74 44 65 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 >setDescription('Validates.a.com
14d80 70 6f 73 65 72 2e 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 poser.json').->setDefinition(arr
14da0 61 79 28 0a 6e 65 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 ay(.new.InputArgument('file',.In
14dc0 70 75 74 41 72 67 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 putArgument::OPTIONAL,.'path.to.
14de0 63 6f 6d 70 6f 73 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 composer.json.file',.'./composer
14e00 2e 6a 73 6f 6e 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 .json').)).->setHelp(<<<EOT.The.
14e20 76 61 6c 69 64 61 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 validate.command.validates.a.giv
14e40 65 6e 20 63 6f 6d 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 en.composer.json..EOT.);.}......
14e60 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
14e80 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
14ea0 61 63 65 20 24 6f 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 ace.$output).{.$file.=.$input->g
14ec0 65 74 41 72 67 75 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 etArgument('file');..if.(!file_e
14ee0 78 69 73 74 73 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 xists($file)).{.$output->writeln
14f00 28 27 3c 65 72 72 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 ('<error>'...$file...'.not.found
14f20 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 69 66 20 28 21 69 .</error>');..return.1;.}.if.(!i
14f40 73 5f 72 65 61 64 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 s_readable($file)).{.$output->wr
14f60 69 74 65 6c 6e 28 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 iteln('<error>'...$file...'.is.n
14f80 6f 74 20 72 65 61 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 ot.readable.</error>');..return.
14fa0 31 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 56 61 6c 1;.}..$validator.=.new.ConfigVal
14fc0 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 6c 69 73 74 28 24 65 72 idator($this->getIO());.list($er
14fe0 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 rors,.$publishErrors,.$warnings)
15000 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 29 3b 0a .=.$validator->validate($file);.
15020 0a 0a 20 69 66 20 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 ...if.(!$errors.&&.!$publishErro
15040 72 73 20 26 26 20 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 rs.&&.!$warnings).{.$output->wri
15060 74 65 6c 6e 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 teln('<info>'...$file...'.is.val
15080 69 64 3c 2f 69 6e 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 id</info>');.}.elseif.(!$errors.
150a0 26 26 20 21 24 70 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 &&.!$publishErrors).{.$output->w
150c0 72 69 74 65 6c 6e 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 riteln('<info>'...$file...'.is.v
150e0 61 6c 69 64 2c 20 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 alid,.but.with.a.few.warnings</i
15100 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
15120 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
15140 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
15160 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 69 66 20 28 e.schema</warning>');.}.elseif.(
15180 21 24 65 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 28 27 3c 69 !$errors).{.$output->writeln('<i
151a0 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 20 66 6f 72 20 73 nfo>'...$file...'.is.valid.for.s
151c0 69 6d 70 6c 65 20 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 imple.usage.with.composer.but.ha
151e0 73 3c 2f 69 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 69 s</info>');.$output->writeln('<i
15200 6e 66 6f 3e 73 74 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 nfo>strict.errors.that.make.it.u
15220 6e 61 62 6c 65 20 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 nable.to.be.published.as.a.packa
15240 67 65 3a 3c 2f 69 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 ge:</info>');.$output->writeln('
15260 3c 77 61 72 6e 69 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 <warning>See.http://getcomposer.
15280 6f 72 67 2f 64 6f 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 org/doc/04-schema.md.for.details
152a0 20 6f 6e 20 74 68 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 .on.the.schema</warning>');.}.el
152c0 73 65 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 3e 27 20 se.{.$output->writeln('<error>'.
152e0 2e 20 24 66 69 6c 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 ..$file...'.is.invalid,.the.foll
15300 6f 77 69 6e 67 20 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 owing.errors/warnings.were.found
15320 3a 3c 2f 65 72 72 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 :</error>');.}..$messages.=.arra
15340 79 28 0a 27 65 72 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 y(.'error'.=>.array_merge($error
15360 73 2c 20 24 70 75 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 s,.$publishErrors),.'warning'.=>
15380 20 24 77 61 72 6e 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 .$warnings,.);..foreach.($messag
153a0 65 73 20 61 73 20 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 es.as.$style.=>.$msgs).{.foreach
153c0 20 28 24 6d 73 67 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 .($msgs.as.$msg).{.$output->writ
153e0 65 6c 6e 28 27 3c 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 eln('<'...$style...'>'...$msg...
15400 27 3c 2f 27 20 2e 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 '</'...$style...'>');.}.}..retur
15420 6e 20 24 65 72 72 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 n.$errors.||.$publishErrors.?.1.
15440 3a 20 30 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 :.0;.}.}.<?php............namesp
15460 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 20 43 6f 6d 70 6f ace.Composer\Command;..use.Compo
15480 73 65 72 5c 44 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 ser\DependencyResolver\Pool;.use
154a0 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
154c0 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
154e0 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
15500 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
15520 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 66 6f 6e 79 e\Input\InputOption;.use.Symfony
15540 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
15560 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 73 43 6f 6d Interface;......class.DependsCom
15580 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 74 65 64 mand.extends.Command.{.protected
155a0 20 24 6c 69 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 .$linkTypes.=.array(.'require'.=
155c0 3e 20 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 27 29 2c >.array('requires',.'requires'),
155e0 0a 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 76 52 65 71 75 .'require-dev'.=>.array('devRequ
15600 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 29 27 29 2c 0a 29 3b 0a 0a 70 72 ires',.'requires.(dev)'),.);..pr
15620 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 7b 0a 24 otected.function.configure().{.$
15640 74 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 this.->setName('depends').->setD
15660 65 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 escription('Shows.which.packages
15680 20 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 .depend.on.the.given.package').-
156a0 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 20 49 6e 70 75 74 41 >setDefinition(array(.new.InputA
156c0 72 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 rgument('package',.InputArgument
156e0 3a 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 ::REQUIRED,.'Package.to.inspect'
15700 29 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 ),.new.InputOption('link-type',.
15720 27 27 2c 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 20 '',.InputOption::VALUE_REQUIRED.
15740 7c 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 |.InputOption::VALUE_IS_ARRAY,.'
15760 4c 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 Link.types.to.show.(require,.req
15780 75 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 uire-dev)',.array_keys($this->li
157a0 6e 6b 54 79 70 65 73 29 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 44 nkTypes)),.)).->setHelp(<<<EOT.D
157c0 69 73 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 isplays.detailed.information.abo
157e0 75 74 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 ut.where.a.package.is.referenced
15800 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 64 65 70 65 6e ...<info>php.composer.phar.depen
15820 64 73 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 ds.composer/composer</info>..EOT
15840 0a 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 .).;.}..protected.function.execu
15860 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 75 74 te(InputInterface.$input,.Output
15880 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 72 65 70 6f 20 3d 20 24 74 68 Interface.$output).{.$repo.=.$th
158a0 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 is->getComposer()->getRepository
158c0 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 3b Manager()->getLocalRepository();
158e0 0a 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 .$needle.=.$input->getArgument('
15900 70 61 63 6b 61 67 65 27 29 3b 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 29 3b 0a package');..$pool.=.new.Pool();.
15920 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 0a 24 70 $pool->addRepository($repo);..$p
15940 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 65 73 28 24 6e ackages.=.$pool->whatProvides($n
15960 65 65 64 6c 65 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a eedle);.if.(empty($packages)).{.
15980 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
159a0 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 22 27 2e 24 ion('Could.not.find.package."'.$
159c0 6e 65 65 64 6c 65 2e 27 22 20 69 6e 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 2e 27 29 3b 0a 7d 0a needle.'".in.your.project.');.}.
159e0 0a 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 3b 0a .$linkTypes.=.$this->linkTypes;.
15a00 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 .$types.=.array_map(function.($t
15a20 79 70 65 29 20 75 73 65 20 28 24 6c 69 6e 6b 54 79 70 65 73 29 20 7b 0a 24 74 79 70 65 20 3d 20 ype).use.($linkTypes).{.$type.=.
15a40 72 74 72 69 6d 28 24 74 79 70 65 2c 20 27 73 27 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6c rtrim($type,.'s');.if.(!isset($l
15a60 69 6e 6b 54 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 49 inkTypes[$type])).{.throw.new.\I
15a80 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 55 6e 65 78 70 65 63 nvalidArgumentException('Unexpec
15aa0 74 65 64 20 6c 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 ted.link.type:.'.$type.',.valid.
15ac0 74 79 70 65 73 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 types:.'.implode(',.',.array_key
15ae0 73 28 24 6c 69 6e 6b 54 79 70 65 73 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 79 70 65 s($linkTypes)));.}..return.$type
15b00 3b 0a 7d 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 ;.},.$input->getOption('link-typ
15b20 65 27 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 75 74 e'));..$messages.=.array();.$out
15b40 70 75 74 50 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 putPackages.=.array();.foreach.(
15b60 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 6b 61 67 65 $repo->getPackages().as.$package
15b80 29 20 7b 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 7b 0a ).{.foreach.($types.as.$type).{.
15ba0 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 6c 69 6e 6b 54 foreach.($package->{'get'.$linkT
15bc0 79 70 65 73 5b 24 74 79 70 65 5d 5b 30 5d 7d 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 ypes[$type][0]}().as.$link).{.if
15be0 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 65 65 64 6c 65 .($link->getTarget().===.$needle
15c00 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 5b 24 ).{.if.(!isset($outputPackages[$
15c20 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 package->getName()])).{.$message
15c40 73 5b 5d 20 3d 20 27 3c 69 6e 66 6f 3e 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 s[].=.'<info>'.$package->getPret
15c60 74 79 4e 61 6d 65 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 27 20 2e 20 24 6c 69 6e 6b 54 79 70 tyName()...'</info>.'...$linkTyp
15c80 65 73 5b 24 74 79 70 65 5d 5b 31 5d 20 2e 20 27 20 27 20 2e 20 24 6e 65 65 64 6c 65 20 2e 27 20 es[$type][1]...'.'...$needle..'.
15ca0 28 3c 69 6e 66 6f 3e 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 (<info>'...$link->getPrettyConst
15cc0 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 29 27 3b 0a 24 6f 75 74 70 75 74 50 61 63 raint()...'</info>)';.$outputPac
15ce0 6b 61 67 65 73 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 kages[$package->getName()].=.tru
15d00 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6d 65 73 73 61 67 65 73 29 20 7b 0a 73 e;.}.}.}.}.}..if.($messages).{.s
15d20 6f 72 74 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e ort($messages);.$output->writeln
15d40 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 ($messages);.}.else.{.$output->w
15d60 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 54 68 65 72 65 20 69 73 20 6e 6f 20 69 6e 73 74 61 6c riteln('<info>There.is.no.instal
15d80 6c 65 64 20 70 61 63 6b 61 67 65 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 22 27 2e 24 6e 65 65 led.package.depending.on."'.$nee
15da0 64 6c 65 2e 27 22 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a dle.'".</info>');.}.}.}.<?php...
15dc0 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 6d .........namespace.Composer\Comm
15de0 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
15e00 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 79 ole\Input\InputInterface;.use.Sy
15e20 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 6e mfony\Component\Console\Input\In
15e40 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 6e 65 putArgument;.use.Symfony\Compone
15e60 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
15e80 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
15ea0 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 6d 70 6f 73 65 72 ut\OutputInterface;.use.Composer
15ec0 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 72 79 3b \Repository\CompositeRepository;
15ee0 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 6c 61 74 66 6f 72 .use.Composer\Repository\Platfor
15f00 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 52 65 70 6f 73 69 mRepository;.use.Composer\Reposi
15f20 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 6f tory\RepositoryInterface;.use.Co
15f40 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e mposer\Package\CompletePackageIn
15f60 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
15f80 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 46 61 63 74 6f 72 79 iasPackage;.use.Composer\Factory
15fa0 3b 0a 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 ;.....class.SearchCommand.extend
15fc0 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 65 73 3b 0a s.Command.{.protected.$matches;.
15fe0 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 77 4d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b protected.$lowMatches.=.array();
16000 0a 70 72 6f 74 65 63 74 65 64 20 24 74 6f 6b 65 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f .protected.$tokens;.protected.$o
16020 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 6e 6c 79 4e 61 6d 65 3b 0a 0a 70 72 6f utput;.protected.$onlyName;..pro
16040 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
16060 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 61 72 63 68 27 29 0a 2d 3e 73 65 74 44 65 73 his.->setName('search').->setDes
16080 63 72 69 70 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 20 70 61 63 6b 61 67 65 73 27 29 0a cription('Search.for.packages').
160a0 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 20 49 6e 70 75 74 ->setDefinition(array(.new.Input
160c0 4f 70 74 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 2c 20 27 4e 27 2c 20 49 6e 70 75 74 4f 70 Option('only-name',.'N',.InputOp
160e0 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 65 61 72 63 68 20 6f 6e 6c 79 20 69 tion::VALUE_NONE,.'Search.only.i
16100 6e 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b n.name'),.new.InputArgument('tok
16120 65 6e 73 27 2c 20 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 ens',.InputArgument::IS_ARRAY.|.
16140 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 74 6f 6b 65 6e 73 InputArgument::REQUIRED,.'tokens
16160 20 74 6f 20 73 65 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 .to.search.for'),.)).->setHelp(<
16180 3c 3c 45 4f 54 0a 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 <<EOT.The.search.command.searche
161a0 73 20 66 6f 72 20 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 s.for.packages.by.its.name.<info
161c0 3e 70 68 70 20 63 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 >php.composer.phar.search.symfon
161e0 79 20 63 6f 6d 70 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 y.composer</info>..EOT.).;.}..pr
16200 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 75 74 49 6e otected.function.execute(InputIn
16220 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 20 terface.$input,.OutputInterface.
16240 24 6f 75 74 70 75 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 $output).{...$platformRepo.=.new
16260 20 50 6c 61 74 66 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 .PlatformRepository;.if.($compos
16280 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 61 6c 73 65 29 29 20 er.=.$this->getComposer(false)).
162a0 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 3e 67 65 74 52 65 70 {.$localRepo.=.$composer->getRep
162c0 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 6c 52 65 70 6f 73 69 ositoryManager()->getLocalReposi
162e0 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 6e 65 77 20 43 6f 6d tory();.$installedRepo.=.new.Com
16300 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 6f 63 61 6c 52 65 70 positeRepository(array($localRep
16320 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 73 20 3d 20 6e 65 77 o,.$platformRepo));.$repos.=.new
16340 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 65 72 67 65 .CompositeRepository(array_merge
16360 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 63 6f 6d 70 6f 73 65 (array($installedRepo),.$compose
16380 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 65 74 52 65 r->getRepositoryManager()->getRe
163a0 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 24 64 65 66 61 75 6c positories()));.}.else.{.$defaul
163c0 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 65 66 61 75 6c 74 52 tRepos.=.Factory::createDefaultR
163e0 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 29 29 3b 0a 24 6f 75 epositories($this->getIO());.$ou
16400 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 72 2e 6a 73 6f 6e 20 tput->writeln('No.composer.json.
16420 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 63 74 6f 72 79 2c 20 found.in.the.current.directory,.
16440 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 20 69 6d 70 6c 6f 64 showing.packages.from.'...implod
16460 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 6c 74 52 65 70 6f 73 e(',.',.array_keys($defaultRepos
16480 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 61 74 66 6f 72 6d 52 )));.$installedRepo.=.$platformR
164a0 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 74 65 52 65 70 6f 73 epo;.$repos.=.new.CompositeRepos
164c0 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 69 6e 73 74 61 6c 6c itory(array_merge(array($install
164e0 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 0a 7d 0a 0a 24 6f 6e edRepo),.$defaultRepos));.}..$on
16500 6c 79 4e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 6e 6c 79 lyName.=.$input->getOption('only
16520 2d 6e 61 6d 65 27 29 3b 0a 0a 24 66 6c 61 67 73 20 3d 20 24 6f 6e 6c 79 4e 61 6d 65 20 3f 20 52 -name');..$flags.=.$onlyName.?.R
16540 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3a 3a 53 45 41 52 43 48 5f 4e 41 4d 45 20 epositoryInterface::SEARCH_NAME.
16560 3a 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3a 3a 53 45 41 52 43 48 5f 46 55 :.RepositoryInterface::SEARCH_FU
16580 4c 4c 54 45 58 54 3b 0a 24 72 65 73 75 6c 74 73 20 3d 20 24 72 65 70 6f 73 2d 3e 73 65 61 72 63 LLTEXT;.$results.=.$repos->searc
165a0 68 28 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 h(implode('.',.$input->getArgume
165c0 6e 74 28 27 74 6f 6b 65 6e 73 27 29 29 2c 20 24 66 6c 61 67 73 29 3b 0a 0a 66 6f 72 65 61 63 68 nt('tokens')),.$flags);..foreach
165e0 20 28 24 72 65 73 75 6c 74 73 20 61 73 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 6f 75 74 70 75 74 .($results.as.$result).{.$output
16600 2d 3e 77 72 69 74 65 6c 6e 28 24 72 65 73 75 6c 74 5b 27 6e 61 6d 65 27 5d 20 2e 20 28 69 73 73 ->writeln($result['name']...(iss
16620 65 74 28 24 72 65 73 75 6c 74 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 20 3f 20 27 20 27 et($result['description']).?.'.'
16640 2e 20 24 72 65 73 75 6c 74 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 20 3a 20 27 27 29 29 3b ..$result['description'].:.''));
16660 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
16680 65 20 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 e.Composer\Command;..use.Compose
166a0 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 55 74 69 6c 5c 52 65 r\Composer;.use.Composer\Util\Re
166c0 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 moteFilesystem;.use.Symfony\Comp
166e0 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 72 66 61 onent\Console\Input\InputInterfa
16700 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 73 6f 6c ce;.use.Symfony\Component\Consol
16720 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 0a 63 6c e\Output\OutputInterface;.....cl
16740 61 73 73 20 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f ass.SelfUpdateCommand.extends.Co
16760 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 66 69 mmand.{.protected.function.confi
16780 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 6c 66 2d 75 gure().{.$this.->setName('self-u
167a0 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 73 65 6c 66 pdate').->setAliases(array('self
167c0 75 70 64 61 74 65 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 64 61 update')).->setDescription('Upda
167e0 74 65 73 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 tes.composer.phar.to.the.latest.
16800 76 65 72 73 69 6f 6e 2e 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 version.').->setHelp(<<<EOT.The.
16820 3c 69 6e 66 6f 3e 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 <info>self-update</info>.command
16840 20 63 68 65 63 6b 73 20 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 20 66 6f 72 20 6e 65 77 65 .checks.getcomposer.org.for.newe
16860 72 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 61 6e 64 20 69 66 20 66 6f r.versions.of.composer.and.if.fo
16880 75 6e 64 2c 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 20 6c 61 74 65 73 74 2e 0a 0a 3c 69 6e 66 6f und,.installs.the.latest...<info
168a0 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f >php.composer.phar.self-update</
168c0 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 64 20 66 75 6e 63 info>..EOT.).;.}..protected.func
168e0 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 69 6e 70 tion.execute(InputInterface.$inp
16900 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 0a 24 ut,.OutputInterface.$output).{.$
16920 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 protocol.=.extension_loaded('ope
16940 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 72 66 73 20 nssl').?.'https'.:.'http';.$rfs.
16960 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 =.new.RemoteFilesystem($this->ge
16980 74 49 4f 28 29 29 3b 0a 24 6c 61 74 65 73 74 20 3d 20 74 72 69 6d 28 24 72 66 73 2d 3e 67 65 74 tIO());.$latest.=.trim($rfs->get
169a0 43 6f 6e 74 65 6e 74 73 28 27 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 24 70 72 6f Contents('getcomposer.org',.$pro
169c0 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 76 65 72 73 tocol...'://getcomposer.org/vers
169e0 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 ion',.false));..if.(Composer::VE
16a00 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 74 65 73 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 RSION.!==.$latest).{.$output->wr
16a20 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 22 55 70 64 61 74 69 6e 67 20 74 6f 20 76 65 72 73 69 iteln(sprintf("Updating.to.versi
16a40 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 2e 22 2c 20 24 6c 61 74 65 73 74 29 29 3b on.<info>%s</info>.",.$latest));
16a60 0a 0a 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 20 3d 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 ..$remoteFilename.=.$protocol...
16a80 27 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 65 72 2e 70 68 61 '://getcomposer.org/composer.pha
16aa0 72 27 3b 0a 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 20 3d 20 72 65 61 6c 70 61 74 68 28 24 5f r';.$localFilename.=.realpath($_
16ac0 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 29 20 3f 3a 20 24 5f 53 45 52 56 45 52 5b 27 SERVER['argv'][0]).?:.$_SERVER['
16ae0 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 64 69 72 6e 61 argv'][0];.$tempFilename.=.dirna
16b00 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 6e me($localFilename)...'/'...basen
16b20 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 29 2e 27 2d 74 ame($localFilename,.'.phar').'-t
16b40 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 63 6f 6d 70 6f emp.phar';..$rfs->copy('getcompo
16b60 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 24 74 65 6d 70 ser.org',.$remoteFilename,.$temp
16b80 46 69 6c 65 6e 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 74 65 Filename);..if.(!file_exists($te
16ba0 6d 70 46 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 mpFilename)).{.$output->writeln(
16bc0 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 6f 77 6e 6c 6f 61 64 20 6f 66 20 74 68 65 20 6e 65 77 20 '<error>The.download.of.the.new.
16be0 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 20 66 61 69 6c 65 64 20 66 6f 72 20 61 6e 20 75 composer.version.failed.for.an.u
16c00 6e 65 78 70 65 63 74 65 64 20 72 65 61 73 6f 6e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d nexpected.reason');..return.1;.}
16c20 0a 0a 74 72 79 20 7b 0a 63 68 6d 6f 64 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 2c 20 30 37 37 ..try.{.chmod($tempFilename,.077
16c40 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 0a 20 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 7.&.~umask());...$phar.=.new.\Ph
16c60 61 72 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 3b 0a 0a 20 75 6e 73 65 74 28 24 70 68 61 72 ar($tempFilename);...unset($phar
16c80 29 3b 0a 72 65 6e 61 6d 65 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 2c 20 24 6c 6f 63 61 6c 46 );.rename($tempFilename,.$localF
16ca0 69 6c 65 6e 61 6d 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 ilename);.}.catch.(\Exception.$e
16cc0 29 20 7b 0a 40 75 6e 6c 69 6e 6b 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 3b 0a 69 66 20 28 ).{.@unlink($tempFilename);.if.(
16ce0 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 !$e.instanceof.\UnexpectedValueE
16d00 78 63 65 70 74 69 6f 6e 20 26 26 20 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 50 68 61 72 xception.&&.!$e.instanceof.\Phar
16d20 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 24 6f 75 74 70 75 74 Exception).{.throw.$e;.}.$output
16d40 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 6f 77 6e 6c 6f 61 64 20 69 ->writeln('<error>The.download.i
16d60 73 20 63 6f 72 72 75 70 74 65 64 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e s.corrupted.('.$e->getMessage().
16d80 27 29 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 ').</error>');.$output->writeln(
16da0 27 3c 65 72 72 6f 72 3e 50 6c 65 61 73 65 20 72 65 2d 72 75 6e 20 74 68 65 20 73 65 6c 66 2d 75 '<error>Please.re-run.the.self-u
16dc0 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 72 79 20 61 67 61 69 6e 2e 3c 2f 65 72 72 pdate.command.to.try.again.</err
16de0 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 or>');.}.}.else.{.$output->write
16e00 6c 6e 28 22 3c 69 6e 66 6f 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 6c 61 74 65 ln("<info>You.are.using.the.late
16e20 73 74 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 2e 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 7d st.composer.version.</info>");.}
16e40 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.
16e60 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
16e80 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
16ea0 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
16ec0 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 65 20 53 79 sole\Input\InputArgument;.use.Sy
16ee0 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 6e mfony\Component\Console\Input\In
16f00 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 74 putOption;.use.Symfony\Component
16f20 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 3b \Console\Output\OutputInterface;
16f40 0a 75 73 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 .use.Composer\Factory;.use.Compo
16f60 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e ser\Installer;.use.Composer\Json
16f80 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f \JsonFile;.use.Composer\Json\Jso
16fa0 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 69 72 65 nManipulator;......class.Require
16fc0 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 Command.extends.InitCommand.{.pr
16fe0 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 7b 0a 24 otected.function.configure().{.$
17000 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 72 65 71 75 69 72 65 27 29 0a 2d 3e 73 65 74 44 this.->setName('require').->setD
17020 65 73 63 72 69 70 74 69 6f 6e 28 27 41 64 64 73 20 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 escription('Adds.required.packag
17040 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 es.to.your.composer.json.and.ins
17060 74 61 6c 6c 73 20 74 68 65 6d 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 talls.them').->setDefinition(arr
17080 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 73 27 ay(.new.InputArgument('packages'
170a0 2c 20 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 ,.InputArgument::IS_ARRAY.|.Inpu
170c0 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 52 65 71 75 69 72 65 64 20 70 tArgument::OPTIONAL,.'Required.p
170e0 61 63 6b 61 67 65 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 ackage.with.a.version.constraint
17100 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 2f 62 61 72 3d ,.e.g..foo/bar:1.0.0.or.foo/bar=
17120 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 0a 6e 65 77 20 1.0.0.or."foo/bar.1.0.0"'),.new.
17140 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 74 4f 70 InputOption('dev',.null,.InputOp
17160 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 64 64 20 72 65 71 75 69 72 65 6d 65 tion::VALUE_NONE,.'Add.requireme
17180 6e 74 20 74 6f 20 72 65 71 75 69 72 65 2d 64 65 76 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f nt.to.require-dev.'),.new.InputO
171a0 70 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 ption('prefer-source',.null,.Inp
171c0 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 73 20 69 6e utOption::VALUE_NONE,.'Forces.in
171e0 73 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 stallation.from.package.sources.
17200 77 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 when.possible,.including.VCS.inf
17220 6f 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 70 72 ormation.'),.new.InputOption('pr
17240 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 efer-dist',.null,.InputOption::V
17260 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 6e 20 ALUE_NONE,.'Forces.installation.
17280 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 from.package.dist.even.for.dev.v
172a0 65 72 73 69 6f 6e 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 ersions.'),.new.InputOption('no-
172c0 70 72 6f 67 72 65 73 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 progress',.null,.InputOption::VA
172e0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 LUE_NONE,.'Do.not.output.downloa
17300 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 d.progress.'),.new.InputOption('
17320 6e 6f 2d 75 70 64 61 74 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 no-update',.null,.InputOption::V
17340 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 74 68 65 20 61 75 74 6f 6d 61 74 ALUE_NONE,.'Disables.the.automat
17360 69 63 20 75 70 64 61 74 65 20 6f 66 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 ic.update.of.the.dependencies.')
17380 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 72 65 71 75 69 72 ,.)).->setHelp(<<<EOT.The.requir
173a0 65 20 63 6f 6d 6d 61 6e 64 20 61 64 64 73 20 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 e.command.adds.required.packages
173c0 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 74 61 .to.your.composer.json.and.insta
173e0 6c 6c 73 20 74 68 65 6d 0a 0a 49 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 lls.them..If.you.do.not.want.to.
17400 69 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 69 6d 6d install.the.new.dependencies.imm
17420 65 64 69 61 74 65 6c 79 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 2d 2d ediately.you.can.call.it.with.--
17440 6e 6f 2d 75 70 64 61 74 65 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 no-update..EOT.).;.}..protected.
17460 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.
17480 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)
174a0 0a 7b 0a 24 66 69 6c 65 20 3d 20 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 .{.$file.=.Factory::getComposerF
174c0 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 69 6c 65 29 20 ile();..if.(!file_exists($file).
174e0 26 26 20 21 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 22 7b 5c &&.!file_put_contents($file,."{\
17500 6e 7d 5c 6e 22 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 n}\n")).{.$output->writeln('<err
17520 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 or>'.$file.'.could.not.be.create
17540 64 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 69 66 20 28 21 d.</error>');..return.1;.}.if.(!
17560 69 73 5f 72 65 61 64 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 is_readable($file)).{.$output->w
17580 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 riteln('<error>'.$file.'.is.not.
175a0 72 65 61 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 readable.</error>');..return.1;.
175c0 7d 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 }.if.(!is_writable($file)).{.$ou
175e0 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 tput->writeln('<error>'.$file.'.
17600 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 is.not.writable.</error>');..ret
17620 75 72 6e 20 31 3b 0a 7d 0a 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 urn.1;.}..$dialog.=.$this->getHe
17640 6c 70 65 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 6a 73 6f 6e lperSet()->get('dialog');..$json
17660 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 .=.new.JsonFile($file);.$compose
17680 72 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b r.=.$json->read();.$composerBack
176a0 75 70 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 up.=.file_get_contents($json->ge
176c0 74 50 61 74 68 28 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 tPath());..$requirements.=.$this
176e0 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 ->determineRequirements($input,.
17700 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 $output,.$input->getArgument('pa
17720 63 6b 61 67 65 73 27 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 4b 65 79 20 3d 20 24 69 6e 70 75 74 ckages'));..$requireKey.=.$input
17740 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 65 ->getOption('dev').?.'require-de
17760 76 27 20 3a 20 27 72 65 71 75 69 72 65 27 3b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 v'.:.'require';.$baseRequirement
17780 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 72 65 71 75 69 72 65 4b 65 79 s.=.array_key_exists($requireKey
177a0 2c 20 24 63 6f 6d 70 6f 73 65 72 29 20 3f 20 24 63 6f 6d 70 6f 73 65 72 5b 24 72 65 71 75 69 72 ,.$composer).?.$composer[$requir
177c0 65 4b 65 79 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d eKey].:.array();.$requirements.=
177e0 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 71 75 .$this->formatRequirements($requ
17800 69 72 65 6d 65 6e 74 73 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 46 69 irements);..if.(!$this->updateFi
17820 6c 65 43 6c 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e leCleanly($json,.$baseRequiremen
17840 74 73 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 24 72 65 71 75 69 72 65 4b 65 79 29 29 ts,.$requirements,.$requireKey))
17860 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 70 61 .{.foreach.($requirements.as.$pa
17880 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 62 61 73 65 52 65 71 75 69 72 ckage.=>.$version).{.$baseRequir
178a0 65 6d 65 6e 74 73 5b 24 70 61 63 6b 61 67 65 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a ements[$package].=.$version;.}..
178c0 24 63 6f 6d 70 6f 73 65 72 5b 24 72 65 71 75 69 72 65 4b 65 79 5d 20 3d 20 24 62 61 73 65 52 65 $composer[$requireKey].=.$baseRe
178e0 71 75 69 72 65 6d 65 6e 74 73 3b 0a 24 6a 73 6f 6e 2d 3e 77 72 69 74 65 28 24 63 6f 6d 70 6f 73 quirements;.$json->write($compos
17900 65 72 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 69 6e 66 6f 3e er);.}..$output->writeln('<info>
17920 27 2e 24 66 69 6c 65 2e 27 20 68 61 73 20 62 65 65 6e 20 75 70 64 61 74 65 64 3c 2f 69 6e 66 6f '.$file.'.has.been.updated</info
17940 3e 27 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d >');..if.($input->getOption('no-
17960 75 70 64 61 74 65 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 70 update')).{.return.0;.}....$comp
17980 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 29 3b 0a 24 63 6f oser.=.$this->getComposer();.$co
179a0 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 2d 3e 73 65 mposer->getDownloadManager()->se
179c0 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 tOutputProgress(!$input->getOpti
179e0 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d on('no-progress'));.$io.=.$this-
17a00 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 3a 3a >getIO();.$install.=.Installer::
17a20 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 61 6c create($io,.$composer);..$instal
17a40 6c 0a 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 l.->setVerbose($input->getOption
17a60 28 27 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 ('verbose')).->setPreferSource($
17a80 69 6e 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 input->getOption('prefer-source'
17aa0 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 )).->setPreferDist($input->getOp
17ac0 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 tion('prefer-dist')).->setDevMod
17ae0 65 28 74 72 75 65 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 e(true).->setUpdate(true).->setU
17b00 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 61 79 5f 6b 65 79 73 28 24 72 65 71 75 69 pdateWhitelist(array_keys($requi
17b20 72 65 6d 65 6e 74 73 29 29 3b 0a 3b 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e rements));.;..if.(!$install->run
17b40 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 22 2e 27 3c 65 72 ()).{.$output->writeln("\n".'<er
17b60 72 6f 72 3e 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 61 69 6c 65 64 2c 20 72 65 76 65 72 74 69 ror>Installation.failed,.reverti
17b80 6e 67 20 27 2e 24 66 69 6c 65 2e 27 20 74 6f 20 69 74 73 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6e ng.'.$file.'.to.its.original.con
17ba0 74 65 6e 74 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e tent.</error>');.file_put_conten
17bc0 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 63 6f 6d 70 6f 73 65 72 42 61 ts($json->getPath(),.$composerBa
17be0 63 6b 75 70 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d ckup);..return.1;.}..return.0;.}
17c00 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 43 6c 65 ..private.function.updateFileCle
17c20 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 79 20 24 anly($json,.array.$base,.array.$
17c40 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 20 3d 20 new,.$requireKey).{.$contents.=.
17c60 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 61 74 68 file_get_contents($json->getPath
17c80 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 4d 61 6e ());..$manipulator.=.new.JsonMan
17ca0 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 20 28 24 ipulator($contents);..foreach.($
17cc0 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 74 29 20 new.as.$package.=>.$constraint).
17ce0 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 24 72 65 {.if.(!$manipulator->addLink($re
17d00 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 6e 74 29 quireKey,.$package,.$constraint)
17d20 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 75 74 5f ).{.return.false;.}.}..file_put_
17d40 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 61 6e 69 contents($json->getPath(),.$mani
17d60 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 75 72 6e pulator->getContents());..return
17d80 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 69 6e 74 .true;.}..protected.function.int
17da0 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 4f 75 74 eract(InputInterface.$input,.Out
17dc0 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 6e 3b 0a putInterface.$output).{.return;.
17de0 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
17e00 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 6f omposer\Command;..use.Symfony\Co
17e20 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 72 mponent\Console\Input\InputInter
17e40 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 73 face;.use.Symfony\Component\Cons
17e60 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 43 6f 6d 70 6f ole\Input\InputOption;.use.Compo
17e80 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
17ea0 72 79 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 ry;.use.Symfony\Component\Consol
17ec0 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
17ee0 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 74 6f mposer\Autoload\AutoloadGenerato
17f00 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 r;.....class.DumpAutoloadCommand
17f20 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 74 65 64 20 66 75 6e .extends.Command.{.protected.fun
17f40 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 73 65 74 4e ction.configure().{.$this.->setN
17f60 61 6d 65 28 27 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 ame('dump-autoload').->setAliase
17f80 73 28 61 72 72 61 79 28 27 64 75 6d 70 61 75 74 6f 6c 6f 61 64 27 29 29 0a 2d 3e 73 65 74 44 65 s(array('dumpautoload')).->setDe
17fa0 73 63 72 69 70 74 69 6f 6e 28 27 44 75 6d 70 73 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 27 scription('Dumps.the.autoloader'
17fc0 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 20 49 6e 70 ).->setDefinition(array(.new.Inp
17fe0 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f utOption('optimize',.'o',.InputO
18000 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 73 20 50 53 ption::VALUE_NONE,.'Optimizes.PS
18020 52 30 20 70 61 63 6b 61 67 65 73 20 74 6f 20 62 65 20 6c 6f 61 64 65 64 20 77 69 74 68 20 63 6c R0.packages.to.be.loaded.with.cl
18040 61 73 73 6d 61 70 73 20 74 6f 6f 2c 20 67 6f 6f 64 20 66 6f 72 20 70 72 6f 64 75 63 74 69 6f 6e assmaps.too,.good.for.production
18060 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 3c 69 6e 66 6f 3e 70 .'),.)).->setHelp(<<<EOT.<info>p
18080 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 3c 2f hp.composer.phar.dump-autoload</
180a0 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 66 75 6e 63 74 info>.EOT.).;.}..protected.funct
180c0 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 69 6e 70 75 ion.execute(InputInterface.$inpu
180e0 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 6f t,.OutputInterface.$output).{.$o
18100 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 utput->writeln('<info>Generating
18120 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 0a 24 63 6f 6d 70 .autoload.files</info>');..$comp
18140 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 29 3b 0a 24 69 6e oser.=.$this->getComposer();.$in
18160 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 72 2d 3e 67 stallationManager.=.$composer->g
18180 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 24 6c 6f 63 61 6c 52 etInstallationManager();.$localR
181a0 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 79 4d 61 epo.=.$composer->getRepositoryMa
181c0 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 3b 0a 24 nager()->getLocalRepository();.$
181e0 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 package.=.$composer->getPackage(
18200 29 3b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 );.$config.=.$composer->getConfi
18220 67 28 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 g();..$composer->getAutoloadGene
18240 72 61 74 6f 72 28 29 2d 3e 64 75 6d 70 28 24 63 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 rator()->dump($config,.$localRep
18260 6f 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 o,.$package,.$installationManage
18280 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e r,.'composer',.$input->getOption
182a0 28 27 6f 70 74 69 6d 69 7a 65 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ('optimize'));.}.}.<?php........
182c0 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 5c 48 ....namespace.Composer\Command\H
182e0 65 6c 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 elper;..use.Symfony\Component\Co
18300 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 61 73 20 42 61 73 nsole\Helper\DialogHelper.as.Bas
18320 65 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 6c 70 eDialogHelper;..class.DialogHelp
18340 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 44 69 61 6c 6f 67 48 65 6c 70 65 72 0a 7b 0a 0a 0a er.extends.BaseDialogHelper.{...
18360 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 51 75 65 73 .........public.function.getQues
18380 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 3d 20 6e 75 6c 6c 2c tion($question,.$default.=.null,
183a0 20 24 73 65 70 20 3d 20 27 3a 27 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 20 21 .$sep.=.':').{.return.$default.!
183c0 3d 3d 20 6e 75 6c 6c 20 3f 0a 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 ==.null.?.sprintf('<info>%s</inf
183e0 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 25 73 20 27 2c 20 o>.[<comment>%s</comment>]%s.',.
18400 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 73 65 70 29 20 3a 0a 73 70 72 $question,.$default,.$sep).:.spr
18420 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 25 73 20 27 2c 20 24 71 75 65 73 intf('<info>%s</info>%s.',.$ques
18440 74 69 6f 6e 2c 20 24 73 65 70 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tion,.$sep);.}.}.<?php..........
18460 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 0a 75 ..namespace.Composer\Command;..u
18480 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
184a0 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
184c0 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 4f 70 74 69 omponent\Console\Input\InputOpti
184e0 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 6e 73 6f 6c on;.use.Symfony\Component\Consol
18500 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
18520 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 3b mposer\Downloader\VcsDownloader;
18540 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 ......class.StatusCommand.extend
18560 73 20 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 s.Command.{.protected.function.c
18580 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 73 74 onfigure().{.$this.->setName('st
185a0 61 74 75 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 61 20 atus').->setDescription('Show.a.
185c0 6c 69 73 74 20 6f 66 20 6c 6f 63 61 6c 6c 79 20 6d 6f 64 69 66 69 65 64 20 70 61 63 6b 61 67 65 list.of.locally.modified.package
185e0 73 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 20 49 s').->setDefinition(array(.new.I
18600 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 27 nputOption('verbose',.'v|vv|vvv'
18620 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 68 6f 77 ,.InputOption::VALUE_NONE,.'Show
18640 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 20 66 6f 72 20 65 61 63 68 20 64 69 72 65 63 74 6f .modified.files.for.each.directo
18660 72 79 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 63 68 61 6e 67 65 73 2e 27 29 2c 0a 29 29 0a ry.that.contains.changes.'),.)).
18680 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d ->setHelp(<<<EOT.The.status.comm
186a0 61 6e 64 20 64 69 73 70 6c 61 79 73 20 61 20 6c 69 73 74 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 and.displays.a.list.of.dependenc
186c0 69 65 73 20 74 68 61 74 20 68 61 76 65 0a 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6c 6f 63 61 ies.that.have.been.modified.loca
186e0 6c 6c 79 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 75 6e 63 74 lly...EOT.).;.}..protected.funct
18700 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 69 6e 70 75 ion.execute(InputInterface.$inpu
18720 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 0a 20 t,.OutputInterface.$output).{...
18740 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 29 $composer.=.$this->getComposer()
18760 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 ;.$installedRepo.=.$composer->ge
18780 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 6c 52 65 tRepositoryManager()->getLocalRe
187a0 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 24 64 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 pository();..$dm.=.$composer->ge
187c0 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 20 3d 20 24 63 6f 6d 70 6f tDownloadManager();.$im.=.$compo
187e0 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 3b 0a 0a ser->getInstallationManager();..
18800 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 $errors.=.array();....foreach.($
18820 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 20 61 73 20 installedRepo->getPackages().as.
18840 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 64 6d 2d 3e 67 $package).{.$downloader.=.$dm->g
18860 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 65 28 etDownloaderForInstalledPackage(
18880 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 64 6f 77 6e 6c 6f 61 64 65 72 20 69 6e 73 74 $package);..if.($downloader.inst
188a0 61 6e 63 65 6f 66 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 61 72 67 65 74 44 anceof.VcsDownloader).{.$targetD
188c0 69 72 20 3d 20 24 69 6d 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 ir.=.$im->getInstallPath($packag
188e0 65 29 3b 0a 0a 69 66 20 28 24 63 68 61 6e 67 65 73 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d e);..if.($changes.=.$downloader-
18900 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 74 61 72 67 65 74 44 69 72 29 29 20 7b 0a >getLocalChanges($targetDir)).{.
18920 24 65 72 72 6f 72 73 5b 24 74 61 72 67 65 74 44 69 72 5d 20 3d 20 24 63 68 61 6e 67 65 73 3b 0a $errors[$targetDir].=.$changes;.
18940 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 }.}.}....if.(!$errors).{.$output
18960 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 4e 6f 20 6c 6f 63 61 6c 20 63 68 61 6e 67 65 ->writeln('<info>No.local.change
18980 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 s</info>');.}.else.{.$output->wr
189a0 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 59 6f 75 20 68 61 76 65 20 63 68 61 6e 67 65 73 20 69 iteln('<error>You.have.changes.i
189c0 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 3a 3c 2f 65 n.the.following.dependencies:</e
189e0 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 73 20 rror>');.}..foreach.($errors.as.
18a00 24 70 61 74 68 20 3d 3e 20 24 63 68 61 6e 67 65 73 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d $path.=>.$changes).{.if.($input-
18a20 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 69 6e 64 65 6e 74 >getOption('verbose')).{.$indent
18a40 65 64 43 68 61 6e 67 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f edChanges.=.implode("\n",.array_
18a60 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 map(function.($line).{.return.'.
18a80 20 20 20 27 20 2e 20 24 6c 69 6e 65 3b 0a 7d 2c 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 ...'...$line;.},.explode("\n",.$
18aa0 63 68 61 6e 67 65 73 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 changes)));.$output->writeln('<i
18ac0 6e 66 6f 3e 27 2e 24 70 61 74 68 2e 27 3c 2f 69 6e 66 6f 3e 3a 27 29 3b 0a 24 6f 75 74 70 75 74 nfo>'.$path.'</info>:');.$output
18ae0 2d 3e 77 72 69 74 65 6c 6e 28 24 69 6e 64 65 6e 74 65 64 43 68 61 6e 67 65 73 29 3b 0a 7d 20 65 ->writeln($indentedChanges);.}.e
18b00 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 70 61 74 68 29 3b 0a 7d lse.{.$output->writeln($path);.}
18b20 0a 7d 0a 0a 69 66 20 28 24 65 72 72 6f 72 73 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f .}..if.($errors.&&.!$input->getO
18b40 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 ption('verbose')).{.$output->wri
18b60 74 65 6c 6e 28 27 55 73 65 20 2d 2d 76 65 72 62 6f 73 65 20 28 2d 76 29 20 74 6f 20 73 65 65 20 teln('Use.--verbose.(-v).to.see.
18b80 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 modified.files');.}..return.$err
18ba0 6f 72 73 20 3f 20 31 20 3a 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ors.?.1.:.0;.}.}.<?php..........
18bc0 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 0a 75 ..namespace.Composer\Command;..u
18be0 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 65 20 43 se.Composer\Json\JsonFile;.use.C
18c00 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 5c 50 61 omposer\Factory;.use.Composer\Pa
18c20 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\
18c40 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 72 79 3b 0a Repository\CompositeRepository;.
18c60 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 6c 61 74 66 6f 72 6d use.Composer\Repository\Platform
18c80 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 50 61 63 6b 61 67 65 Repository;.use.Composer\Package
18ca0 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 53 79 6d 66 \Version\VersionParser;.use.Symf
18cc0 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 75 ony\Component\Console\Input\Inpu
18ce0 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
18d00 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 65 t\Console\Input\InputOption;.use
18d20 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
18d40 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 66 6f 6e 79 5c 43 t\OutputInterface;.use.Symfony\C
18d60 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 75 73 65 20 53 79 omponent\Process\Process;.use.Sy
18d80 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 65 63 75 74 61 62 mfony\Component\Process\Executab
18da0 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 6f 6d 6d 61 6e 64 leFinder;......class.InitCommand
18dc0 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 24 67 69 74 43 .extends.Command.{.private.$gitC
18de0 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 62 6c 69 63 20 66 onfig;.private.$repos;..public.f
18e00 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 24 61 75 74 68 6f unction.parseAuthorString($autho
18e20 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 3c 6e 61 6d 65 3e r).{.if.(preg_match('/^(?P<name>
18e40 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 6c 3e 2e 2b 3f 29 [-.\.,\w\'...]+).<(?P<email>.+?)
18e60 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 0a 69 66 20 28 21 >$/u',.$author,.$match)).{.if.(!
18e80 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 72 27 29 20 7c 7c function_exists('filter_var').||
18ea0 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 4f 4e 2c 20 27 35 .version_compare(PHP_VERSION,.'5
18ec0 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 69 6c 27 5d 20 3d .3.3',.'<').||.$match['email'].=
18ee0 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 6c 27 5d 2c 20 46 ==.filter_var($match['email'],.F
18f00 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 65 74 75 72 6e 20 ILTER_VALIDATE_EMAIL)).{.return.
18f20 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 63 68 5b 27 6e 61 array(.'name'.=>.trim($match['na
18f40 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 65 6d 61 69 6c 27 me']),.'email'.=>.$match['email'
18f60 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 69 64 41 72 67 75 ].);.}.}..throw.new.\InvalidArgu
18f80 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 74 68 6f 72 20 73 mentException(.'Invalid.author.s
18fa0 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 6d 61 74 3a 20 27 tring...Must.be.in.the.format:.'
18fc0 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 65 2e 63 6f 6d 3e ..'John.Smith.<john@example.com>
18fe0 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 20 63 6f 6e 66 69 '.);.}..protected.function.confi
19000 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 69 6e 69 74 27 29 gure().{.$this.->setName('init')
19020 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 20 61 20 62 61 73 .->setDescription('Creates.a.bas
19040 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 75 72 72 65 6e 74 ic.composer.json.file.in.current
19060 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 61 72 .directory.').->setDefinition(ar
19080 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 27 2c 20 6e 75 6c ray(.new.InputOption('name',.nul
190a0 6c 2c 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 20 l,.InputOption::VALUE_REQUIRED,.
190c0 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 70 75 'Name.of.the.package'),.new.Inpu
190e0 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 6e 70 tOption('description',.null,.Inp
19100 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 44 65 73 63 72 utOption::VALUE_REQUIRED,.'Descr
19120 69 70 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 iption.of.package'),.new.InputOp
19140 74 69 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 tion('author',.null,.InputOption
19160 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 41 75 74 68 6f 72 20 6e 61 6d 65 20 6f ::VALUE_REQUIRED,.'Author.name.o
19180 66 20 70 61 63 6b 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 f.package'),...new.InputOption('
191a0 68 6f 6d 65 70 61 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 homepage',.null,.InputOption::VA
191c0 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 48 6f 6d 65 70 61 67 65 20 6f 66 20 70 61 63 6b 61 LUE_REQUIRED,.'Homepage.of.packa
191e0 67 65 27 29 2c 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 27 2c ge'),.new.InputOption('require',
19200 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 49 53 5f 41 52 52 .null,.InputOption::VALUE_IS_ARR
19220 41 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 AY.|.InputOption::VALUE_REQUIRED
19240 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 77 69 74 68 20 61 20 76 65 72 ,.'Package.to.require.with.a.ver
19260 73 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 sion.constraint,.e.g..foo/bar:1.
19280 30 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 0.0.or.foo/bar=1.0.0.or."foo/bar
192a0 20 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 72 65 71 75 .1.0.0"'),.new.InputOption('requ
192c0 69 72 65 2d 64 65 76 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 ire-dev',.null,.InputOption::VAL
192e0 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 UE_IS_ARRAY.|.InputOption::VALUE
19300 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 66 _REQUIRED,.'Package.to.require.f
19320 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f or.development.with.a.version.co
19340 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 2e 30 20 6f 72 20 nstraint,.e.g..foo/bar:1.0.0.or.
19360 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 31 2e 30 2e 30 22 foo/bar=1.0.0.or."foo/bar.1.0.0"
19380 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c '),.new.InputOption('stability',
193a0 20 27 73 27 2c 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 .'s',.InputOption::VALUE_REQUIRE
193c0 44 2c 20 27 4d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 28 65 6d 70 74 79 20 6f 72 20 D,.'Minimum.stability.(empty.or.
193e0 6f 6e 65 20 6f 66 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 one.of:.'.implode(',.',.array_ke
19400 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 65 73 29 29 2e 27 ys(BasePackage::$stabilities)).'
19420 29 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 2c 20 )'),.new.InputOption('license',.
19440 27 6c 27 2c 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 'l',.InputOption::VALUE_REQUIRED
19460 2c 20 27 4c 69 63 65 6e 73 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 29 29 0a 2d 3e 73 65 ,.'License.of.package'),.)).->se
19480 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 66 tHelp(<<<EOT.The.<info>init</inf
194a0 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 6f o>.command.creates.a.basic.compo
194c0 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 72 ser.json.file.in.the.current.dir
194e0 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 72 ectory...<info>php.composer.phar
19500 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 74 .init</info>..EOT.).;.}..protect
19520 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 61 ed.function.execute(InputInterfa
19540 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 70 ce.$input,.OutputInterface.$outp
19560 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 72 ut).{.$dialog.=.$this->getHelper
19580 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 73 Set()->get('dialog');..$whitelis
195a0 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 2c t.=.array('name',.'description',
195c0 20 27 61 75 74 68 6f 72 27 2c 20 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 72 65 71 75 69 72 65 27 .'author',.'homepage',.'require'
195e0 2c 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 6c ,.'require-dev',.'stability',.'l
19600 69 63 65 6e 73 65 27 29 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 icense');..$options.=.array_filt
19620 65 72 28 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 69 6e 70 75 74 2d 3e 67 er(array_intersect_key($input->g
19640 65 74 4f 70 74 69 6f 6e 73 28 29 2c 20 61 72 72 61 79 5f 66 6c 69 70 28 24 77 68 69 74 65 6c 69 etOptions(),.array_flip($whiteli
19660 73 74 29 29 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 st)));..if.(isset($options['auth
19680 6f 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 73 27 5d 20 3d 20 24 or'])).{.$options['authors'].=.$
196a0 74 68 69 73 2d 3e 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 this->formatAuthors($options['au
196c0 74 68 6f 72 27 5d 29 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 thor']);.unset($options['author'
196e0 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 ]);.}..if.(isset($options['stabi
19700 6c 69 74 79 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 lity'])).{.$options['minimum-sta
19720 62 69 6c 69 74 79 27 5d 20 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d bility'].=.$options['stability']
19740 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 29 3b 0a ;.unset($options['stability']);.
19760 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 69 73 73 65 74 28 24 }..$options['require'].=.isset($
19780 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 66 6f 72 options['require']).?.$this->for
197a0 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 matRequirements($options['requir
197c0 65 27 5d 29 20 3a 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 69 66 20 28 61 72 72 61 79 28 e']).:.new.\stdClass;.if.(array(
197e0 29 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 7b 0a 24 6f 70 ).===.$options['require']).{.$op
19800 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 tions['require'].=.new.\stdClass
19820 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 ;.}..if.(isset($options['require
19840 2d 64 65 76 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 -dev'])).{.$options['require-dev
19860 27 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 '].=.$this->formatRequirements($
19880 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 20 3b 0a 69 66 20 28 61 72 options['require-dev']).;.if.(ar
198a0 72 61 79 28 29 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 ray().===.$options['require-dev'
198c0 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 20 3d 20 6e ]).{.$options['require-dev'].=.n
198e0 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a ew.\stdClass;.}.}..$file.=.new.J
19900 73 6f 6e 46 69 6c 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 0a 24 6a 73 6f 6e sonFile('composer.json');..$json
19920 20 3d 20 24 66 69 6c 65 2d 3e 65 6e 63 6f 64 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 .=.$file->encode($options);..if.
19940 28 24 69 6e 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 6f 75 74 ($input->isInteractive()).{.$out
19960 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 6a 73 6f 6e 2c 0a 27 put->writeln(array(.'',.$json,.'
19980 27 0a 29 29 3b 0a 69 66 20 28 21 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 '.));.if.(!$dialog->askConfirmat
199a0 69 6f 6e 28 24 6f 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 ion($output,.$dialog->getQuestio
199c0 6e 28 27 44 6f 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 67 65 6e 65 72 61 74 69 6f 6e 27 2c 20 27 n('Do.you.confirm.generation',.'
199e0 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 yes',.'?'),.true)).{.$output->wr
19a00 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 43 6f 6d 6d 61 6e 64 20 61 62 6f 72 74 65 64 3c 2f 65 iteln('<error>Command.aborted</e
19a20 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 2d 3e rror>');..return.1;.}.}..$file->
19a40 77 72 69 74 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 73 write($options);..if.($input->is
19a60 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 20 69 73 5f 64 69 72 28 27 2e 67 69 74 27 29 29 Interactive().&&.is_dir('.git'))
19a80 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 67 69 74 69 .{.$ignoreFile.=.realpath('.giti
19aa0 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 6f 72 65 46 gnore');..if.(false.===.$ignoreF
19ac0 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 68 28 27 2e ile).{.$ignoreFile.=.realpath('.
19ae0 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 24 74 68 69 ')...'/.gitignore';.}..if.(!$thi
19b00 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 6c 65 29 29 s->hasVendorIgnore($ignoreFile))
19b20 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 6b 65 20 74 .{.$question.=.'Would.you.like.t
19b40 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 74 6f 72 79 he.<info>vendor</info>.directory
19b60 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 6f 72 65 3c .added.to.your.<info>.gitignore<
19b80 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 74 3e 5d 3f /info>.[<comment>yes</comment>]?
19ba0 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 74 69 6f 6e ';..if.($dialog->askConfirmation
19bc0 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 7b 0a 24 74 ($output,.$question,.true)).{.$t
19be0 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 46 69 6c 65 his->addVendorIgnore($ignoreFile
19c00 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 6f 6e 20 69 );.}.}.}.}..protected.function.i
19c20 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 4f nteract(InputInterface.$input,.O
19c40 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 69 74 20 3d utputInterface.$output).{.$git.=
19c60 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 61 6c 6f 67 .$this->getGitConfig();..$dialog
19c80 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 64 .=.$this->getHelperSet()->get('d
19ca0 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 3e 67 65 74 ialog');.$formatter.=.$this->get
19cc0 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 29 3b 0a 24 HelperSet()->get('formatter');.$
19ce0 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 66 6f 72 6d output->writeln(array(.'',.$form
19d00 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 74 6f 20 74 atter->formatBlock('Welcome.to.t
19d20 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 27 2c 20 27 he.Composer.config.generator',.'
19d40 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 0a 29 29 3b bg=blue;fg=white',.true),.''.));
19d60 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 27 27 2c 0a ....$output->writeln(array(.'',.
19d80 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 20 74 68 72 'This.command.will.guide.you.thr
19da0 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 6a 73 6f 6e ough.creating.your.composer.json
19dc0 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 65 61 6c 70 .config.',.'',.));..$cwd.=.realp
19de0 61 74 68 28 22 2e 22 29 3b 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e ath(".");..if.(!$name.=.$input->
19e00 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 62 61 73 getOption('name')).{.$name.=.bas
19e20 65 6e 61 6d 65 28 24 63 77 64 29 3b 0a 24 6e 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 ename($cwd);.$name.=.preg_replac
19e40 65 28 27 7b 28 3f 3a 28 5b 61 2d 7a 5d 29 28 5b 41 2d 5a 5d 29 7c 28 5b 41 2d 5a 5d 29 28 5b 41 e('{(?:([a-z])([A-Z])|([A-Z])([A
19e60 2d 5a 5d 5b 61 2d 7a 5d 29 29 7d 27 2c 20 27 5c 5c 31 5c 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 -Z][a-z]))}',.'\\1\\3-\\2\\4',.$
19e80 6e 61 6d 65 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 name);.$name.=.strtolower($name)
19ea0 3b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 29 ;.if.(isset($git['github.user'])
19ec0 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 20 ).{.$name.=.$git['github.user'].
19ee0 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 ..'/'...$name;.}.elseif.(!empty(
19f00 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d $_SERVER['USERNAME'])).{.$name.=
19f20 20 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e .$_SERVER['USERNAME']...'/'...$n
19f40 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 ame;.}.elseif.(get_current_user(
19f60 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 20 )).{.$name.=.get_current_user().
19f80 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 20 ..'/'...$name;.}.else.{...$name.
19fa0 3d 20 24 6e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 =.$name...'/'...$name;.}.}.else.
19fc0 7b 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 2e 2d 5d {.if.(!preg_match('{^[a-z0-9_.-]
19fe0 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 24 7d 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 +/[a-z0-9_.-]+$}',.$name)).{.thr
1a000 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 6e ow.new.\InvalidArgumentException
1a020 28 0a 27 54 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 6e 61 6d 65 2e 27 20 69 73 (.'The.package.name.'.$name.'.is
1a040 20 69 6e 76 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 77 65 72 63 61 73 65 .invalid,.it.should.be.lowercase
1a060 20 61 6e 64 20 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 .and.have.a.vendor.name,.a.forwa
1a080 72 64 20 73 6c 61 73 68 2c 20 61 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 rd.slash,.and.a.package.name,.ma
1a0a0 74 63 68 69 6e 67 3a 20 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d tching:.[a-z0-9_.-]+/[a-z0-9_.-]
1a0c0 2b 27 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 +'.);.}.}..$name.=.$dialog->askA
1a0e0 6e 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 ndValidate(.$output,.$dialog->ge
1a100 74 51 75 65 73 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 3c 76 65 6e 64 6f 72 tQuestion('Package.name.(<vendor
1a120 3e 2f 3c 6e 61 6d 65 3e 29 27 2c 20 24 6e 61 6d 65 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 >/<name>)',.$name),.function.($v
1a140 61 6c 75 65 29 20 75 73 65 20 28 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d alue).use.($name).{.if.(null.===
1a160 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 69 66 20 28 .$value).{.return.$name;.}..if.(
1a180 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a !preg_match('{^[a-z0-9_.-]+/[a-z
1a1a0 30 2d 39 5f 2e 2d 5d 2b 24 7d 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 0-9_.-]+$}',.$value)).{.throw.ne
1a1c0 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 0a 27 54 68 w.\InvalidArgumentException(.'Th
1a1e0 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 76 61 6c 75 65 2e 27 20 69 73 20 69 6e 76 e.package.name.'.$value.'.is.inv
1a200 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 77 65 72 63 61 73 65 20 61 6e 64 alid,.it.should.be.lowercase.and
1a220 20 68 61 76 65 20 61 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 .have.a.vendor.name,.a.forward.s
1a240 6c 61 73 68 2c 20 61 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 lash,.and.a.package.name,.matchi
1a260 6e 67 3a 20 5b 61 2d 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 ng:.[a-z0-9_.-]+/[a-z0-9_.-]+'.)
1a280 3b 0a 7d 0a 0a 72 65 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 ;.}..return.$value;.}.);.$input-
1a2a0 3e 73 65 74 4f 70 74 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 >setOption('name',.$name);..$des
1a2c0 63 72 69 70 74 69 6f 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 cription.=.$input->getOption('de
1a2e0 73 63 72 69 70 74 69 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 scription').?:.false;.$descripti
1a300 6f 6e 20 3d 20 24 64 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 on.=.$dialog->ask(.$output,.$dia
1a320 6c 6f 67 2d 3e 67 65 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 log->getQuestion('Description',.
1a340 24 64 65 73 63 72 69 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 $description).);.$input->setOpti
1a360 6f 6e 28 27 64 65 73 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 on('description',.$description);
1a380 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 68 6f 72 20 3d 20 24 69 6e 70 75 74 2d ..if.(null.===.$author.=.$input-
1a3a0 3e 67 65 74 4f 70 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 >getOption('author')).{.if.(isse
1a3c0 74 28 24 67 69 74 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 t($git['user.name']).&&.isset($g
1a3e0 69 74 5b 27 75 73 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 it['user.email'])).{.$author.=.s
1a400 70 72 69 6e 74 66 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 printf('%s.<%s>',.$git['user.nam
1a420 65 27 5d 2c 20 24 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 e'],.$git['user.email']);.}.}..$
1a440 73 65 6c 66 20 3d 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 self.=.$this;.$author.=.$dialog-
1a460 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 69 61 6c 6f >askAndValidate(.$output,.$dialo
1a480 67 2d 3e 67 65 74 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 g->getQuestion('Author',.$author
1a4a0 29 2c 0a 66 75 6e 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 ),.function.($value).use.($self,
1a4c0 20 24 61 75 74 68 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 .$author).{.if.(null.===.$value)
1a4e0 20 7b 0a 72 65 74 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 .{.return.$author;.}..$author.=.
1a500 24 73 65 6c 66 2d 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 $self->parseAuthorString($value)
1a520 3b 0a 0a 72 65 74 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 ;..return.sprintf('%s.<%s>',.$au
1a540 74 68 6f 72 5b 27 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 thor['name'],.$author['email']);
1a560 0a 7d 0a 29 3b 0a 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 .}.);.$input->setOption('author'
1a580 2c 20 24 61 75 74 68 6f 72 29 3b 0a 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d ,.$author);..$minimumStability.=
1a5a0 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 20 .$input->getOption('stability').
1a5c0 3f 3a 20 27 27 3b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 64 69 61 6c ?:.'';.$minimumStability.=.$dial
1a5e0 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 69 og->askAndValidate(.$output,.$di
1a600 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 4d 69 6e 69 6d 75 6d 20 53 74 61 62 69 alog->getQuestion('Minimum.Stabi
1a620 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 2c 0a 66 75 6e 63 74 lity',.$minimumStability),.funct
1a640 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 6d 69 6e 69 6d 75 ion.($value).use.($self,.$minimu
1a660 6d 53 74 61 62 69 6c 69 74 79 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 mStability).{.if.(null.===.$valu
1a680 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d e).{.return.$minimumStability;.}
1a6a0 0a 0a 69 66 20 28 21 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 ..if.(!isset(BasePackage::$stabi
1a6c0 6c 69 74 69 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e lities[$value])).{.throw.new.\In
1a6e0 76 61 6c 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 validArgumentException(.'Invalid
1a700 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 22 27 2e 24 76 61 6c 75 65 2e 27 22 2e .minimum.stability."'.$value.'".
1a720 20 4d 75 73 74 20 62 65 20 65 6d 70 74 79 20 6f 72 20 6f 6e 65 20 6f 66 3a 20 27 2e 0a 69 6d 70 .Must.be.empty.or.one.of:.'..imp
1a740 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 lode(',.',.array_keys(BasePackag
1a760 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 e::$stabilities)).);.}..return.$
1a780 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 69 6f 6e 28 27 73 value;.}.);.$input->setOption('s
1a7a0 74 61 62 69 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 3b 0a 0a tability',.$minimumStability);..
1a7c0 24 6c 69 63 65 6e 73 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 $license.=.$input->getOption('li
1a7e0 63 65 6e 73 65 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 64 69 cense').?:.false;.$license.=.$di
1a800 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 74 alog->ask(.$output,.$dialog->get
1a820 51 75 65 73 74 69 6f 6e 28 27 4c 69 63 65 6e 73 65 27 2c 20 24 6c 69 63 65 6e 73 65 29 0a 29 3b Question('License',.$license).);
1a840 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 2c 20 24 6c .$input->setOption('license',.$l
1a860 69 63 65 6e 73 65 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 icense);..$output->writeln(array
1a880 28 0a 27 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 (.'',.'Define.your.dependencies.
1a8a0 27 2c 0a 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 ',.''.));..$requirements.=.array
1a8c0 28 29 3b 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 ();.if.($dialog->askConfirmation
1a8e0 28 24 6f 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 ($output,.$dialog->getQuestion('
1a900 57 6f 75 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 Would.you.like.to.define.your.de
1a920 70 65 6e 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 pendencies.(require).interactive
1a940 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 72 65 71 75 ly',.'yes',.'?'),.true)).{.$requ
1a960 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 52 65 71 75 69 irements.=.$this->determineRequi
1a980 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 6e 70 75 74 2d rements($input,.$output,.$input-
1a9a0 3e 67 65 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 >getOption('require'));.}.$input
1a9c0 2d 3e 73 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 ->setOption('require',.$requirem
1a9e0 65 6e 74 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 ents);.$devRequirements.=.array(
1aa00 29 3b 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 );.if.($dialog->askConfirmation(
1aa20 24 6f 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 $output,.$dialog->getQuestion('W
1aa40 6f 75 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 76 ould.you.like.to.define.your.dev
1aa60 20 64 65 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 .dependencies.(require-dev).inte
1aa80 72 61 63 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 ractively',.'yes',.'?'),.true)).
1aaa0 7b 0a 24 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 {.$devRequirements.=.$this->dete
1aac0 72 6d 69 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 rmineRequirements($input,.$outpu
1aae0 74 2c 20 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 t,.$input->getOption('require-de
1ab00 76 27 29 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 v'));.}.$input->setOption('requi
1ab20 72 65 2d 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 re-dev',.$devRequirements);.}..p
1ab40 72 6f 74 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 rotected.function.findPackages($
1ab60 6e 61 6d 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 name).{.$packages.=.array();....
1ab80 69 66 20 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 if.(!$this->repos).{.$this->repo
1aba0 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
1abc0 79 5f 6d 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 y_merge(.array(new.PlatformRepos
1abe0 69 74 6f 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 itory),.Factory::createDefaultRe
1ac00 70 6f 73 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 positories($this->getIO()).));.}
1ac20 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 2d 3e 73 65 61 72 63 68 28 24 6e ..return.$this->repos->search($n
1ac40 61 6d 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 64 65 74 65 ame);.}..protected.function.dete
1ac60 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 65 rmineRequirements(InputInterface
1ac80 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 74 .$input,.OutputInterface.$output
1aca0 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 67 ,.$requires.=.array()).{.$dialog
1acc0 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 64 .=.$this->getHelperSet()->get('d
1ace0 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 51 ialog');.$prompt.=.$dialog->getQ
1ad00 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 20 uestion('Search.for.a.package',.
1ad20 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 24 false,.':');..if.($requires).{.$
1ad40 72 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 requires.=.$this->normalizeRequi
1ad60 72 65 6d 65 6e 74 73 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 rements($requires);.$result.=.ar
1ad80 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 6b ray();..foreach.($requires.as.$k
1ada0 65 79 20 3d 3e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 ey.=>.$requirement).{.if.(!isset
1adc0 28 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 26 26 20 24 69 6e ($requirement['version']).&&.$in
1ade0 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 71 75 65 73 74 69 6f put->isInteractive()).{.$questio
1ae00 6e 20 3d 20 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 n.=.$dialog->getQuestion('Please
1ae20 20 70 72 6f 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 .provide.a.version.constraint.fo
1ae40 72 20 74 68 65 20 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 2e 27 20 72 r.the.'.$requirement['name'].'.r
1ae60 65 71 75 69 72 65 6d 65 6e 74 27 29 3b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 equirement');.if.($constraint.=.
1ae80 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 $dialog->ask($output,.$question)
1aea0 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 63 ).{.$requirement['version'].=.$c
1aec0 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 71 75 69 onstraint;.}.}.if.(!isset($requi
1aee0 72 65 6d 65 6e 74 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 rement['version'])).{.throw.new.
1af00 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 72 \InvalidArgumentException('The.r
1af20 65 71 75 69 72 65 6d 65 6e 74 20 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 equirement.'.$requirement['name'
1af40 5d 2e 27 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 ].'.must.contain.a.version.const
1af60 72 61 69 6e 74 27 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 raint');.}..$result[].=.$require
1af80 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 20 2e 20 27 20 27 20 2e 20 24 72 65 71 75 69 72 65 6d 65 6e ment['name']...'.'...$requiremen
1afa0 74 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b t['version'];.}..return.$result;
1afc0 0a 7d 0a 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 20 3d 20 24 .}..while.(null.!==.$package.=.$
1afe0 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 70 72 6f 6d 70 74 29 29 20 7b dialog->ask($output,.$prompt)).{
1b000 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 .$matches.=.$this->findPackages(
1b020 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 29 $package);..if.(count($matches))
1b040 20 7b 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 73 .{.$output->writeln(array(.'',.s
1b060 70 72 69 6e 74 66 28 27 46 6f 75 6e 64 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 70 61 printf('Found.<info>%s</info>.pa
1b080 63 6b 61 67 65 73 20 6d 61 74 63 68 69 6e 67 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 ckages.matching.<info>%s</info>'
1b0a0 2c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 2c 20 24 70 61 63 6b 61 67 65 29 2c 0a 27 27 ,.count($matches),.$package),.''
1b0c0 0a 29 29 3b 0a 0a 24 65 78 61 63 74 4d 61 74 63 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 68 6f 69 63 .));..$exactMatch.=.null;.$choic
1b0e0 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 es.=.array();.foreach.($matches.
1b100 61 73 20 24 70 6f 73 69 74 69 6f 6e 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 68 6f as.$position.=>.$package).{.$cho
1b120 69 63 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 20 3c 69 6e 66 6f 3e 25 35 73 3c 2f 69 6e ices[].=.sprintf('.<info>%5s</in
1b140 66 6f 3e 20 25 73 27 2c 20 22 5b 24 70 6f 73 69 74 69 6f 6e 5d 22 2c 20 24 70 61 63 6b 61 67 65 fo>.%s',."[$position]",.$package
1b160 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 20 ['name']);.if.($package['name'].
1b180 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 65 78 61 63 74 4d 61 74 63 68 20 3d 20 74 72 ===.$package).{.$exactMatch.=.tr
1b1a0 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 65 78 61 63 74 4d 61 74 ue;.break;.}.}....if.(!$exactMat
1b1c0 63 68 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 63 68 6f 69 63 65 73 29 ch).{.$output->writeln($choices)
1b1e0 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 24 76 61 6c 69 64 61 ;.$output->writeln('');..$valida
1b200 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 75 73 65 20 tor.=.function.($selection).use.
1b220 28 24 6d 61 74 63 68 65 73 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 73 65 6c 65 63 74 69 ($matches).{.if.(''.===.$selecti
1b240 6f 6e 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 69 73 5f 6e on).{.return.false;.}..if.(!is_n
1b260 75 6d 65 72 69 63 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 umeric($selection).&&.preg_match
1b280 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 5c 73 2b 28 5c 53 2e 2a 29 5c 73 2a 24 7d 27 2c 20 24 73 65 ('{^\s*(\S+)\s+(\S.*)\s*$}',.$se
1b2a0 6c 65 63 74 69 6f 6e 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 lection,.$matches)).{.return.$ma
1b2c0 74 63 68 65 73 5b 31 5d 2e 27 20 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 3b 0a 7d 0a 0a 69 66 20 tches[1].'.'.$matches[2];.}..if.
1b2e0 28 21 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f (!isset($matches[(int).$selectio
1b300 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 74 n])).{.throw.new.\Exception('Not
1b320 20 61 20 76 61 6c 69 64 20 73 65 6c 65 63 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 .a.valid.selection');.}..$packag
1b340 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 3b 0a e.=.$matches[(int).$selection];.
1b360 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 3b 0a 7d 3b 0a 0a 24 70 .return.$package['name'];.};..$p
1b380 61 63 6b 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 ackage.=.$dialog->askAndValidate
1b3a0 28 24 6f 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 ($output,.$dialog->getQuestion('
1b3c0 45 6e 74 65 72 20 70 61 63 6b 61 67 65 20 23 20 74 6f 20 61 64 64 2c 20 6f 72 20 74 68 65 20 63 Enter.package.#.to.add,.or.the.c
1b3e0 6f 6d 70 6c 65 74 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 69 66 20 69 74 20 69 73 20 6e 6f omplete.package.name.if.it.is.no
1b400 74 20 6c 69 73 74 65 64 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 2c 20 24 76 61 6c 69 64 61 74 t.listed',.false,.':'),.$validat
1b420 6f 72 2c 20 33 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 61 63 6b or,.3);.}....if.(false.!==.$pack
1b440 61 67 65 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 age.&&.false.===.strpos($package
1b460 2c 20 27 20 27 29 29 20 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 ,.'.')).{.$validator.=.function.
1b480 28 24 69 6e 70 75 74 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 74 72 69 6d 28 24 69 6e 70 75 74 29 ($input).{.$input.=.trim($input)
1b4a0 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 20 3f 3a 20 66 61 6c 73 65 3b 0a 7d 3b 0a 0a 24 ;..return.$input.?:.false;.};..$
1b4c0 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 41 6e 64 56 61 6c 69 constraint.=.$dialog->askAndVali
1b4e0 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 65 73 74 69 date($output,.$dialog->getQuesti
1b500 6f 6e 28 27 45 6e 74 65 72 20 74 68 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 on('Enter.the.version.constraint
1b520 20 74 6f 20 72 65 71 75 69 72 65 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 2c 20 24 76 61 6c 69 .to.require',.false,.':'),.$vali
1b540 64 61 74 6f 72 2c 20 33 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 dator,.3);.if.(false.===.$constr
1b560 61 69 6e 74 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 2e 3d aint).{.continue;.}..$package..=
1b580 20 27 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 .'.'.$constraint;.}..if.(false.!
1b5a0 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 61 ==.$package).{.$requires[].=.$pa
1b5c0 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 0a ckage;.}.}.}..return.$requires;.
1b5e0 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 68 }..protected.function.formatAuth
1b600 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 69 ors($author).{.return.array($thi
1b620 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 0a s->parseAuthorString($author));.
1b640 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 75 }..protected.function.formatRequ
1b660 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 0a irements(array.$requirements).{.
1b680 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e $requires.=.array();.$requiremen
1b6a0 74 73 20 3d 20 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 ts.=.$this->normalizeRequirement
1b6c0 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 s($requirements);.foreach.($requ
1b6e0 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 24 72 65 71 irements.as.$requirement).{.$req
1b700 75 69 72 65 73 5b 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 72 uires[$requirement['name']].=.$r
1b720 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e equirement['version'];.}..return
1b740 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f .$requires;.}..protected.functio
1b760 6e 20 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 n.getGitConfig().{.if.(null.!==.
1b780 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 $this->gitConfig).{.return.$this
1b7a0 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 ->gitConfig;.}..$finder.=.new.Ex
1b7c0 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 24 67 69 74 42 69 6e 20 3d 20 24 66 69 6e ecutableFinder();.$gitBin.=.$fin
1b7e0 64 65 72 2d 3e 66 69 6e 64 28 27 67 69 74 27 29 3b 0a 0a 24 63 6d 64 20 3d 20 6e 65 77 20 50 72 der->find('git');..$cmd.=.new.Pr
1b800 6f 63 65 73 73 28 73 70 72 69 6e 74 66 28 27 25 73 20 63 6f 6e 66 69 67 20 2d 6c 27 2c 20 65 73 ocess(sprintf('%s.config.-l',.es
1b820 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 67 69 74 42 69 6e 29 29 29 3b 0a 24 63 6d 64 2d 3e 72 capeshellarg($gitBin)));.$cmd->r
1b840 75 6e 28 29 3b 0a 0a 69 66 20 28 24 63 6d 64 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 un();..if.($cmd->isSuccessful())
1b860 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 .{.$this->gitConfig.=.array();.p
1b880 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 5e 28 5b 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d reg_match_all('{^([^=]+)=(.*)$}m
1b8a0 27 2c 20 24 63 6d 64 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 ',.$cmd->getOutput(),.$matches,.
1b8c0 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 PREG_SET_ORDER);.foreach.($match
1b8e0 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 es.as.$match).{.$this->gitConfig
1b900 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 [$match[1]].=.$match[2];.}..retu
1b920 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 rn.$this->gitConfig;.}..return.$
1b940 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a this->gitConfig.=.array();.}....
1b960 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 63 74 69 6f 6e ..............protected.function
1b980 20 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 6c 65 2c 20 24 76 .hasVendorIgnore($ignoreFile,.$v
1b9a0 65 6e 64 6f 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 endor.=.'vendor').{.if.(!file_ex
1b9c0 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 ists($ignoreFile)).{.return.fals
1b9e0 65 3b 0a 7d 0a 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 70 72 69 6e 74 66 28 27 7b 5e 2f 3f 25 73 e;.}..$pattern.=.sprintf('{^/?%s
1ba00 28 2f 5c 2a 3f 29 3f 24 7d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 6e 64 6f 72 29 29 (/\*?)?$}',.preg_quote($vendor))
1ba20 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
1ba40 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.($
1ba60 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
1ba80 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
1baa0 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
1bac0 64 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 d.function.normalizeRequirements
1bae0 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 0a 7b 0a 24 70 61 72 73 65 72 20 (array.$requirements).{.$parser.
1bb00 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 =.new.VersionParser();..return.$
1bb20 70 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 69 72 73 28 24 72 parser->parseNameVersionPairs($r
1bb40 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 equirements);.}..protected.funct
1bb60 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 72 65 46 69 6c 65 2c ion.addVendorIgnore($ignoreFile,
1bb80 20 24 76 65 6e 64 6f 72 20 3d 20 27 2f 76 65 6e 64 6f 72 2f 27 29 0a 7b 0a 24 63 6f 6e 74 65 6e .$vendor.=.'/vendor/').{.$conten
1bba0 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 67 6e 6f 72 65 ts.=."";.if.(file_exists($ignore
1bbc0 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 65 74 5f 63 6f File)).{.$contents.=.file_get_co
1bbe0 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 5c 6e 22 20 21 ntents($ignoreFile);..if.("\n".!
1bc00 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 29 20 7b 0a 24 ==.substr($contents,.0,.-1)).{.$
1bc20 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 5f 70 75 74 5f contents..=."\n";.}.}..file_put_
1bc40 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 65 6e 74 73 20 contents($ignoreFile,.$contents.
1bc60 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 0a 0a 0a 0a 0a ..$vendor.."\n");.}.}.<?php.....
1bc80 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
1bca0 61 64 65 72 3b 0a 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 ader;..use.Composer\Config;.use.
1bcc0 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
1bce0 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\
1bd00 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 55 74 69 6c VersionParser;.use.Composer\Util
1bd20 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 72 5c 49 \ProcessExecutor;.use.Composer\I
1bd40 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 55 74 69 6c O\IOInterface;.use.Composer\Util
1bd60 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 61 73 73 20 \Filesystem;.....abstract.class.
1bd80 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 6e 6c 6f 61 VcsDownloader.implements.Downloa
1bda0 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 3b 0a 70 72 derInterface.{.protected.$io;.pr
1bdc0 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 otected.$config;.protected.$proc
1bde0 65 73 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 0a 0a 70 75 62 ess;.protected.$filesystem;..pub
1be00 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
1be20 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 50 72 6f 63 65 73 face.$io,.Config.$config,.Proces
1be40 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 73 sExecutor.$process.=.null,.Files
1be60 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 20 ystem.$fs.=.null).{.$this->io.=.
1be80 24 69 6f 3b 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 $io;.$this->config.=.$config;.$t
1bea0 68 69 73 2d 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 his->process.=.$process.?:.new.P
1bec0 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 rocessExecutor($io);.$this->file
1bee0 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 6d 3b 0a system.=.$fs.?:.new.Filesystem;.
1bf00 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
1bf20 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 65 27 3b ationSource().{.return.'source';
1bf40 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 61 64 28 .}.....public.function.download(
1bf60 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 61 74 68 PackageInterface.$package,.$path
1bf80 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 65 66 65 ).{.if.(!$package->getSourceRefe
1bfa0 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 72 67 rence()).{.throw.new.\InvalidArg
1bfc0 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 63 6b 61 umentException('Package.'.$packa
1bfe0 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 69 6e 67 ge->getPrettyName().'.is.missing
1c000 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 68 .reference.information');.}..$th
1c020 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 20 3c 69 is->io->write("..-.Installing.<i
1c040 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 20 22 3c nfo>"...$package->getName()..."<
1c060 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 /info>.(<comment>"...VersionPars
1c080 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c er::formatVersion($package)..."<
1c0a0 2f 63 6f 6d 6d 65 6e 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 /comment>)");.$this->filesystem-
1c0c0 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 24 74 68 69 73 2d 3e >removeDirectory($path);.$this->
1c0e0 64 6f 44 6f 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 24 74 68 doDownload($package,.$path);.$th
1c100 69 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 75 62 6c 69 63 20 is->io->write('');.}.....public.
1c120 66 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 function.update(PackageInterface
1c140 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 72 .$initial,.PackageInterface.$tar
1c160 67 65 74 2c 20 24 70 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 get,.$path).{.if.(!$target->getS
1c180 6f 75 72 63 65 52 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 ourceReference()).{.throw.new.\I
1c1a0 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 6b 61 67 65 nvalidArgumentException('Package
1c1c0 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 20 69 73 .'.$target->getPrettyName().'.is
1c1e0 20 6d 69 73 73 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 .missing.reference.information')
1c200 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 3b ;.}..$name.=.$target->getName();
1c220 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 .if.($initial->getPrettyVersion(
1c240 29 20 3d 3d 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 28 29 ).==.$target->getPrettyVersion()
1c260 29 20 7b 0a 69 66 20 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 ).{.if.($target->getSourceType()
1c280 20 3d 3d 3d 20 27 73 76 6e 27 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e .===.'svn').{.$from.=.$initial->
1c2a0 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 74 6f 20 3d 20 24 74 61 72 getSourceReference();.$to.=.$tar
1c2c0 67 65 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 7d 20 65 6c 73 get->getSourceReference();.}.els
1c2e0 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 73 75 62 73 74 72 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 e.{.$from.=.substr($initial->get
1c300 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 24 74 6f 20 3d 20 SourceReference(),.0,.7);.$to.=.
1c320 73 75 62 73 74 72 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 substr($target->getSourceReferen
1c340 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 24 6e 61 6d 65 20 2e 3d 20 27 20 27 2e 24 69 6e 69 ce(),.0,.7);.}.$name..=.'.'.$ini
1c360 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 tial->getPrettyVersion();.}.else
1c380 20 7b 0a 24 66 72 6f 6d 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 .{.$from.=.VersionParser::format
1c3a0 56 65 72 73 69 6f 6e 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 6f 20 3d 20 56 65 72 73 69 6f 6e Version($initial);.$to.=.Version
1c3c0 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 61 72 67 65 74 29 3b 0a Parser::formatVersion($target);.
1c3e0 7d 0a 0a 24 74 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 }..$this->io->write("..-.Updatin
1c400 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 6e 61 6d 65 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 g.<info>"...$name..."</info>.(<c
1c420 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 66 72 6f 6d 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3d omment>"...$from..."</comment>.=
1c440 3e 20 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 74 6f 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e >.<comment>"...$to..."</comment>
1c460 29 22 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 74 68 2c )");..$this->cleanChanges($path,
1c480 20 74 72 75 65 29 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 55 70 64 61 74 65 28 24 69 .true);.try.{.$this->doUpdate($i
1c4a0 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 20 63 61 74 63 68 nitial,.$target,.$path);.}.catch
1c4c0 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 72 65 61 70 .(\Exception.$e).{...$this->reap
1c4e0 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a plyChanges($path);..throw.$e;.}.
1c500 24 74 68 69 73 2d 3e 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 0a 0a $this->reapplyChanges($path);...
1c520 20 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 20 7b 0a 24 .if.($this->io->isVerbose()).{.$
1c540 6d 65 73 73 61 67 65 20 3d 20 27 50 75 6c 6c 69 6e 67 20 69 6e 20 63 68 61 6e 67 65 73 3a 27 3b message.=.'Pulling.in.changes:';
1c560 0a 24 6c 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 69 .$logs.=.$this->getCommitLogs($i
1c580 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 74 nitial->getSourceReference(),.$t
1c5a0 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 arget->getSourceReference(),.$pa
1c5c0 74 68 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 6c 6f 67 73 29 29 20 7b 0a 24 6d 65 73 73 61 th);..if.(!trim($logs)).{.$messa
1c5e0 67 65 20 3d 20 27 52 6f 6c 6c 69 6e 67 20 62 61 63 6b 20 63 68 61 6e 67 65 73 3a 27 3b 0a 24 6c ge.=.'Rolling.back.changes:';.$l
1c600 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 74 61 72 67 ogs.=.$this->getCommitLogs($targ
1c620 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 69 6e 69 74 69 et->getSourceReference(),.$initi
1c640 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 74 68 29 al->getSourceReference(),.$path)
1c660 3b 0a 7d 0a 0a 69 66 20 28 74 72 69 6d 28 24 6c 6f 67 73 29 29 20 7b 0a 24 6c 6f 67 73 20 3d 20 ;.}..if.(trim($logs)).{.$logs.=.
1c680 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e implode("\n",.array_map(function
1c6a0 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 20 20 27 20 2e 20 24 6c 69 .($line).{.return.'......'...$li
1c6c0 6e 65 3b 0a 7d 2c 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6c 6f 67 73 29 29 29 3b 0a 0a ne;.},.explode("\n",.$logs)));..
1c6e0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 27 2e 24 6d 65 73 73 61 67 65 $this->io->write('....'.$message
1c700 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6c 6f 67 73 29 3b 0a 7d 0a 7d 0a );.$this->io->write($logs);.}.}.
1c720 0a 24 74 68 69 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 75 62 .$this->io->write('');.}.....pub
1c740 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 6e 74 65 72 lic.function.remove(PackageInter
1c760 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 73 2d 3e 69 face.$package,.$path).{.$this->i
1c780 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 3e 22 20 2e o->write("..-.Removing.<info>"..
1c7a0 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 66 6f 3e 20 .$package->getName()..."</info>.
1c7c0 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 72 65 74 74 (<comment>"...$package->getPrett
1c7e0 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 0a 24 74 68 yVersion()..."</comment>)");.$th
1c800 69 73 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a is->cleanChanges($path,.false);.
1c820 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 69 if.(!$this->filesystem->removeDi
1c840 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 rectory($path)).{...if.(!defined
1c860 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 7c 7c ('PHP_WINDOWS_VERSION_BUILD').||
1c880 20 28 75 73 6c 65 65 70 28 32 35 30 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 .(usleep(250).&&.!$this->filesys
1c8a0 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 29 29 20 7b 0a tem->removeDirectory($path))).{.
1c8c0 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 6f 75 throw.new.\RuntimeException('Cou
1c8e0 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 70 61 74 68 ld.not.completely.delete.'.$path
1c900 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c .',.aborting.');.}.}.}......publ
1c920 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f ic.function.setOutputProgress($o
1c940 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d utputProgress).{.return.$this;.}
1c960 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 6c 65 ..........protected.function.cle
1c980 61 6e 43 68 61 6e 67 65 73 28 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 0a 20 69 66 anChanges($path,.$update).{...if
1c9a0 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 .(null.!==.$this->getLocalChange
1c9c0 73 28 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 s($path)).{.throw.new.\RuntimeEx
1c9e0 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 2e 20 24 70 ception('Source.directory.'...$p
1ca00 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 67 65 73 2e ath...'.has.uncommitted.changes.
1ca20 27 29 3b 0a 7d 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 ');.}.}........protected.functio
1ca40 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 7d 0a 0a 0a 0a 0a n.reapplyChanges($path).{.}.....
1ca60 0a 0a 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 64 ...abstract.protected.function.d
1ca80 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 61 63 6b oDownload(PackageInterface.$pack
1caa0 61 67 65 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 age,.$path);.........abstract.pr
1cac0 6f 74 65 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 otected.function.doUpdate(Packag
1cae0 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 74 65 eInterface.$initial,.PackageInte
1cb00 72 66 61 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 0a 61 62 rface.$target,.$path);........ab
1cb20 73 74 72 61 63 74 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 stract.public.function.getLocalC
1cb40 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 hanges($path);..........abstract
1cb60 20 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 69 74 4c 6f 67 .protected.function.getCommitLog
1cb80 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 s($fromReference,.$toReference,.
1cba0 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 73 $path);.}.<?php............names
1cbc0 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 75 73 65 20 43 pace.Composer\Downloader;..use.C
1cbe0 6f 6d 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 43 61 63 omposer\Config;.use.Composer\Cac
1cc00 68 65 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 he;.use.Composer\IO\IOInterface;
1cc20 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
1cc40 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 56 65 72 erface;.use.Composer\Package\Ver
1cc60 73 69 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 sion\VersionParser;.use.Composer
1cc80 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 5c 55 \Util\Filesystem;.use.Composer\U
1cca0 74 69 6c 5c 47 69 74 48 75 62 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 til\GitHub;.use.Composer\Util\Re
1ccc0 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 6c 61 73 73 20 46 69 moteFilesystem;.........class.Fi
1cce0 6c 65 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 6e 6c 6f 61 64 leDownloader.implements.Download
1cd00 65 72 49 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 63 61 erInterface.{.private.static.$ca
1cd20 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 cheCollected.=.false;.protected.
1cd40 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 $io;.protected.$config;.protecte
1cd60 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 0a 70 d.$rfs;.protected.$filesystem;.p
1cd80 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 rotected.$cache;.protected.$outp
1cda0 75 74 50 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 utProgress.=.true;...........pub
1cdc0 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
1cde0 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 43 61 63 68 65 20 face.$io,.Config.$config,.Cache.
1ce00 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 $cache.=.null,.RemoteFilesystem.
1ce20 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 6c 65 73 79 73 $rfs.=.null,.Filesystem.$filesys
1ce40 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 69 6f 3b 0a 24 tem.=.null).{.$this->io.=.$io;.$
1ce60 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 3e 72 this->config.=.$config;.$this->r
1ce80 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 65 fs.=.$rfs.?:.new.RemoteFilesyste
1cea0 6d 28 24 69 6f 29 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 m($io);.$this->filesystem.=.$fil
1cec0 65 73 79 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 24 74 68 esystem.?:.new.Filesystem();.$th
1cee0 69 73 2d 3e 63 61 63 68 65 20 3d 20 24 63 61 63 68 65 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e is->cache.=.$cache;..if.($this->
1cf00 63 61 63 68 65 20 26 26 20 21 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 cache.&&.!self::$cacheCollected.
1cf20 26 26 20 21 6d 74 5f 72 61 6e 64 28 30 2c 20 35 30 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 &&.!mt_rand(0,.50)).{.$this->cac
1cf40 68 65 2d 3e 67 63 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 74 74 6c 27 29 he->gc($config->get('cache-ttl')
1cf60 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 ,.$config->get('cache-files-maxs
1cf80 69 7a 65 27 29 29 3b 0a 7d 0a 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 ize'));.}.self::$cacheCollected.
1cfa0 3d 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 6e 20 67 65 =.true;.}.....public.function.ge
1cfc0 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 27 tInstallationSource().{.return.'
1cfe0 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 77 dist';.}.....public.function.dow
1d000 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 2c nload(PackageInterface.$package,
1d020 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 69 .$path).{.$url.=.$package->getDi
1d040 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 20 stUrl();.if.(!$url).{.throw.new.
1d060 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 67 \InvalidArgumentException('The.g
1d080 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 6f iven.package.is.missing.url.info
1d0a0 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 2d rmation');.}..$this->filesystem-
1d0c0 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 0a >ensureDirectoryExists($path);..
1d0e0 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 24 $fileName.=.$this->getFileName($
1d100 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 69 package,.$path);..$this->io->wri
1d120 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 61 te("..-.Installing.<info>"...$pa
1d140 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 6f ckage->getName()..."</info>.(<co
1d160 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 mment>"...VersionParser::formatV
1d180 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 ersion($package)..."</comment>)"
1d1a0 29 3b 0a 0a 24 70 72 6f 63 65 73 73 65 64 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 );..$processedUrl.=.$this->proce
1d1c0 73 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 3b 0a 24 68 6f 73 74 6e 61 6d 65 ssUrl($package,.$url);.$hostname
1d1e0 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 50 48 50 5f .=.parse_url($processedUrl,.PHP_
1d200 55 52 4c 5f 48 4f 53 54 29 3b 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 68 6f 73 74 6e 61 6d 65 URL_HOST);..if.(strpos($hostname
1d220 2c 20 27 2e 67 69 74 68 75 62 2e 63 6f 6d 27 29 20 3d 3d 3d 20 28 73 74 72 6c 65 6e 28 24 68 6f ,.'.github.com').===.(strlen($ho
1d240 73 74 6e 61 6d 65 29 20 2d 20 31 31 29 29 20 7b 0a 24 68 6f 73 74 6e 61 6d 65 20 3d 20 27 67 69 stname).-.11)).{.$hostname.=.'gi
1d260 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 thub.com';.}..try.{.try.{.if.(!$
1d280 74 68 69 73 2d 3e 63 61 63 68 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 63 6f this->cache.||.!$this->cache->co
1d2a0 70 79 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 pyTo($this->getCacheKey($package
1d2c0 29 2c 20 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 75 74 ),.$fileName)).{.if.(!$this->out
1d2e0 70 75 74 50 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 putProgress).{.$this->io->write(
1d300 27 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 27 29 3b 0a 7d 0a 0a 0a 20 24 72 65 74 72 69 65 '....Downloading');.}....$retrie
1d320 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 s.=.3;.while.($retries--).{.try.
1d340 7b 0a 24 74 68 69 73 2d 3e 72 66 73 2d 3e 63 6f 70 79 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 70 {.$this->rfs->copy($hostname,.$p
1d360 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 6f rocessedUrl,.$fileName,.$this->o
1d380 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 utputProgress);.break;.}.catch.(
1d3a0 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 69 66 20 28 30 TransportException.$e).{...if.(0
1d3c0 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 7c 7c 20 21 24 72 65 74 72 69 65 73 29 .!==.$e->getCode().||.!$retries)
1d3e0 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 .{.throw.$e;.}.if.($this->io->is
1d400 56 65 72 62 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 Verbose()).{.$this->io->write('.
1d420 20 20 20 44 6f 77 6e 6c 6f 61 64 20 66 61 69 6c 65 64 2c 20 72 65 74 72 79 69 6e 67 2e 2e 2e 27 ...Download.failed,.retrying...'
1d440 29 3b 0a 7d 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 );.}.usleep(500000);.}.}..if.($t
1d460 68 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 63 6f 70 79 his->cache).{.$this->cache->copy
1d480 46 72 6f 6d 28 24 74 68 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 From($this->getCacheKey($package
1d4a0 29 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ),.$fileName);.}.}.else.{.$this-
1d4c0 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 4c 6f 61 64 69 6e 67 20 66 72 6f 6d 20 63 61 63 >io->write('....Loading.from.cac
1d4e0 68 65 27 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 74 he');.}.}.catch.(TransportExcept
1d500 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f ion.$e).{.if.(in_array($e->getCo
1d520 64 65 28 29 2c 20 61 72 72 61 79 28 34 30 34 2c 20 34 30 33 29 29 20 26 26 20 27 67 69 74 68 75 de(),.array(404,.403)).&&.'githu
1d540 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 68 6f 73 74 6e 61 6d 65 20 26 26 20 21 24 74 68 69 73 2d 3e b.com'.===.$hostname.&&.!$this->
1d560 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 68 6f 73 74 6e 61 6d 65 29 io->hasAuthentication($hostname)
1d580 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 5c 6e 22 2e 27 43 6f 75 6c 64 20 6e 6f 74 20 66 ).{.$message.=."\n".'Could.not.f
1d5a0 65 74 63 68 20 27 2e 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2e 27 2c 20 65 6e 74 65 72 20 79 6f etch.'.$processedUrl.',.enter.yo
1d5c0 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 27 2e 28 24 65 2d 3e 67 65 74 ur.GitHub.credentials.'.($e->get
1d5e0 43 6f 64 65 28 29 20 3d 3d 3d 20 34 30 34 20 3f 20 27 74 6f 20 61 63 63 65 73 73 20 70 72 69 76 Code().===.404.?.'to.access.priv
1d600 61 74 65 20 72 65 70 6f 73 27 20 3a 20 27 74 6f 20 67 6f 20 6f 76 65 72 20 74 68 65 20 41 50 49 ate.repos'.:.'to.go.over.the.API
1d620 20 72 61 74 65 20 6c 69 6d 69 74 27 29 3b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 .rate.limit');.$gitHubUtil.=.new
1d640 20 47 69 74 48 75 62 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 .GitHub($this->io,.$this->config
1d660 2c 20 6e 75 6c 6c 2c 20 24 74 68 69 73 2d 3e 72 66 73 29 3b 0a 69 66 20 28 21 24 67 69 74 48 75 ,.null,.$this->rfs);.if.(!$gitHu
1d680 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 68 6f 73 74 6e 61 6d 65 29 bUtil->authorizeOAuth($hostname)
1d6a0 0a 26 26 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 28 29 .&&.(!$this->io->isInteractive()
1d6c0 20 7c 7c 20 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 .||.!$gitHubUtil->authorizeOAuth
1d6e0 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 6d 65 73 73 61 67 Interactively($hostname,.$messag
1d700 65 29 29 0a 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 66 73 2d 3e e)).).{.throw.$e;.}.$this->rfs->
1d720 63 6f 70 79 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 24 copy($hostname,.$processedUrl,.$
1d740 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 fileName,.$this->outputProgress)
1d760 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 66 ;.}.else.{.throw.$e;.}.}..if.(!f
1d780 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e ile_exists($fileName)).{.throw.n
1d7a0 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 24 75 72 ew.\UnexpectedValueException($ur
1d7c0 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 73 61 76 65 64 20 74 6f 20 27 2e 24 66 69 6c l.'.could.not.be.saved.to.'.$fil
1d7e0 65 4e 61 6d 65 2e 27 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 27 0a 2e 27 20 64 69 72 65 63 eName.',.make.sure.the'..'.direc
1d800 74 6f 72 79 20 69 73 20 77 72 69 74 61 62 6c 65 20 61 6e 64 20 79 6f 75 20 68 61 76 65 20 69 6e tory.is.writable.and.you.have.in
1d820 74 65 72 6e 65 74 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 27 29 3b 0a 7d 0a 0a 24 63 68 65 63 6b ternet.connectivity');.}..$check
1d840 73 75 6d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b sum.=.$package->getDistSha1Check
1d860 73 75 6d 28 29 3b 0a 69 66 20 28 24 63 68 65 63 6b 73 75 6d 20 26 26 20 68 61 73 68 5f 66 69 6c sum();.if.($checksum.&&.hash_fil
1d880 65 28 27 73 68 61 31 27 2c 20 24 66 69 6c 65 4e 61 6d 65 29 20 21 3d 3d 20 24 63 68 65 63 6b 73 e('sha1',.$fileName).!==.$checks
1d8a0 75 6d 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 um).{.throw.new.\UnexpectedValue
1d8c0 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 68 65 63 6b 73 75 6d 20 76 65 72 69 66 69 63 61 Exception('The.checksum.verifica
1d8e0 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6c 65 20 66 61 69 6c 65 64 20 28 64 6f 77 6e 6c 6f 61 tion.of.the.file.failed.(downloa
1d900 64 65 64 20 66 72 6f 6d 20 27 2e 24 75 72 6c 2e 27 29 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 ded.from.'.$url.')');.}.}.catch.
1d920 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 (\Exception.$e).{...$this->files
1d940 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 3b 0a 24 ystem->removeDirectory($path);.$
1d960 74 68 69 73 2d 3e 63 6c 65 61 72 43 61 63 68 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 this->clearCache($package,.$path
1d980 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 );.throw.$e;.}.}.....public.func
1d9a0 74 69 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 tion.setOutputProgress($outputPr
1d9c0 6f 67 72 65 73 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 20 ogress).{.$this->outputProgress.
1d9e0 3d 20 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 =.$outputProgress;..return.$this
1da00 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 43 61 63 ;.}..protected.function.clearCac
1da20 68 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 70 he(PackageInterface.$package,.$p
1da40 61 74 68 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 66 69 6c 65 ath).{.if.($this->cache).{.$file
1da60 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 24 70 61 63 6b 61 Name.=.$this->getFileName($packa
1da80 67 65 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 6d 6f 76 65 ge,.$path);.$this->cache->remove
1daa0 28 24 74 68 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 29 29 3b 0a ($this->getCacheKey($package));.
1dac0 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 61 74 65 28 50 }.}.....public.function.update(P
1dae0 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
1db00 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 24 74 68 eInterface.$target,.$path).{.$th
1db20 69 73 2d 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 is->remove($initial,.$path);.$th
1db40 69 73 2d 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 is->download($target,.$path);.}.
1db60 0a 0a 0a 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 ....public.function.remove(Packa
1db80 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 24 geInterface.$package,.$path).{.$
1dba0 74 68 69 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 this->io->write("..-.Removing.<i
1dbc0 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 20 22 3c nfo>"...$package->getName()..."<
1dbe0 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 /info>.(<comment>"...VersionPars
1dc00 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c er::formatVersion($package)..."<
1dc20 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 6c 65 73 79 /comment>)");.if.(!$this->filesy
1dc40 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 29 20 7b 0a stem->removeDirectory($path)).{.
1dc60 0a 20 69 66 20 28 21 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 ..if.(!defined('PHP_WINDOWS_VERS
1dc80 49 4f 4e 5f 42 55 49 4c 44 27 29 20 7c 7c 20 28 75 73 6c 65 65 70 28 32 35 30 30 30 30 29 20 26 ION_BUILD').||.(usleep(250000).&
1dca0 26 20 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 69 72 65 &.!$this->filesystem->removeDire
1dcc0 63 74 6f 72 79 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 ctory($path))).{.throw.new.\Runt
1dce0 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 74 65 imeException('Could.not.complete
1dd00 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 27 29 ly.delete.'.$path.',.aborting.')
1dd20 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 75 6e 63 74 69 ;.}.}.}.........protected.functi
1dd40 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.
1dd60 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.
1dd80 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b 61 67 65 2d '/'.pathinfo(parse_url($package-
1dda0 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 >getDistUrl(),.PHP_URL_PATH),.PA
1ddc0 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 0a 0a 0a 0a 0a 70 72 THINFO_BASENAME);.}...........pr
1dde0 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 6c 28 50 61 63 6b otected.function.processUrl(Pack
1de00 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 ageInterface.$package,.$url).{.i
1de20 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 29 20 f.(!extension_loaded('openssl').
1de40 26 26 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 73 3a 27 29 29 &&.0.===.strpos($url,.'https:'))
1de60 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 27 .{.throw.new.\RuntimeException('
1de80 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 78 74 65 You.must.enable.the.openssl.exte
1dea0 6e 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 nsion.to.download.files.via.http
1dec0 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 s');.}..return.$url;.}..private.
1dee0 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 61 63 68 65 4b 65 79 28 50 61 63 6b 61 67 65 49 6e 74 65 function.getCacheKey(PackageInte
1df00 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 rface.$package).{.if.(preg_match
1df20 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 ('{^[a-f0-9]{40}$}',.$package->g
1df40 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 etDistReference())).{.return.$pa
1df60 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 ckage->getName().'/'.$package->g
1df80 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2d 3e etDistReference().'.'.$package->
1dfa0 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 getDistType();.}..return.$packag
1dfc0 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 e->getName().'/'.$package->getVe
1dfe0 72 73 69 6f 6e 28 29 2e 27 2d 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 rsion().'-'.$package->getDistRef
1e000 65 72 65 6e 63 65 28 29 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 erence().'.'.$package->getDistTy
1e020 70 65 28 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 pe();.}.}.<?php............names
1e040 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 75 73 65 20 43 pace.Composer\Downloader;..use.C
1e060 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 65 omposer\Package\PackageInterface
1e080 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
1e0a0 69 6c 3b 0a 0a 0a 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 il;......class.SvnDownloader.ext
1e0c0 65 6e 64 73 20 56 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 ends.VcsDownloader.{....public.f
1e0e0 75 6e 63 74 69 6f 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 unction.doDownload(PackageInterf
1e100 61 63 65 20 24 70 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 ace.$package,.$path).{.$url.=.$p
1e120 61 63 6b 61 67 65 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 ackage->getSourceUrl();.$ref.=.$
1e140 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 3b 0a 0a package->getSourceReference();..
1e160 24 74 68 69 73 2d 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 $this->io->write("....Checking.o
1e180 75 74 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 6e 63 ut.".$package->getSourceReferenc
1e1a0 65 28 29 29 3b 0a 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 e());.$this->execute($url,."svn.
1e1c0 63 6f 22 2c 20 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 co",.sprintf("%s/%s",.$url,.$ref
1e1e0 29 2c 20 6e 75 6c 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 ),.null,.$path);.}.....public.fu
1e200 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 72 66 61 63 65 nction.doUpdate(PackageInterface
1e220 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 72 .$initial,.PackageInterface.$tar
1e240 67 65 74 2c 20 24 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 get,.$path).{.$url.=.$target->ge
1e260 74 53 6f 75 72 63 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 tSourceUrl();.$ref.=.$target->ge
1e280 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 3e 69 6f 2d 3e tSourceReference();..$this->io->
1e2a0 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 20 2e 20 24 72 65 66 write("....Checking.out."...$ref
1e2c0 29 3b 0a 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 73 77 69 );.$this->execute($url,."svn.swi
1e2e0 74 63 68 22 2c 20 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 tch",.sprintf("%s/%s",.$url,.$re
1e300 66 29 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 f),.$path);.}.....public.functio
1e320 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 n.getLocalChanges($path).{.if.(!
1e340 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 73 76 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b is_dir($path.'/.svn')).{.return;
1e360 0a 7d 0a 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 27 73 76 6e .}..$this->process->execute('svn
1e380 20 73 74 61 74 75 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 .status.--ignore-externals',.$ou
1e3a0 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 tput,.$path);..return.preg_match
1e3c0 28 27 7b 5e 20 2a 5b 5e 58 20 5d 20 2b 7d 6d 27 2c 20 24 6f 75 74 70 75 74 29 20 3f 20 24 6f 75 ('{^.*[^X.].+}m',.$output).?.$ou
1e3e0 74 70 75 74 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 tput.:.null;.}..............prot
1e400 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 62 61 73 65 55 72 6c 2c ected.function.execute($baseUrl,
1e420 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 24 70 .$command,.$url,.$cwd.=.null,.$p
1e440 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 53 76 6e 55 74 69 ath.=.null).{.$util.=.new.SvnUti
1e460 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 74 72 79 20 7b 0a 72 65 l($baseUrl,.$this->io);.try.{.re
1e480 74 75 72 6e 20 24 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 turn.$util->execute($command,.$u
1e4a0 72 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 rl,.$cwd,.$path,.$this->io->isVe
1e4c0 72 62 6f 73 65 28 29 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 rbose());.}.catch.(\RuntimeExcep
1e4e0 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
1e500 65 70 74 69 6f 6e 28 0a 27 50 61 63 6b 61 67 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f eption(.'Package.could.not.be.do
1e520 77 6e 6c 6f 61 64 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a wnloaded,.'.$e->getMessage().);.
1e540 7d 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 6c 65 61 6e }.}.....protected.function.clean
1e560 43 68 61 6e 67 65 73 28 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 69 66 20 28 21 24 Changes($path,.$update).{.if.(!$
1e580 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 changes.=.$this->getLocalChanges
1e5a0 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 ($path)).{.return;.}..if.(!$this
1e5c0 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 69 66 20 28 74 72 75 ->io->isInteractive()).{.if.(tru
1e5e0 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 64 69 73 63 61 72 e.===.$this->config->get('discar
1e600 64 2d 63 68 61 6e 67 65 73 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 d-changes')).{.return.$this->dis
1e620 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 cardChanges($path);.}..return.pa
1e640 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 74 68 2c 20 24 75 70 64 61 74 rent::cleanChanges($path,.$updat
1e660 65 29 3b 0a 7d 0a 0a 24 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 e);.}..$changes.=.array_map(func
1e680 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c tion.($elem).{.return.'....'.$el
1e6a0 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d em;.},.preg_split('{\s*\r?\n\s*}
1e6c0 27 2c 20 24 63 68 61 6e 67 65 73 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 ',.$changes));.$this->io->write(
1e6e0 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 '....<error>The.package.has.modi
1e700 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f fied.files:</error>');.$this->io
1e720 2d 3e 77 72 69 74 65 28 61 72 72 61 79 5f 73 6c 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c ->write(array_slice($changes,.0,
1e740 20 31 30 29 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 .10));.if.(count($changes).>.10)
1e760 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 3c 69 6e 66 6f 3e 27 .{.$this->io->write('....<info>'
1e780 2e 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 .count($changes).-.10...'.more.f
1e7a0 69 6c 65 73 20 6d 6f 64 69 66 69 65 64 2c 20 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 iles.modified,.choose."v".to.vie
1e7c0 77 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 w.the.full.list</info>');.}..whi
1e7e0 6c 65 20 28 74 72 75 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 le.(true).{.switch.($this->io->a
1e800 73 6b 28 27 20 20 20 20 3c 69 6e 66 6f 3e 44 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 sk('....<info>Discard.changes.[y
1e820 2c 6e 2c 76 2c 3f 5d 3f 3c 2f 69 6e 66 6f 3e 20 27 2c 20 27 3f 27 29 29 20 7b 0a 63 61 73 65 20 ,n,v,?]?</info>.',.'?')).{.case.
1e840 27 79 27 3a 0a 24 74 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 'y':.$this->discardChanges($path
1e860 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 );.break.2;..case.'n':.throw.new
1e880 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 .\RuntimeException('Update.abort
1e8a0 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 76 27 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 ed');..case.'v':.$this->io->writ
1e8c0 65 28 24 63 68 61 6e 67 65 73 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 e($changes);.break;..case.'?':.d
1e8e0 65 66 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 0a efault:.$this->io->write(array(.
1e900 27 20 20 20 20 79 20 2d 20 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 '....y.-.discard.changes.and.app
1e920 6c 79 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 ly.the.'.($update.?.'update'.:.'
1e940 75 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 uninstall'),.'....n.-.abort.the.
1e960 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 '.($update.?.'update'.:.'uninsta
1e980 6c 6c 27 29 2e 27 20 61 6e 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 ll').'.and.let.you.manually.clea
1e9a0 6e 20 74 68 69 6e 67 73 20 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 n.things.up',.'....v.-.view.modi
1e9c0 66 69 65 64 20 66 69 6c 65 73 27 2c 0a 27 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 fied.files',.'....?.-.print.help
1e9e0 27 2c 0a 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ',.));.break;.}.}.}.....protecte
1ea00 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 d.function.getCommitLogs($fromRe
1ea20 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a ference,.$toReference,.$path).{.
1ea40 0a 20 24 66 72 6f 6d 52 65 76 69 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ..$fromRevision.=.preg_replace('
1ea60 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 27 24 31 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e {.*@(\d+)$}',.'$1',.$fromReferen
1ea80 63 65 29 3b 0a 24 74 6f 52 65 76 69 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 ce);.$toRevision.=.preg_replace(
1eaa0 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 27 24 31 27 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 '{.*@(\d+)$}',.'$1',.$toReferenc
1eac0 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 e);..$command.=.sprintf('cd.%s.&
1eae0 26 20 73 76 6e 20 6c 6f 67 20 2d 72 25 73 3a 25 73 20 2d 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 27 &.svn.log.-r%s:%s.--incremental'
1eb00 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 2c 20 24 66 72 6f 6d 52 65 ,.escapeshellarg($path),.$fromRe
1eb20 76 69 73 69 6f 6e 2c 20 24 74 6f 52 65 76 69 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d vision,.$toRevision);..if.(0.!==
1eb40 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 6e .$this->process->execute($comman
1eb60 64 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 d,.$output)).{.throw.new.\Runtim
1eb80 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 27 20 eException('Failed.to.execute.'.
1eba0 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 72 6f ..$command..."\n\n"...$this->pro
1ebc0 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 72 65 74 75 cess->getErrorOutput());.}..retu
1ebe0 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f rn.$output;.}..protected.functio
1ec00 6e 20 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 30 20 n.discardChanges($path).{.if.(0.
1ec20 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 27 73 76 6e !==.$this->process->execute('svn
1ec40 20 72 65 76 65 72 74 20 2d 52 20 2e 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 .revert.-R..',.$output,.$path)).
1ec60 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 22 43 {.throw.new.\RuntimeException("C
1ec80 6f 75 6c 64 20 6e 6f 74 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 ould.not.reset.changes\n\n:".$th
1eca0 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 0a is->process->getErrorOutput());.
1ecc0 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 65 }.}.}.<?php............namespace
1ece0 20 43 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 .Composer\Downloader;..use.Compo
1ed00 73 65 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 0a 0a 0a 0a 63 ser\Util\Filesystem;...........c
1ed20 6c 61 73 73 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 0a 7b 0a 70 72 69 76 lass.PearPackageExtractor.{.priv
1ed40 61 74 65 20 73 74 61 74 69 63 20 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e ate.static.$rolesWithoutPackageN
1ed60 61 6d 65 50 72 65 66 69 78 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 73 63 72 69 70 74 amePrefix.=.array('php',.'script
1ed80 27 2c 20 27 77 77 77 27 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b ',.'www');..private.$filesystem;
1eda0 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .private.$file;..public.function
1edc0 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 .__construct($file).{.if.(!is_fi
1ede0 6c 65 28 24 66 69 6c 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 le($file)).{.throw.new.\Unexpect
1ee00 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 45 41 52 20 70 61 63 6b 61 67 65 20 66 edValueException('PEAR.package.f
1ee20 69 6c 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 61 74 20 27 2e 24 66 69 6c 65 29 3b 0a 7d 0a ile.is.not.found.at.'.$file);.}.
1ee40 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 .$this->filesystem.=.new.Filesys
1ee60 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 6c 65 3b 0a 7d 0a 0a 0a tem();.$this->file.=.$file;.}...
1ee80 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 78 74 72 61 63 74 .........public.function.extract
1eea0 54 6f 28 24 74 61 72 67 65 74 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 20 3d 20 61 72 72 61 79 To($target,.array.$roles.=.array
1eec0 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 27 2f 62 69 6e ('php'.=>.'/',.'script'.=>.'/bin
1eee0 27 29 2c 20 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 65 78 74 72 61 63 74 69 '),.$vars.=.array()).{.$extracti
1ef00 6f 6e 50 61 74 68 20 3d 20 24 74 61 72 67 65 74 2e 27 2f 74 61 72 62 61 6c 6c 27 3b 0a 0a 74 72 onPath.=.$target.'/tarball';..tr
1ef20 79 20 7b 0a 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 74 68 y.{.$archive.=.new.\PharData($th
1ef40 69 73 2d 3e 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 is->file);.$archive->extractTo($
1ef60 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 69 66 extractionPath,.null,.true);..if
1ef80 20 28 21 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 65 78 74 72 61 .(!is_file($this->combine($extra
1efa0 63 74 69 6f 6e 50 61 74 68 2c 20 27 2f 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 29 20 7b 0a 74 ctionPath,.'/package.xml'))).{.t
1efc0 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 49 6e 76 61 hrow.new.\RuntimeException('Inva
1efe0 6c 69 64 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 49 74 20 6d 75 73 74 20 63 6f 6e 74 61 69 lid.PEAR.package..It.must.contai
1f000 6e 20 70 61 63 6b 61 67 65 2e 78 6d 6c 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 66 69 6c 65 43 n.package.xml.file.');.}..$fileC
1f020 6f 70 79 41 63 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 70 79 41 63 74 opyActions.=.$this->buildCopyAct
1f040 69 6f 6e 73 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 72 6f 6c 65 73 2c 20 24 76 ions($extractionPath,.$roles,.$v
1f060 61 72 73 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 43 6f 70 79 ars);.$this->copyFiles($fileCopy
1f080 41 63 74 69 6f 6e 73 2c 20 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 74 61 72 67 65 Actions,.$extractionPath,.$targe
1f0a0 74 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 t,.$roles,.$vars);.$this->filesy
1f0c0 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 65 78 74 72 61 63 74 69 6f stem->removeDirectory($extractio
1f0e0 6e 50 61 74 68 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 78 63 nPath);.}.catch.(\Exception.$exc
1f100 65 70 74 69 6f 6e 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 eption).{.throw.new.\UnexpectedV
1f120 61 6c 75 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 64 20 74 6f alueException(sprintf('Failed.to
1f140 20 65 78 74 72 61 63 74 20 50 45 41 52 20 70 61 63 6b 61 67 65 20 25 73 20 74 6f 20 25 73 2e 20 .extract.PEAR.package.%s.to.%s..
1f160 52 65 61 73 6f 6e 3a 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 24 74 61 72 67 65 Reason:.%s',.$this->file,.$targe
1f180 74 2c 20 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 2c 20 30 2c t,.$exception->getMessage()),.0,
1f1a0 20 24 65 78 63 65 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 .$exception);.}.}...........priv
1f1c0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 73 2c 20 24 ate.function.copyFiles($files,.$
1f1e0 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 0a source,.$target,.$roles,.$vars).
1f200 7b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 {.foreach.($files.as.$file).{.$f
1f220 72 6f 6d 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 rom.=.$this->combine($source,.$f
1f240 69 6c 65 5b 27 66 72 6f 6d 27 5d 29 3b 0a 24 74 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 ile['from']);.$to.=.$this->combi
1f260 6e 65 28 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 5b 24 66 69 6c 65 5b 27 72 6f 6c 65 27 5d ne($target,.$roles[$file['role']
1f280 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 6f 2c 20 24 66 ]);.$to.=.$this->combine($to,.$f
1f2a0 69 6c 65 5b 27 74 6f 27 5d 29 3b 0a 24 74 61 73 6b 73 20 3d 20 24 66 69 6c 65 5b 27 74 61 73 6b ile['to']);.$tasks.=.$file['task
1f2c0 73 27 5d 3b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c s'];.$this->copyFile($from,.$to,
1f2e0 20 24 74 61 73 6b 73 2c 20 24 76 61 72 73 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 .$tasks,.$vars);.}.}..private.fu
1f300 6e 63 74 69 6f 6e 20 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 nction.copyFile($from,.$to,.$tas
1f320 6b 73 2c 20 24 76 61 72 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 72 6f 6d 29 ks,.$vars).{.if.(!is_file($from)
1f340 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(
1f360 27 49 6e 76 61 6c 69 64 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 70 61 63 6b 61 67 65 2e 78 'Invalid.PEAR.package..package.x
1f380 6d 6c 20 64 65 66 69 6e 65 73 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 6e 6f 74 20 6c 6f 63 61 ml.defines.file.that.is.not.loca
1f3a0 74 65 64 20 69 6e 73 69 64 65 20 74 61 72 62 61 6c 6c 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d ted.inside.tarball.');.}..$this-
1f3c0 3e 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 >filesystem->ensureDirectoryExis
1f3e0 74 73 28 64 69 72 6e 61 6d 65 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 63 6f 75 6e ts(dirname($to));..if.(0.==.coun
1f400 74 28 24 74 61 73 6b 73 29 29 20 7b 0a 24 63 6f 70 69 65 64 20 3d 20 63 6f 70 79 28 24 66 72 6f t($tasks)).{.$copied.=.copy($fro
1f420 6d 2c 20 24 74 6f 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c m,.$to);.}.else.{.$content.=.fil
1f440 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 72 6f 6d 29 3b 0a 24 72 65 70 6c 61 63 65 6d e_get_contents($from);.$replacem
1f460 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 73 6b 73 20 ents.=.array();.foreach.($tasks.
1f480 61 73 20 24 74 61 73 6b 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 24 74 61 73 6b 5b 27 66 72 as.$task).{.$pattern.=.$task['fr
1f4a0 6f 6d 27 5d 3b 0a 24 76 61 72 4e 61 6d 65 20 3d 20 24 74 61 73 6b 5b 27 74 6f 27 5d 3b 0a 69 66 om'];.$varName.=.$task['to'];.if
1f4c0 20 28 69 73 73 65 74 28 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 29 20 7b 0a 69 66 20 28 .(isset($vars[$varName])).{.if.(
1f4e0 24 76 61 72 4e 61 6d 65 20 3d 3d 3d 20 27 70 68 70 5f 62 69 6e 27 20 26 26 20 66 61 6c 73 65 20 $varName.===.'php_bin'.&&.false.
1f500 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 2c 20 27 2e 62 61 74 27 29 29 20 7b 0a 24 72 65 70 6c ===.strpos($to,.'.bat')).{.$repl
1f520 61 63 65 6d 65 6e 74 73 5b 24 70 61 74 74 65 72 6e 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 acements[$pattern].=.preg_replac
1f540 65 28 27 7b 5c 2e 62 61 74 24 7d 27 2c 20 27 27 2c 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 e('{\.bat$}',.'',.$vars[$varName
1f560 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 5b 24 70 61 74 74 ]);.}.else.{.$replacements[$patt
1f580 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 7d 0a 7d 0a 24 63 ern].=.$vars[$varName];.}.}.}.$c
1f5a0 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 70 6c 61 63 ontent.=.strtr($content,.$replac
1f5c0 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 5f 63 6f 6e ements);..$copied.=.file_put_con
1f5e0 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 28 66 61 6c tents($to,.$content);.}..if.(fal
1f600 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 5c 52 75 6e se.===.$copied).{.throw.new.\Run
1f620 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 64 20 74 6f timeException(sprintf('Failed.to
1f640 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 29 3b 0a 7d .copy.%s.to.%s',.$from,.$to));.}
1f660 0a 7d 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 69 6f 6e 20 62 .}............private.function.b
1f680 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 79 20 24 uildCopyActions($source,.array.$
1f6a0 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 69 6d 70 roles,.$vars).{..$package.=.simp
1f6c0 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 65 28 24 lexml_load_file($this->combine($
1f6e0 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 61 6c 73 source,.'package.xml'));.if(fals
1f700 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 6e 74 69 e.===.$package).throw.new.\Runti
1f720 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 6f 6e 20 meException('Package.definition.
1f740 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 67 65 53 file.is.not.valid.');..$packageS
1f760 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 69 6f 6e chemaVersion.=.$package['version
1f780 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 6d 61 56 '];.if.('1.0'.==.$packageSchemaV
1f7a0 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 65 2d 3e ersion).{.$children.=.$package->
1f7c0 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 3b 0a 24 release->filelist->children();.$
1f7e0 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 67 65 2d packageName.=.(string).$package-
1f800 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 69 6e 67 >name;.$packageVersion.=.(string
1f820 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 0a 24 73 ).$package->release->version;.$s
1f840 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 20 2e 20 ourceDir.=.$packageName...'-'...
1f860 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 68 69 73 $packageVersion;.$result.=.$this
1f880 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 2c 20 24 ->buildSourceList10($children,.$
1f8a0 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 24 70 61 roles,.$sourceDir,.'',.null,.$pa
1f8c0 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 3d 20 24 ckageName);.}.elseif.('2.0'.==.$
1f8e0 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 20 3d 3d packageSchemaVersion.||.'2.1'.==
1f900 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 69 6c 64 .$packageSchemaVersion).{.$child
1f920 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 6c 64 72 ren.=.$package->contents->childr
1f940 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 20 24 70 en();.$packageName.=.(string).$p
1f960 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 20 3d 20 ackage->name;.$packageVersion.=.
1f980 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 65 6c 65 (string).$package->version->rele
1f9a0 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 65 20 2e ase;.$sourceDir.=.$packageName..
1f9c0 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 6c 74 20 .'-'...$packageVersion;.$result.
1f9e0 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 68 69 6c =.$this->buildSourceList20($chil
1fa00 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 20 6e 75 dren,.$roles,.$sourceDir,.'',.nu
1fa20 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 65 73 20 ll,.$packageName);..$namespaces.
1fa40 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 24 70 61 =.$package->getNamespaces();.$pa
1fa60 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 28 27 6e ckage->registerXPathNamespace('n
1fa80 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 65 4e 6f s',.$namespaces['']);.$releaseNo
1faa0 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 72 65 6c des.=.$package->xpath('ns:phprel
1fac0 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 72 65 73 ease');.$this->applyRelease($res
1fae0 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 20 65 6c ult,.$releaseNodes,.$vars);.}.el
1fb00 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 69 6f 6e se.{.throw.new.\RuntimeException
1fb20 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 6f 66 20 ('Unsupported.schema.version.of.
1fb40 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 0a 0a 72 package.definition.file.');.}..r
1fb60 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 63 74 69 eturn.$result;.}..private.functi
1fb80 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 65 6c 65 on.applyRelease(&$actions,.$rele
1fba0 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 72 65 6c aseNodes,.$vars).{.foreach.($rel
1fbc0 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 24 72 65 easeNodes.as.$releaseNode).{.$re
1fbe0 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 61 6c 6c quiredOs.=.$releaseNode->install
1fc00 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 6e 73 74 conditions.&&.$releaseNode->inst
1fc20 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 4e 6f 64 allconditions->os.&&.$releaseNod
1fc40 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 65 20 3f e->installconditions->os->name.?
1fc60 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 6c 6c 63 .(string).$releaseNode->installc
1fc80 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 28 24 72 onditions->os->name.:.'';.if.($r
1fca0 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 72 65 71 equiredOs.&&.$vars['os'].!=.$req
1fcc0 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 72 65 6c uiredOs).{.continue;.}..if.($rel
1fce0 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 20 28 24 easeNode->filelist).{.foreach.($
1fd00 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 65 6e 28 releaseNode->filelist->children(
1fd20 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 20 3d 3d ).as.$action).{.if.('install'.==
1fd40 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 3d 20 28 .$action->getName()).{.$name.=.(
1fd60 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 3d 20 28 string).$action['name'];.$as.=.(
1fd80 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 73 65 74 string).$action['as'];.if.(isset
1fda0 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 5b 24 6e ($actions[$name])).{.$actions[$n
1fdc0 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 28 27 69 ame]['to'].=.$as;.}.}.elseif.('i
1fde0 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 20 7b 0a gnore'.==.$action->getName()).{.
1fe00 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 65 27 5d $name.=.(string).$action['name']
1fe20 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 6c 73 65 ;.unset($actions[$name]);.}.else
1fe40 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 65 20 66 .{...}.}.}.break;.}.}..private.f
1fe60 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 69 6c 64 unction.buildSourceList10($child
1fe80 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 27 27 2c ren,.$targetRoles,.$source.=.'',
1fea0 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 24 70 61 .$target.=.'',.$role.=.null,.$pa
1fec0 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();.
1fee0 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 6c 64 29 ...foreach.($children.as.$child)
1ff00 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 27 64 69 .{..if.($child->getName().==.'di
1ff20 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 62 69 6e r').{.$dirSource.=.$this->combin
1ff40 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 61 6d 65 e($source,.(string).$child['name
1ff60 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 65 69 6e ']);.$dirTarget.=.$child['basein
1ff80 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 6f 6c 65 stalldir'].?.:.$target;.$dirRole
1ffa0 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 24 64 69 .=.$child['role'].?.:.$role;.$di
1ffc0 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 73 74 31 rFiles.=.$this->buildSourceList1
1ffe0 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 52 6f 6c 0($child->children(),.$targetRol
20000 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 64 69 72 es,.$dirSource,.$dirTarget,.$dir
20020 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 3d 20 61 Role,.$packageName);.$result.=.a
20040 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 29 3b 0a rray_merge($result,.$dirFiles);.
20060 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 3d 20 27 }.elseif.($child->getName().==.'
20080 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 20 24 63 file').{.$fileRole.=.(string).$c
200a0 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 73 73 65 hild['role'].?.:.$role;.if.(isse
200c0 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 0a 24 66 t($targetRoles[$fileRole])).{.$f
200e0 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 61 6d 65 ileName.=.(string).($child['name
20100 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 72 63 65 '].?.:.$child[0]);...$fileSource
20120 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 69 6c 65 .=.$this->combine($source,.$file
20140 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 6f 6d 62 Name);.$fileTarget.=.$this->comb
20160 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 61 6c 6c ine((string).$child['baseinstall
20180 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 3b 0a 69 dir'].?.:.$target,.$fileName);.i
201a0 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 3a 24 72 f.(!in_array($fileRole,.self::$r
201c0 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 29 20 7b olesWithoutPackageNamePrefix)).{
201e0 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 20 27 2f .$fileTarget.=.$packageName...'/
20200 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 74 72 69 '...$fileTarget;.}.$result[(stri
20220 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 66 72 6f ng).$child['name']].=.array('fro
20240 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 69 6c 65 m'.=>.$fileSource,.'to'.=>.$file
20260 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 27 74 61 Target,.'role'.=>.$fileRole,.'ta
20280 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 72 6e 20 sks'.=>.array());.}.}.}..return.
202a0 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 62 75 69 $result;.}..private.function.bui
202c0 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 72 67 65 ldSourceList20($children,.$targe
202e0 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 20 3d 20 tRoles,.$source.=.'',.$target.=.
20300 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 65 29 0a '',.$role.=.null,.$packageName).
20320 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 63 68 20 {.$result.=.array();....foreach.
20340 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 27 64 69 ($children.as.$child).{..if.('di
20360 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 69 72 53 r'.==.$child->getName()).{.$dirS
20380 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 65 2c 20 ource.=.$this->combine($source,.
203a0 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 20 24 63 $child['name']);.$dirTarget.=.$c
203c0 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 61 72 67 hild['baseinstalldir'].?.:.$targ
203e0 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 20 3f 20 et;.$dirRole.=.$child['role'].?.
20400 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 75 69 6c :.$role;.$dirFiles.=.$this->buil
20420 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 6e 28 29 dSourceList20($child->children()
20440 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 64 69 72 ,.$targetRoles,.$dirSource,.$dir
20460 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 65 29 3b Target,.$dirRole,.$packageName);
20480 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 74 2c 20 .$result.=.array_merge($result,.
204a0 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 3d 3d 20 $dirFiles);.}.elseif.('file'.==.
204c0 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 65 20 3d $child->getName()).{.$fileRole.=
204e0 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 24 72 6f .(string).$child['role'].?.:.$ro
20500 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 69 6c 65 le;.if.(isset($targetRoles[$file
20520 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 2d 3e 63 Role])).{.$fileSource.=.$this->c
20540 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 6c 64 5b ombine($source,.(string).$child[
20560 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 2d 3e 63 'name']);.$fileTarget.=.$this->c
20580 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 69 6e 73 ombine((string).($child['baseins
205a0 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 6e 67 29 talldir'].?.:.$target),.(string)
205c0 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 3d 20 61 .$child['name']);.$fileTasks.=.a
205e0 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 64 72 65 rray();.foreach.($child->childre
20600 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 73 6b 73 n('http://pear.php.net/dtd/tasks
20620 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 65 70 6c -1.0').as.$taskNode).{.if.('repl
20640 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 20 7b 0a ace'.==.$taskNode->getName()).{.
20660 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 3e 20 28 $fileTasks[].=.array('from'.=>.(
20680 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 28 29 2d string).$taskNode->attributes()-
206a0 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 4e 6f 64 >from,.'to'.=>.(string).$taskNod
206c0 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 28 21 69 e->attributes()->to);.}.}.if.(!i
206e0 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 65 73 57 n_array($fileRole,.self::$rolesW
20700 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 66 69 6c ithoutPackageNamePrefix)).{.$fil
20720 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 2e 20 24 eTarget.=.$packageName...'/'...$
20740 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 29 20 24 fileTarget;.}.$result[(string).$
20760 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 20 3d 3e child['name']].=.array('from'.=>
20780 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 72 67 65 .$fileSource,.'to'.=>.$fileTarge
207a0 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 73 27 20 t,.'role'.=>.$fileRole,.'tasks'.
207c0 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 20 24 72 =>.$fileTasks);.}.}.}..return.$r
207e0 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 6d 62 69 esult;.}..private.function.combi
20800 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 72 69 6d ne($left,.$right).{.return.rtrim
20820 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 69 67 68 ($left,.'/')...'/'...ltrim($righ
20840 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 0a 6e 61 t,.'/');.}.}.<?php............na
20860 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 75 73 mespace.Composer\Downloader;..us
20880 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
208a0 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 44 6f 77 ace;.use.Composer\Downloader\Dow
208c0 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 72 5c 55 nloaderInterface;.use.Composer\U
208e0 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 6f 77 6e til\Filesystem;.......class.Down
20900 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 44 69 73 loadManager.{.private.$preferDis
20920 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 t.=.false;.private.$preferSource
20940 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 74 65 6d 3b 0a 70 .=.false;.private.$filesystem;.p
20960 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 79 28 29 3b 0a 0a rivate.$downloaders.=.array();..
20980 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
209a0 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 69 6c 65 73 79 73 t($preferSource.=.false,.Filesys
209c0 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 24 74 68 69 73 2d tem.$filesystem.=.null).{.$this-
209e0 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 72 63 65 3b 0a 24 >preferSource.=.$preferSource;.$
20a00 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 73 74 65 6d 20 3f this->filesystem.=.$filesystem.?
20a20 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 0a 0a 70 75 62 6c :.new.Filesystem();.}.......publ
20a40 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 65 28 24 70 72 65 ic.function.setPreferSource($pre
20a60 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 53 6f 75 72 63 65 ferSource).{.$this->preferSource
20a80 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 24 74 68 69 73 3b .=.$preferSource;..return.$this;
20aa0 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 50 72 65 66 .}.......public.function.setPref
20ac0 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 erDist($preferDist).{.$this->pre
20ae0 66 65 72 44 69 73 74 20 3d 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 ferDist.=.$preferDist;..return.$
20b00 74 68 69 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 this;.}.........public.function.
20b20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 setOutputProgress($outputProgres
20b40 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 s).{.foreach.($this->downloaders
20b60 20 61 73 20 24 64 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e .as.$downloader).{.$downloader->
20b80 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 setOutputProgress($outputProgres
20ba0 73 29 3b 0a 7d 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 s);.}..return.$this;.}........pu
20bc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 70 blic.function.setDownloader($typ
20be0 65 2c 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 64 6f 77 6e 6c 6f 61 64 e,.DownloaderInterface.$download
20c00 65 72 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 65 29 3b er).{.$type.=.strtolower($type);
20c20 0a 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 20 3d 20 24 64 6f .$this->downloaders[$type].=.$do
20c40 77 6e 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a wnloader;..return.$this;.}......
20c60 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 6f 77 6e 6c 6f 61 64 .....public.function.getDownload
20c80 65 72 28 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 er($type).{.$type.=.strtolower($
20ca0 74 79 70 65 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 type);.if.(!isset($this->downloa
20cc0 64 65 72 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 ders[$type])).{.throw.new.\Inval
20ce0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 64 6f 77 idArgumentException('Unknown.dow
20d00 6e 6c 6f 61 64 65 72 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 nloader.type:.'.$type);.}..retur
20d20 6e 20 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 3b 0a 7d 0a 0a n.$this->downloaders[$type];.}..
20d40 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 44 6f ...........public.function.getDo
20d60 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 65 28 50 61 63 6b wnloaderForInstalledPackage(Pack
20d80 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 74 61 6c ageInterface.$package).{.$instal
20da0 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 lationSource.=.$package->getInst
20dc0 61 6c 6c 61 74 69 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 allationSource();..if.('dist'.==
20de0 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 6c 6f =.$installationSource).{.$downlo
20e00 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 28 24 70 61 63 ader.=.$this->getDownloader($pac
20e20 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 kage->getDistType());.}.elseif.(
20e40 27 73 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 'source'.===.$installationSource
20e60 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 67 65 74 44 6f 77 6e ).{.$downloader.=.$this->getDown
20e80 6c 6f 61 64 65 72 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 loader($package->getSourceType()
20ea0 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 61 6c 69 64 41 72 );.}.else.{.throw.new.\InvalidAr
20ec0 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 gumentException(.'Package.'.$pac
20ee0 6b 61 67 65 2e 27 20 73 65 65 6d 73 20 6e 6f 74 20 62 65 65 6e 20 69 6e 73 74 61 6c 6c 65 64 20 kage.'.seems.not.been.installed.
20f00 70 72 6f 70 65 72 6c 79 27 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f properly'.);.}..if.($installatio
20f20 6e 53 6f 75 72 63 65 20 21 3d 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 49 6e 73 74 nSource.!==.$downloader->getInst
20f40 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c allationSource()).{.throw.new.\L
20f60 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 44 6f 77 6e 6c 6f 61 64 ogicException(sprintf(.'Download
20f80 65 72 20 22 25 73 22 20 69 73 20 61 20 25 73 20 74 79 70 65 20 64 6f 77 6e 6c 6f 61 64 65 72 20 er."%s".is.a.%s.type.downloader.
20fa0 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 and.can.not.be.used.to.download.
20fc0 25 73 27 2c 0a 67 65 74 5f 63 6c 61 73 73 28 24 64 6f 77 6e 6c 6f 61 64 65 72 29 2c 20 24 64 6f %s',.get_class($downloader),.$do
20fe0 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 28 wnloader->getInstallationSource(
21000 29 2c 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 0a 29 29 3b 0a 7d 0a 0a 72 65 ),.$installationSource.));.}..re
21020 74 75 72 6e 20 24 64 6f 77 6e 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 turn.$downloader;.}...........pu
21040 62 6c 69 63 20 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 blic.function.download(PackageIn
21060 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 24 70 terface.$package,.$targetDir,.$p
21080 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 72 65 66 65 72 53 6f 75 referSource.=.null).{.$preferSou
210a0 72 63 65 20 3d 20 6e 75 6c 6c 20 21 3d 3d 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3f 20 24 rce.=.null.!==.$preferSource.?.$
210c0 70 72 65 66 65 72 53 6f 75 72 63 65 20 3a 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 preferSource.:.$this->preferSour
210e0 63 65 3b 0a 24 73 6f 75 72 63 65 54 79 70 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 ce;.$sourceType.=.$package->getS
21100 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 69 73 74 54 79 70 65 20 3d 20 24 70 61 63 6b 61 67 ourceType();.$distType.=.$packag
21120 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 0a 69 66 20 28 28 21 24 70 61 63 6b 61 67 e->getDistType();..if.((!$packag
21140 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 20 e->isDev().||.$this->preferDist.
21160 7c 7c 20 21 24 73 6f 75 72 63 65 54 79 70 65 29 20 26 26 20 21 28 24 70 72 65 66 65 72 53 6f 75 ||.!$sourceType).&&.!($preferSou
21180 72 63 65 20 26 26 20 24 73 6f 75 72 63 65 54 79 70 65 29 20 26 26 20 24 64 69 73 74 54 79 70 65 rce.&&.$sourceType).&&.$distType
211a0 29 20 7b 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 ).{.$package->setInstallationSou
211c0 72 63 65 28 27 64 69 73 74 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 73 6f 75 72 63 65 54 79 rce('dist');.}.elseif.($sourceTy
211e0 70 65 29 20 7b 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 pe).{.$package->setInstallationS
21200 6f 75 72 63 65 28 27 73 6f 75 72 63 65 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 ource('source');.}.else.{.throw.
21220 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 50 new.\InvalidArgumentException('P
21240 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 76 65 20 61 20 ackage.'.$package.'.must.have.a.
21260 73 6f 75 72 63 65 20 6f 72 20 64 69 73 74 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 24 source.or.dist.specified');.}..$
21280 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 63 74 6f 72 this->filesystem->ensureDirector
212a0 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 24 64 6f 77 6e 6c 6f 61 64 65 yExists($targetDir);..$downloade
212c0 72 20 3d 20 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 r.=.$this->getDownloaderForInsta
212e0 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 lledPackage($package);.$download
21300 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 er->download($package,.$targetDi
21320 72 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 20 r);.}...........public.function.
21340 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 61 6c update(PackageInterface.$initial
21360 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 74 61 72 ,.PackageInterface.$target,.$tar
21380 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 3e 67 getDir).{.$downloader.=.$this->g
213a0 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 65 28 etDownloaderForInstalledPackage(
213c0 24 69 6e 69 74 69 61 6c 29 3b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d $initial);.$installationSource.=
213e0 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 .$initial->getInstallationSource
21400 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
21420 6e 53 6f 75 72 63 65 29 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 nSource).{.$initialType.=.$initi
21440 61 6c 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d al->getDistType();.$targetType.=
21460 20 24 74 61 72 67 65 74 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 20 65 6c 73 65 20 .$target->getDistType();.}.else.
21480 7b 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 53 6f {.$initialType.=.$initial->getSo
214a0 75 72 63 65 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 urceType();.$targetType.=.$targe
214c0 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 61 t->getSourceType();.}....if.($ta
214e0 72 67 65 74 2d 3e 69 73 44 65 76 28 29 20 26 26 20 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 rget->isDev().&&.'dist'.===.$ins
21500 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 72 2d 3e tallationSource).{.$downloader->
21520 72 65 6d 6f 76 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 remove($initial,.$targetDir);.$t
21540 68 69 73 2d 3e 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 his->download($target,.$targetDi
21560 72 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 r);..return;.}..if.($initialType
21580 20 3d 3d 3d 20 24 74 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 .===.$targetType).{.$target->set
215a0 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e InstallationSource($installation
215c0 53 6f 75 72 63 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e Source);.$downloader->update($in
215e0 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 20 65 itial,.$target,.$targetDir);.}.e
21600 6c 73 65 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 lse.{.$downloader->remove($initi
21620 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 al,.$targetDir);.$this->download
21640 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 27 73 6f 75 72 63 65 27 20 3d ($target,.$targetDir,.'source'.=
21660 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a ==.$installationSource);.}.}....
21680 0a 0a 0a 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 ....public.function.remove(Packa
216a0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 geInterface.$package,.$targetDir
216c0 29 0a 7b 0a 24 64 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 ).{.$downloader.=.$this->getDown
216e0 6c 6f 61 64 65 72 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 loaderForInstalledPackage($packa
21700 67 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 ge);.$downloader->remove($packag
21720 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a e,.$targetDir);.}.}.<?php.......
21740 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
21760 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
21780 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 44 6f 77 eInterface;........interface.Dow
217a0 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 nloaderInterface.{......public.f
217c0 75 6e 63 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 3b unction.getInstallationSource();
217e0 0a 0a 0a 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 61 64 ........public.function.download
21800 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 61 74 (PackageInterface.$package,.$pat
21820 68 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 75 70 64 61 h);.........public.function.upda
21840 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 61 6c 2c 20 50 61 te(PackageInterface.$initial,.Pa
21860 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 61 74 68 29 3b 0a ckageInterface.$target,.$path);.
21880 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 76 65 28 50 61 .......public.function.remove(Pa
218a0 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 61 74 68 29 3b ckageInterface.$package,.$path);
218c0 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 75 74 70 75 ........public.function.setOutpu
218e0 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 3c 3f tProgress($outputProgress);.}.<?
21900 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
21920 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 70 6f 72 r\Downloader;.....class.Transpor
21940 74 45 78 63 65 70 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 tException.extends.\Exception.{.
21960 70 72 6f 74 65 63 74 65 64 20 24 68 65 61 64 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 protected.$headers;..public.func
21980 74 69 6f 6e 20 73 65 74 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 74 68 69 tion.setHeaders($headers).{.$thi
219a0 73 2d 3e 68 65 61 64 65 72 73 20 3d 20 24 68 65 61 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 s->headers.=.$headers;.}..public
219c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 61 64 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getHeaders().{.return.
219e0 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a $this->headers;.}.}.<?php.......
21a00 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
21a20 65 72 3b 0a 0a 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 er;.......class.PharDownloader.e
21a40 78 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 xtends.ArchiveDownloader.{....pr
21a60 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 20 otected.function.extract($file,.
21a80 24 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 28 $path).{...$archive.=.new.\Phar(
21aa0 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 70 61 74 $file);.$archive->extractTo($pat
21ac0 68 2c 20 6e 75 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 h,.null,.true);......}.}.<?php..
21ae0 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 6f 77 ..........namespace.Composer\Dow
21b00 6e 6c 6f 61 64 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 nloader;.......class.TarDownload
21b20 65 72 20 65 78 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 er.extends.ArchiveDownloader.{..
21b40 0a 0a 70 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 ..protected.function.extract($fi
21b60 6c 65 2c 20 24 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 le,.$path).{...$archive.=.new.\P
21b80 68 61 72 44 61 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 harData($file);.$archive->extrac
21ba0 74 54 6f 28 24 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 tTo($path,.null,.true);.}.}.<?ph
21bc0 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\
21be0 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
21c00 65 5c 50 61 63 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 e\PackageInterface;.....class.Hg
21c20 44 6f 77 6e 6c 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 Downloader.extends.VcsDownloader
21c40 0a 7b 0a 0a 0a 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 .{....public.function.doDownload
21c60 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 61 74 (PackageInterface.$package,.$pat
21c80 68 29 0a 7b 0a 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 h).{.$url.=.escapeshellarg($pack
21ca0 61 67 65 2d 3e 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 age->getSourceUrl());.$ref.=.esc
21cc0 61 70 65 73 68 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 apeshellarg($package->getSourceR
21ce0 65 66 65 72 65 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 eference());.$path.=.escapeshell
21d00 61 72 67 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 20 arg($path);.$this->io->write("..
21d20 20 20 43 6c 6f 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 ..Cloning.".$package->getSourceR
21d40 65 66 65 72 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 eference());.$command.=.sprintf(
21d60 27 68 67 20 63 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 'hg.clone.%s.%s.&&.cd.%2$s.&&.hg
21d80 20 75 70 20 25 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 .up.%s',.$url,.$path,.$ref);.if.
21da0 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 24 (0.!==.$this->process->execute($
21dc0 63 6f 6d 6d 61 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 command,.$ignoredOutput)).{.thro
21de0 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 64 20 w.new.\RuntimeException('Failed.
21e00 74 6f 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 to.execute.'...$command..."\n\n"
21e20 20 2e 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 ...$this->process->getErrorOutpu
21e40 74 28 29 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 64 6f t());.}.}.....public.function.do
21e60 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 69 61 6c Update(PackageInterface.$initial
21e80 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 61 74 ,.PackageInterface.$target,.$pat
21ea0 68 29 0a 7b 0a 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 h).{.$url.=.escapeshellarg($targ
21ec0 65 74 2d 3e 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 et->getSourceUrl());.$ref.=.esca
21ee0 70 65 73 68 65 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 peshellarg($target->getSourceRef
21f00 65 72 65 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 erence());.$path.=.escapeshellar
21f20 67 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 20 20 20 g($path);.$this->io->write("....
21f40 55 70 64 61 74 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 Updating.to.".$target->getSource
21f60 52 65 66 65 72 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 Reference());.$command.=.sprintf
21f80 28 27 63 64 20 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 ('cd.%s.&&.hg.pull.%s.&&.hg.up.%
21fa0 73 27 2c 20 24 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 s',.$path,.$url,.$ref);.if.(0.!=
21fc0 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
21fe0 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
22000 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
22020 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
22040 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());
22060 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 67 65 74 4c 6f 63 61 .}.}.....public.function.getLoca
22080 6c 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 lChanges($path).{.if.(!is_dir($p
220a0 61 74 68 2e 27 2f 2e 68 67 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d ath.'/.hg')).{.return;.}..$this-
220c0 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 25 73 >process->execute(sprintf('cd.%s
220e0 20 26 26 20 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 .&&.hg.st',.escapeshellarg($path
22100 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 69 6d 28 24 6f 75 74 70 )),.$output);..return.trim($outp
22120 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ut).?:.null;.}.....protected.fun
22140 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e ction.getCommitLogs($fromReferen
22160 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6d 6d ce,.$toReference,.$path).{.$comm
22180 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 6c 6f 67 20 2d and.=.sprintf('cd.%s.&&.hg.log.-
221a0 72 20 25 73 3a 25 73 20 2d 2d 73 74 79 6c 65 20 63 6f 6d 70 61 63 74 27 2c 20 65 73 63 61 70 65 r.%s:%s.--style.compact',.escape
221c0 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c shellarg($path),.$fromReference,
221e0 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 .$toReference);..if.(0.!==.$this
22200 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
22220 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 45 78 63 65 70 tput)).{.throw.new.\RuntimeExcep
22240 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 63 6f 6d tion('Failed.to.execute.'...$com
22260 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 73 2d 3e mand..."\n\n"...$this->process->
22280 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 getErrorOutput());.}..return.$ou
222a0 74 70 75 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 tput;.}.}.<?php............names
222c0 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 75 73 65 20 43 pace.Composer\Downloader;..use.C
222e0 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 65 omposer\Package\PackageInterface
22300 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 72 63 68 69 76 65 ;.........abstract.class.Archive
22320 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 Downloader.extends.FileDownloade
22340 72 0a 7b 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 61 64 28 r.{....public.function.download(
22360 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 61 74 68 PackageInterface.$package,.$path
22380 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 ).{.parent::download($package,.$
223a0 70 61 74 68 29 3b 0a 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 path);..$fileName.=.$this->getFi
223c0 6c 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 28 24 74 68 leName($package,.$path);.if.($th
223e0 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 69 6f is->io->isVerbose()).{.$this->io
22400 2d 3e 77 72 69 74 65 28 27 20 20 20 20 45 78 74 72 61 63 74 69 6e 67 20 61 72 63 68 69 76 65 27 ->write('....Extracting.archive'
22420 29 3b 0a 7d 0a 0a 24 74 65 6d 70 6f 72 61 72 79 44 69 72 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 );.}..$temporaryDir.=.sys_get_te
22440 6d 70 5f 64 69 72 28 29 2e 27 2f 63 6d 70 27 2e 73 75 62 73 74 72 28 6d 64 35 28 74 69 6d 65 28 mp_dir().'/cmp'.substr(md5(time(
22460 29 2e 6d 74 5f 72 61 6e 64 28 29 29 2c 20 30 2c 20 35 29 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 ).mt_rand()),.0,.5);.try.{.$this
22480 2d 3e 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 ->filesystem->ensureDirectoryExi
224a0 73 74 73 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d sts($temporaryDir);.try.{.$this-
224c0 3e 65 78 74 72 61 63 74 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 74 65 6d 70 6f 72 61 72 79 44 69 >extract($fileName,.$temporaryDi
224e0 72 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 0a 20 r);.}.catch.(\Exception.$e).{...
22500 70 61 72 65 6e 74 3a 3a 63 6c 65 61 72 43 61 63 68 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 parent::clearCache($package,.$pa
22520 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 4e 61 th);.throw.$e;.}..unlink($fileNa
22540 6d 65 29 3b 0a 0a 0a 20 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 me);....$contentDir.=.$this->lis
22560 74 46 69 6c 65 73 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 0a 0a 20 69 66 20 28 31 20 tFiles($temporaryDir);....if.(1.
22580 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 20 26 26 20 21 69 73 5f 66 69 ===.count($contentDir).&&.!is_fi
225a0 6c 65 28 24 63 6f 6e 74 65 6e 74 44 69 72 5b 30 5d 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 44 69 le($contentDir[0])).{.$contentDi
225c0 72 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 74 46 69 6c 65 73 28 24 63 6f 6e 74 65 6e 74 44 69 72 r.=.$this->listFiles($contentDir
225e0 5b 30 5d 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 [0]);.}....foreach.($contentDir.
22600 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 as.$file).{.$this->filesystem->r
22620 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 6e ename($file,.$path...'/'...basen
22640 61 6d 65 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 ame($file));.}..$this->filesyste
22660 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 m->removeDirectory($temporaryDir
22680 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 0a 20 24 );.}.catch.(\Exception.$e).{...$
226a0 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 72 this->filesystem->removeDirector
226c0 79 28 24 70 61 74 68 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 y($path);.$this->filesystem->rem
226e0 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 74 68 72 oveDirectory($temporaryDir);.thr
22700 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a ow.$e;.}..$this->io->write('');.
22720 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 67 65 74 46 69 6c 65 }.....protected.function.getFile
22740 4e 61 6d 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 Name(PackageInterface.$package,.
22760 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 70 61 74 68 2e 27 2f 27 2e $path).{.return.rtrim($path.'/'.
22780 6d 64 35 28 24 70 61 74 68 2e 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 61 63 6b 61 md5($path.spl_object_hash($packa
227a0 67 65 29 29 2e 27 2e 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 ge)).'.'.pathinfo(parse_url($pac
227c0 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 kage->getDistUrl(),.PHP_URL_PATH
227e0 29 2c 20 50 41 54 48 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 ),.PATHINFO_EXTENSION),.'.');.}.
22800 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
22820 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 2c 20 24 75 72 l(PackageInterface.$package,.$ur
22840 6c 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 l).{.if.($package->getDistRefere
22860 6e 63 65 28 29 20 26 26 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 67 69 74 68 75 62 2e 63 6f nce().&&.strpos($url,.'github.co
22880 6d 27 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a m')).{.if.(preg_match('{^https?:
228a0 2f 2f 28 3f 3a 77 77 77 5c 2e 29 3f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f //(?:www\.)?github\.com/([^/]+)/
228c0 28 5b 5e 2f 5d 2b 29 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c 6c 2f 28 2e 2b 29 24 7d 69 27 2c 20 ([^/]+)/(zip|tar)ball/(.+)$}i',.
228e0 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 $url,.$match)).{...$url.=.'https
22900 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 ://api.github.com/repos/'...$mat
22920 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 ch[1]...'/'..$match[2]...'/'...$
22940 6d 61 74 63 68 5b 33 5d 20 2e 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 match[3]...'ball/'...$package->g
22960 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 etDistReference();.}.elseif.($pa
22980 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 20 26 26 20 70 72 65 ckage->getDistReference().&&.pre
229a0 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a 77 77 77 5c 2e 29 3f 67 69 g_match('{^https?://(?:www\.)?gi
229c0 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 61 72 63 68 69 76 thub\.com/([^/]+)/([^/]+)/archiv
229e0 65 2f 2e 2b 5c 2e 28 7a 69 70 7c 74 61 72 29 28 3f 3a 5c 2e 67 7a 29 3f 24 7d 69 27 2c 20 24 75 e/.+\.(zip|tar)(?:\.gz)?$}i',.$u
22a00 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f rl,.$match)).{...$url.=.'https:/
22a20 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 /api.github.com/repos/'...$match
22a40 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 [1]...'/'..$match[2]...'/'...$ma
22a60 74 63 68 5b 33 5d 20 2e 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 tch[3]...'ball/'...$package->get
22a80 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b DistReference();.}.elseif.($pack
22aa0 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f age->getDistReference().&&.preg_
22ac0 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 61 70 69 5c 2e 67 69 74 68 75 62 5c 2e 63 match('{^https?://api\.github\.c
22ae0 6f 6d 2f 72 65 70 6f 73 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 28 7a 69 70 7c 74 61 om/repos/([^/]+)/([^/]+)/(zip|ta
22b00 72 29 62 61 6c 6c 28 3f 3a 2f 2e 2b 29 3f 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 r)ball(?:/.+)?$}i',.$url,.$match
22b20 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 )).{...$url.=.'https://api.githu
22b40 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e b.com/repos/'...$match[1]...'/'.
22b60 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 .$match[2]...'/'...$match[3]...'
22b80 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 ball/'...$package->getDistRefere
22ba0 6e 63 65 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 nce();.}.}..if.(!extension_loade
22bc0 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 d('openssl').&&.(0.===.strpos($u
22be0 72 6c 2c 20 27 68 74 74 70 73 3a 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 rl,.'https:').||.0.===.strpos($u
22c00 72 6c 2c 20 27 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 29 20 7b 0a 0a 20 69 rl,.'http://github.com'))).{...i
22c20 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3a 2f 2f 61 70 69 5c 2e 67 69 f.(preg_match('{^https://api\.gi
22c40 74 68 75 62 5c 2e 63 6f 6d 2f 72 65 70 6f 73 2f 28 5b 5e 2f 5d 2b 2f 5b 5e 2f 5d 2b 29 2f 28 7a thub\.com/repos/([^/]+/[^/]+)/(z
22c60 69 70 7c 74 61 72 29 62 61 6c 6c 2f 28 5b 5e 2f 5d 2b 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 ip|tar)ball/([^/]+)$}i',.$url,.$
22c80 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 6e 6f 64 65 6c 6f 61 match)).{.$url.=.'http://nodeloa
22ca0 64 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 d.github.com/'.$match[1].'/'.$ma
22cc0 74 63 68 5b 32 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 33 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 tch[2].'/'.$match[3];.}.elseif.(
22ce0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f preg_match('{^https://github\.co
22d00 6d 2f 28 5b 5e 2f 5d 2b 2f 5b 5e 2f 5d 2b 29 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c 6c 2f 28 5b m/([^/]+/[^/]+)/(zip|tar)ball/([
22d20 5e 2f 5d 2b 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c ^/]+)$}i',.$url,.$match)).{.$url
22d40 20 3d 20 27 68 74 74 70 3a 2f 2f 6e 6f 64 65 6c 6f 61 64 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 27 .=.'http://nodeload.github.com/'
22d60 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 2f 27 2e 24 6d 61 .$match[1].'/'.$match[2].'/'.$ma
22d80 74 63 68 5b 33 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e tch[3];.}.elseif.(preg_match('{^
22da0 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 2f 5b 5e 2f 5d 2b https://github\.com/([^/]+/[^/]+
22dc0 29 2f 61 72 63 68 69 76 65 2f 28 5b 5e 2f 5d 2b 29 5c 2e 28 7a 69 70 7c 74 61 72 5c 2e 67 7a 29 )/archive/([^/]+)\.(zip|tar\.gz)
22de0 24 7d 69 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 $}i',.$url,.$match)).{.$url.=.'h
22e00 74 74 70 3a 2f 2f 6e 6f 64 65 6c 6f 61 64 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 6d 61 74 ttp://nodeload.github.com/'.$mat
22e20 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 33 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 ch[1].'/'.$match[3].'/'.$match[2
22e40 5d 3b 0a 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 ];.}.else.{.throw.new.\RuntimeEx
22e60 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 70 65 ception('You.must.enable.the.ope
22e80 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 65 73 nssl.extension.to.download.files
22ea0 20 76 69 61 20 68 74 74 70 73 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 .via.https');.}.}..return.parent
22ec0 3a 3a 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 3b 0a 7d 0a ::processUrl($package,.$url);.}.
22ee0 0a 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 66 75 6e 63 .........abstract.protected.func
22f00 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 29 3b 0a 0a 0a 0a 0a tion.extract($file,.$path);.....
22f20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 46 69 6c 65 73 28 24 64 69 72 29 private.function.listFiles($dir)
22f40 0a 7b 0a 24 66 69 6c 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 67 6c 6f 62 28 24 64 69 .{.$files.=.array_merge(glob($di
22f60 72 20 2e 20 27 2f 2e 2a 27 29 2c 20 67 6c 6f 62 28 24 64 69 72 20 2e 20 27 2f 2a 27 29 29 3b 0a r...'/.*'),.glob($dir...'/*'));.
22f80 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 66 69 6c 74 65 .return.array_values(array_filte
22fa0 72 28 24 66 69 6c 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 29 20 7b 0a 72 65 74 75 72 r($files,.function.($el).{.retur
22fc0 6e 20 62 61 73 65 6e 61 6d 65 28 24 65 6c 29 20 21 3d 3d 20 27 2e 27 20 26 26 20 62 61 73 65 6e n.basename($el).!==.'.'.&&.basen
22fe0 61 6d 65 28 24 65 6c 29 20 21 3d 3d 20 27 2e 2e 27 3b 0a 7d 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 ame($el).!==.'..';.}));.}.}.<?ph
23000 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\
23020 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 43 6f 6e 66 69 67 Downloader;..use.Composer\Config
23040 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 70 6f 73 ;.use.Composer\Cache;.use.Compos
23060 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 75 73 65 20 43 6f 6d er\Util\ProcessExecutor;.use.Com
23080 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 5a 69 70 41 72 63 poser\IO\IOInterface;.use.ZipArc
230a0 68 69 76 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 hive;.....class.ZipDownloader.ex
230c0 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 70 72 6f 74 65 63 tends.ArchiveDownloader.{.protec
230e0 74 65 64 20 24 70 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 ted.$process;..public.function._
23100 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 2c 20 43 6f 6e 66 _construct(IOInterface.$io,.Conf
23120 69 67 20 24 63 6f 6e 66 69 67 2c 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c ig.$config,.Cache.$cache.=.null,
23140 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 3d 20 6e 75 6c 6c .ProcessExecutor.$process.=.null
23160 29 0a 7b 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 3f 3a ).{.$this->process.=.$process.?:
23180 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f .new.ProcessExecutor;.parent::__
231a0 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 63 61 63 68 65 29 3b construct($io,.$config,.$cache);
231c0 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 74 72 61 63 74 28 24 .}..protected.function.extract($
231e0 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 6e file,.$path).{.$processError.=.n
23200 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 ull;....if.(!defined('PHP_WINDOW
23220 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 S_VERSION_BUILD')).{.$command.=.
23240 27 75 6e 7a 69 70 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 66 69 6c 65 29 2e 27 'unzip.'.escapeshellarg($file).'
23260 20 2d 64 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 69 66 20 .-d.'.escapeshellarg($path);.if.
23280 28 30 20 3d 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 24 (0.===.$this->process->execute($
232a0 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 command,.$ignoredOutput)).{.retu
232c0 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 61 69 6c 65 64 20 74 rn;.}..$processError.=.'Failed.t
232e0 6f 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 o.execute.'...$command..."\n\n".
23300 2e 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 ..$this->process->getErrorOutput
23320 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 5a 69 70 41 72 63 ();.}..if.(!class_exists('ZipArc
23340 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 6e 69 50 61 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c hive')).{...$iniPath.=.php_ini_l
23360 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 oaded_file();..if.($iniPath).{.$
23380 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 iniMessage.=.'The.php.ini.used.b
233a0 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 y.your.command-line.PHP.is:.'...
233c0 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d $iniPath;.}.else.{.$iniMessage.=
233e0 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e .'A.php.ini.file.does.not.exist.
23400 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 61 74 65 20 6f 6e 65 2e 27 3b 0a .You.will.have.to.create.one.';.
23420 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 }..$error.=."Could.not.decompres
23440 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 7a 69 s.the.archive,.enable.the.PHP.zi
23460 70 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 6e 7a 69 70 2e 5c 6e 22 p.extension.or.install.unzip.\n"
23480 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 20 22 5c 6e 22 20 2e 20 24 70 72 6f 63 65 73 73 ...$iniMessage..."\n"...$process
234a0 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 Error;..if.(!defined('PHP_WINDOW
234c0 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 22 43 S_VERSION_BUILD')).{.$error.=."C
234e0 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 65 2c ould.not.decompress.the.archive,
23500 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 2e 5c 6e .enable.the.PHP.zip.extension.\n
23520 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 "...$iniMessage;.}..throw.new.\R
23540 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 7a 69 70 untimeException($error);.}..$zip
23560 41 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5a 69 70 41 72 63 68 69 76 65 28 29 3b 0a 0a 69 66 20 Archive.=.new.ZipArchive();..if.
23580 28 74 72 75 65 20 21 3d 3d 20 28 24 72 65 74 76 61 6c 20 3d 20 24 7a 69 70 41 72 63 68 69 76 65 (true.!==.($retval.=.$zipArchive
235a0 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 ->open($file))).{.throw.new.\Une
235c0 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 xpectedValueException($this->get
235e0 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 29 3b 0a 7d ErrorMessage($retval,.$file));.}
23600 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 65 78 74 72 ..if.(true.!==.$zipArchive->extr
23620 61 63 74 54 6f 28 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 actTo($path)).{.throw.new.\Runti
23640 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 54 68 65 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f 72 20 meException("There.was.an.error.
23660 65 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 5a 49 50 20 66 69 6c 65 2e 20 43 6f 72 72 75 70 74 extracting.the.ZIP.file..Corrupt
23680 20 66 69 6c 65 3f 22 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 .file?");.}..$zipArchive->close(
236a0 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 20 );.}.........protected.function.
236c0 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 66 69 6c 65 29 0a getErrorMessage($retval,.$file).
236e0 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 5a 69 70 41 72 63 {.switch.($retval).{.case.ZipArc
23700 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 72 69 6e 74 66 28 hive::ER_EXISTS:.return.sprintf(
23720 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 22 2c 20 24 66 69 "File.'%s'.already.exists.",.$fi
23740 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 4e 43 4f 4e 53 3a le);.case.ZipArchive::ER_INCONS:
23760 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 76 65 20 27 25 73 .return.sprintf("Zip.archive.'%s
23780 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 29 3b 0a 63 61 73 '.is.inconsistent.",.$file);.cas
237a0 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 74 75 72 6e 20 73 e.ZipArchive::ER_INVAL:.return.s
237c0 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 25 73 29 22 2c 20 printf("Invalid.argument.(%s)",.
237e0 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 4d 45 4d 4f $file);.case.ZipArchive::ER_MEMO
23800 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 20 66 61 69 6c 75 RY:.return.sprintf("Malloc.failu
23820 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 41 72 63 68 69 76 re.(%s)",.$file);.case.ZipArchiv
23840 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 66 28 22 4e 6f 20 e::ER_NOENT:.return.sprintf("No.
23860 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 65 29 3b 0a 63 61 such.zip.file:.'%s'",.$file);.ca
23880 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 65 74 75 72 6e 20 se.ZipArchive::ER_NOZIP:.return.
238a0 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 20 61 72 63 68 69 sprintf("'%s'.is.not.a.zip.archi
238c0 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 69 76 65 3a 3a 45 ve.",.$file);.case.ZipArchive::E
238e0 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 6e 27 74 20 6f 70 R_OPEN:.return.sprintf("Can't.op
23900 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 63 61 73 65 20 5a en.zip.file:.%s",.$file);.case.Z
23920 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 20 73 70 72 69 6e ipArchive::ER_READ:.return.sprin
23940 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 24 66 69 6c 65 29 tf("Zip.read.error.(%s)",.$file)
23960 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 3a 0a 72 65 74 75 ;.case.ZipArchive::ER_SEEK:.retu
23980 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 20 28 25 73 29 22 rn.sprintf("Zip.seek.error.(%s)"
239a0 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 73 70 72 69 6e 74 ,.$file);.default:.return.sprint
239c0 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 20 61 72 63 68 69 f("'%s'.is.not.a.valid.zip.archi
239e0 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 66 69 6c 65 2c 20 ve,.got.error.code:.%s",.$file,.
23a00 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 0a 0a 0a 0a 0a 0a $retval);.}.}.}.<?php...........
23a20 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;.
23a40 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
23a60 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 47 69 74 48 75 62 erface;.use.Composer\Util\GitHub
23a80 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 ;.....class.GitDownloader.extend
23aa0 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 61 73 53 74 s.VcsDownloader.{.private.$hasSt
23ac0 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ashedChanges.=.false;.....public
23ae0 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 61 67 65 49 6e 74 65 .function.doDownload(PackageInte
23b00 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 72 65 66 20 3d 20 rface.$package,.$path).{.$ref.=.
23b20 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 3b 0a $package->getSourceReference();.
23b40 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 25 73 20 26 26 20 63 $command.=.'git.clone.%s.%s.&&.c
23b60 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 63 6f 6d 70 6f 73 65 d.%2$s.&&.git.remote.add.compose
23b80 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 73 65 72 27 3b 0a 24 r.%1$s.&&.git.fetch.composer';.$
23ba0 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 69 6e 67 20 22 2e 24 this->io->write("....Cloning.".$
23bc0 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 41 53 53 3d 65 63 68 ref);....putenv('GIT_ASKPASS=ech
23be0 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 75 6e 63 74 69 6f 6e o');.$commandCallable.=.function
23c00 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
23c20 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
23c40 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 65 73 68 65 6c 6c 61 capeshellarg($url),.escapeshella
23c60 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 28 24 72 65 66 29 29 rg($path),.escapeshellarg($ref))
23c80 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
23ca0 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 75 72 63 65 55 72 6c Callable,.$package->getSourceUrl
23cc0 28 29 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 50 75 73 68 (),.$path,.true);.$this->setPush
23ce0 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 70 Url($package,.$path);..$this->up
23d00 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 61 dateToCommit($path,.$ref,.$packa
23d20 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 65 ge->getPrettyVersion(),.$package
23d40 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 69 ->getReleaseDate());.}.....publi
23d60 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 72 c.function.doUpdate(PackageInter
23d80 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 20 face.$initial,.PackageInterface.
23da0 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 74 $target,.$path).{.$ref.=.$target
23dc0 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 69 ->getSourceReference();.$this->i
23de0 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 65 o->write("....Checking.out.".$re
23e00 66 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 f);.$command.=.'git.remote.set-u
23e20 72 6c 20 63 6f 6d 70 6f 73 65 72 20 25 73 20 26 26 20 67 69 74 20 66 65 74 63 68 20 63 6f 6d 70 rl.composer.%s.&&.git.fetch.comp
23e40 6f 73 65 72 20 26 26 20 67 69 74 20 66 65 74 63 68 20 2d 2d 74 61 67 73 20 63 6f 6d 70 6f 73 65 oser.&&.git.fetch.--tags.compose
23e60 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 28 27 r';....$this->process->execute('
23e80 67 69 74 20 72 65 6d 6f 74 65 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b git.remote.-v',.$output,.$path);
23ea0 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 63 6f 6d 70 6f 73 65 72 7c 6f .if.(preg_match('{^(?:composer|o
23ec0 72 69 67 69 6e 29 5c 73 2b 68 74 74 70 73 3f 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 28 5b 5e 2f rigin)\s+https?://(.+):(.+)@([^/
23ee0 5d 2b 29 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 0a 24 74 68 ]+)}im',.$output,.$match)).{.$th
23f00 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 is->io->setAuthentication($match
23f20 5b 33 5d 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 31 5d 29 2c 20 75 72 6c 64 65 [3],.urldecode($match[1]),.urlde
23f40 63 6f 64 65 28 24 6d 61 74 63 68 5b 32 5d 29 29 3b 0a 7d 0a 0a 0a 20 70 75 74 65 6e 76 28 27 47 code($match[2]));.}....putenv('G
23f60 49 54 5f 41 53 4b 50 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 IT_ASKPASS=echo');.$commandCalla
23f80 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 24 75 72 6c 29 20 75 73 65 20 28 24 63 6f 6d 6d 61 ble.=.function($url).use.($comma
23fa0 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 61 6e 64 2c 20 65 nd).{.return.sprintf($command,.e
23fc0 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d scapeshellarg($url));.};..$this-
23fe0 3e 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 6c 65 2c 20 24 74 >runCommand($commandCallable,.$t
24000 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 74 68 29 3b 0a 24 arget->getSourceUrl(),.$path);.$
24020 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 20 24 72 65 66 this->updateToCommit($path,.$ref
24040 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 28 29 2c 20 24 ,.$target->getPrettyVersion(),.$
24060 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 7d 0a 0a 0a 0a target->getReleaseDate());.}....
24080 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 43 68 61 6e 67 65 73 .public.function.getLocalChanges
240a0 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 67 ($path).{.if.(!is_dir($path.'/.g
240c0 69 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 it')).{.return;.}..$command.=.'g
240e0 69 74 20 73 74 61 74 75 73 20 2d 2d 70 6f 72 63 65 6c 61 69 6e 20 2d 2d 75 6e 74 72 61 63 6b 65 it.status.--porcelain.--untracke
24100 64 2d 66 69 6c 65 73 3d 6e 6f 27 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 d-files=no';.if.(0.!==.$this->pr
24120 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
24140 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
24160 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.'...$
24180 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
241a0 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 72 65 74 75 72 6e 20 s->getErrorOutput());.}..return.
241c0 74 72 69 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f trim($output).?:.null;.}.....pro
241e0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 tected.function.cleanChanges($pa
24200 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 69 66 20 28 21 24 63 68 61 6e 67 65 73 20 3d 20 24 th,.$update).{.if.(!$changes.=.$
24220 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 29 20 7b 0a this->getLocalChanges($path)).{.
24240 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 return;.}..if.(!$this->io->isInt
24260 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 20 3d 20 eractive()).{.$discardChanges.=.
24280 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 64 69 73 63 61 72 64 2d 63 68 61 6e $this->config->get('discard-chan
242a0 67 65 73 27 29 3b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 64 69 73 63 61 72 64 43 68 61 6e ges');.if.(true.===.$discardChan
242c0 67 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e ges).{.return.$this->discardChan
242e0 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 64 ges($path);.}.if.('stash'.===.$d
24300 69 73 63 61 72 64 43 68 61 6e 67 65 73 29 20 7b 0a 69 66 20 28 21 24 75 70 64 61 74 65 29 20 7b iscardChanges).{.if.(!$update).{
24320 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 .return.parent::cleanChanges($pa
24340 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 th,.$update);.}..return.$this->s
24360 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 tashChanges($path);.}..return.pa
24380 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 74 68 2c 20 24 75 70 64 61 74 rent::cleanChanges($path,.$updat
243a0 65 29 3b 0a 7d 0a 0a 24 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 e);.}..$changes.=.array_map(func
243c0 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c tion.($elem).{.return.'....'.$el
243e0 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d em;.},.preg_split('{\s*\r?\n\s*}
24400 27 2c 20 24 63 68 61 6e 67 65 73 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 ',.$changes));.$this->io->write(
24420 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 '....<error>The.package.has.modi
24440 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f fied.files:</error>');.$this->io
24460 2d 3e 77 72 69 74 65 28 61 72 72 61 79 5f 73 6c 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c ->write(array_slice($changes,.0,
24480 20 31 30 29 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 .10));.if.(count($changes).>.10)
244a0 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 3c 69 6e 66 6f 3e 27 .{.$this->io->write('....<info>'
244c0 2e 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 .count($changes).-.10...'.more.f
244e0 69 6c 65 73 20 6d 6f 64 69 66 69 65 64 2c 20 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 iles.modified,.choose."v".to.vie
24500 77 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 w.the.full.list</info>');.}..whi
24520 6c 65 20 28 74 72 75 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 le.(true).{.switch.($this->io->a
24540 73 6b 28 27 20 20 20 20 3c 69 6e 66 6f 3e 44 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 sk('....<info>Discard.changes.[y
24560 2c 6e 2c 76 2c 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 73 2c 27 20 3a 20 27 27 29 2e 27 3f 5d ,n,v,'.($update.?.'s,'.:.'').'?]
24580 3f 3c 2f 69 6e 66 6f 3e 20 27 2c 20 27 3f 27 29 29 20 7b 0a 63 61 73 65 20 27 79 27 3a 0a 24 74 ?</info>.',.'?')).{.case.'y':.$t
245a0 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 his->discardChanges($path);.brea
245c0 6b 20 32 3b 0a 0a 63 61 73 65 20 27 73 27 3a 0a 69 66 20 28 21 24 75 70 64 61 74 65 29 20 7b 0a k.2;..case.'s':.if.(!$update).{.
245e0 67 6f 74 6f 20 68 65 6c 70 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 61 73 68 43 68 61 6e 67 65 goto.help;.}..$this->stashChange
24600 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 6e 27 3a 0a 74 68 s($path);.break.2;..case.'n':.th
24620 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 55 70 64 61 74 row.new.\RuntimeException('Updat
24640 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 76 27 3a 0a 24 74 68 69 73 2d 3e 69 e.aborted');..case.'v':.$this->i
24660 6f 2d 3e 77 72 69 74 65 28 24 63 68 61 6e 67 65 73 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 o->write($changes);.break;..case
24680 20 27 3f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 68 65 6c 70 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e .'?':.default:.help:.$this->io->
246a0 77 72 69 74 65 28 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 64 69 73 63 61 72 64 20 63 68 write(array(.'....y.-.discard.ch
246c0 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f anges.and.apply.the.'.($update.?
246e0 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a 27 20 20 20 20 6e .'update'.:.'uninstall'),.'....n
24700 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 .-.abort.the.'.($update.?.'updat
24720 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 20 6c 65 74 20 79 6f 75 20 e'.:.'uninstall').'.and.let.you.
24740 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 27 2c 0a 27 20 20 20 20 manually.clean.things.up',.'....
24760 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 2c 0a 29 29 3b 0a 69 66 v.-.view.modified.files',.));.if
24780 20 28 24 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 20 .($update).{.$this->io->write('.
247a0 20 20 20 73 20 2d 20 73 74 61 73 68 20 63 68 61 6e 67 65 73 20 61 6e 64 20 74 72 79 20 74 6f 20 ...s.-.stash.changes.and.try.to.
247c0 72 65 61 70 70 6c 79 20 74 68 65 6d 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 27 29 3b reapply.them.after.the.update');
247e0 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3f 20 2d 20 70 72 69 .}.$this->io->write('....?.-.pri
24800 6e 74 20 68 65 6c 70 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 nt.help');.break;.}.}.}.....prot
24820 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 ected.function.reapplyChanges($p
24840 61 74 68 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e ath).{.if.($this->hasStashedChan
24860 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 20 ges).{.$this->hasStashedChanges.
24880 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c =.false;.$this->io->write('....<
248a0 69 6e 66 6f 3e 52 65 2d 61 70 70 6c 79 69 6e 67 20 73 74 61 73 68 65 64 20 63 68 61 6e 67 65 73 info>Re-applying.stashed.changes
248c0 27 29 3b 0a 69 66 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 ');.if.(0.!==.$this->process->ex
248e0 65 63 75 74 65 28 27 67 69 74 20 73 74 61 73 68 20 70 6f 70 27 2c 20 24 6f 75 74 70 75 74 2c 20 ecute('git.stash.pop',.$output,.
24900 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 63 65 $path)).{.throw.new.\RuntimeExce
24920 70 74 69 6f 6e 28 22 46 61 69 6c 65 64 20 74 6f 20 61 70 70 6c 79 20 73 74 61 73 68 65 64 20 63 ption("Failed.to.apply.stashed.c
24940 68 61 6e 67 65 73 3a 5c 6e 5c 6e 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 hanges:\n\n".$this->process->get
24960 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 ErrorOutput());.}.}.}..protected
24980 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 .function.updateToCommit($path,.
249a0 24 72 65 66 65 72 65 6e 63 65 2c 20 24 62 72 61 6e 63 68 2c 20 24 64 61 74 65 29 0a 7b 0a 24 74 $reference,.$branch,.$date).{.$t
249c0 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 73 20 26 26 20 67 69 emplate.=.'git.checkout.%s.&&.gi
249e0 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 31 24 73 27 3b 0a 24 62 72 61 6e 63 68 20 3d 20 t.reset.--hard.%1$s';.$branch.=.
24a00 70 72 65 67 5f 72 65 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 preg_replace('{(?:^dev-|(?:\.x)?
24a20 2d 64 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 62 72 61 6e 63 68 29 3b 0a 0a 24 62 72 61 6e 63 -dev$)}i',.'',.$branch);..$branc
24a40 68 65 73 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f hes.=.null;.if.(0.===.$this->pro
24a60 63 65 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 cess->execute('git.branch.-r',.$
24a80 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 6f output,.$path)).{.$branches.=.$o
24aa0 75 74 70 75 74 3b 0a 7d 0a 0a 0a 20 24 67 69 74 52 65 66 20 3d 20 24 72 65 66 65 72 65 6e 63 65 utput;.}....$gitRef.=.$reference
24ac0 3b 0a 69 66 20 28 21 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 ;.if.(!preg_match('{^[a-f0-9]{40
24ae0 7d 24 7d 27 2c 20 24 72 65 66 65 72 65 6e 63 65 29 0a 26 26 20 24 62 72 61 6e 63 68 65 73 0a 26 }$}',.$reference).&&.$branches.&
24b00 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 &.preg_match('{^\s+composer/'.pr
24b20 65 67 5f 71 75 6f 74 65 28 24 72 65 66 65 72 65 6e 63 65 29 2e 27 24 7d 6d 27 2c 20 24 6f 75 74 eg_quote($reference).'$}m',.$out
24b40 70 75 74 29 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 put).).{.$command.=.sprintf('git
24b60 20 63 68 65 63 6b 6f 75 74 20 2d 42 20 25 73 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 20 .checkout.-B.%s.%s.&&.git.reset.
24b80 2d 2d 68 61 72 64 20 25 32 24 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 --hard.%2$s',.escapeshellarg($br
24ba0 61 6e 63 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 27 63 6f 6d 70 6f 73 65 72 2f anch),.escapeshellarg('composer/
24bc0 27 2e 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 2d '.$reference));.if.(0.===.$this-
24be0 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 74 >process->execute($command,.$out
24c00 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 7d 0a 0a 0a 20 69 66 put,.$path)).{.return;.}.}....if
24c20 20 28 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 .(preg_match('{^[a-f0-9]{40}$}',
24c40 20 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 .$reference)).{...if.(!preg_matc
24c60 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 h('{^\s+composer/'.preg_quote($b
24c80 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 20 26 26 20 70 72 65 67 ranch).'$}m',.$branches).&&.preg
24ca0 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 76 27 2e 70 72 65 67 5f 71 75 _match('{^\s+composer/v'.preg_qu
24cc0 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 29 20 ote($branch).'$}m',.$branches)).
24ce0 7b 0a 24 62 72 61 6e 63 68 20 3d 20 27 76 27 20 2e 20 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 24 63 {.$branch.=.'v'...$branch;.}..$c
24d00 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 ommand.=.sprintf('git.checkout.%
24d20 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 61 6e 63 68 29 29 3b 0a 24 66 s',.escapeshellarg($branch));.$f
24d40 61 6c 6c 62 61 63 6b 43 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 allbackCommand.=.sprintf('git.ch
24d60 65 63 6b 6f 75 74 20 2d 42 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 eckout.-B.%s.%s',.escapeshellarg
24d80 28 24 62 72 61 6e 63 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 27 63 6f 6d 70 6f ($branch),.escapeshellarg('compo
24da0 73 65 72 2f 27 2e 24 62 72 61 6e 63 68 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 ser/'.$branch));.if.(0.===.$this
24dc0 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
24de0 74 70 75 74 2c 20 24 70 61 74 68 29 0a 7c 7c 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f tput,.$path).||.0.===.$this->pro
24e00 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 66 61 6c 6c 62 61 63 6b 43 6f 6d 6d 61 6e 64 2c 20 cess->execute($fallbackCommand,.
24e20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 $output,.$path).).{.$command.=.s
24e40 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 73 27 2c 20 65 73 printf('git.reset.--hard.%s',.es
24e60 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 72 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 capeshellarg($reference));.if.(0
24e80 20 3d 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 24 63 6f .===.$this->process->execute($co
24ea0 6d 6d 61 6e 64 2c 20 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 mmand,.$output,.$path)).{.return
24ec0 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 24 74 65 6d ;.}.}.}..$command.=.sprintf($tem
24ee0 70 6c 61 74 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 67 69 74 52 65 66 29 29 3b plate,.escapeshellarg($gitRef));
24f00 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 3e 65 78 65 63 75 .if.(0.===.$this->process->execu
24f20 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a te($command,.$output,.$path)).{.
24f40 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 64 61 74 65 20 26 26 20 66 61 6c 73 65 20 return;.}....if.($date.&&.false.
24f60 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 !==.strpos($this->process->getEr
24f80 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 24 64 61 74 rorOutput(),.$reference)).{.$dat
24fa0 65 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 0a 0a 20 24 63 6f 6d 6d e.=.$date->format('U');....$comm
24fc0 61 6e 64 20 3d 20 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 3b 0a 69 66 20 28 30 20 21 3d 3d and.=.'git.branch.-r';.if.(0.!==
24fe0 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 6e .$this->process->execute($comman
25000 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 d,.$output,.$path)).{.throw.new.
25020 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 65 \RuntimeException('Failed.to.exe
25040 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 68 cute.'...$command..."\n\n"...$th
25060 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 0a is->process->getErrorOutput());.
25080 7d 0a 0a 24 67 75 65 73 73 54 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 6c 6f 67 20 2d 2d 75 }..$guessTemplate.=.'git.log.--u
250a0 6e 74 69 6c 3d 25 73 20 2d 2d 64 61 74 65 3d 72 61 77 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d ntil=%s.--date=raw.-n1.--pretty=
250c0 25 25 48 20 25 73 27 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 %%H.%s';.foreach.($this->process
250e0 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 6e 65 29 20 ->splitLines($output).as.$line).
25100 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 {.if.(preg_match('{^composer/'.p
25120 72 65 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 28 3f 3a 5c 2e 78 29 3f 24 7d 69 27 reg_quote($branch).'(?:\.x)?$}i'
25140 2c 20 74 72 69 6d 28 24 6c 69 6e 65 29 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 ,.trim($line))).{...if.(0.===.$t
25160 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 66 28 24 67 his->process->execute(sprintf($g
25180 75 65 73 73 54 65 6d 70 6c 61 74 65 2c 20 24 64 61 74 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c uessTemplate,.$date,.escapeshell
251a0 61 72 67 28 74 72 69 6d 28 24 6c 69 6e 65 29 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 arg(trim($line))),.$output,.$pat
251c0 68 29 29 20 7b 0a 24 6e 65 77 52 65 66 65 72 65 6e 63 65 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 h)).{.$newReference.=.trim($outp
251e0 75 74 29 3b 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6e ut);.}..break;.}.}..if.(empty($n
25200 65 77 52 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 ewReference)).{...if.(0.!==.$thi
25220 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 24 67 75 65 s->process->execute(sprintf($gue
25240 73 73 54 65 6d 70 6c 61 74 65 2c 20 24 64 61 74 65 2c 20 27 2d 2d 61 6c 6c 27 29 2c 20 24 6f 75 ssTemplate,.$date,.'--all'),.$ou
25260 74 70 75 74 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 tput,.$path)).{.throw.new.\Runti
25280 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 27 meException('Failed.to.execute.'
252a0 20 2e 20 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 ...$this->sanitizeUrl($command).
252c0 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
252e0 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 3d 20 rorOutput());.}.$newReference.=.
25300 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 20 73 trim($output);.}....$command.=.s
25320 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 72 67 printf($template,.escapeshellarg
25340 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 2d 3e ($reference));.if.(0.===.$this->
25360 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 74 70 process->execute($command,.$outp
25380 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 28 27 ut,.$path)).{.$this->io->write('
253a0 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 73 74 ....'.$reference.'.is.gone.(hist
253c0 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 20 62 ory.was.rewritten?),.recovered.b
253e0 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 29 3b y.checking.out.'.$newReference);
25400 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 69 6d ..return;.}.}..throw.new.\Runtim
25420 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 27 20 eException('Failed.to.execute.'.
25440 2e 20 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e ..$this->sanitizeUrl($command)..
25460 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 72 ."\n\n"...$this->process->getErr
25480 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 orOutput());.}...........protect
254a0 65 64 20 66 75 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 ed.function.runCommand($commandC
254c0 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 69 6e 69 74 69 61 6c 43 6c 6f allable,.$url,.$cwd,.$initialClo
254e0 6e 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 ne.=.false).{.if.($initialClone)
25500 20 7b 0a 24 6f 72 69 67 43 77 64 20 3d 20 24 63 77 64 3b 0a 24 63 77 64 20 3d 20 6e 75 6c 6c 3b .{.$origCwd.=.$cwd;.$cwd.=.null;
25520 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d .}..if.(preg_match('{^ssh://[^@]
25540 2b 40 5b 5e 3a 5d 2b 3a 5b 5e 30 2d 39 5d 2b 7d 27 2c 20 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f +@[^:]+:[^0-9]+}',.$url)).{.thro
25560 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(
25580 27 54 68 65 20 73 6f 75 72 63 65 20 55 52 4c 20 27 2e 24 75 72 6c 2e 27 20 69 73 20 69 6e 76 61 'The.source.URL.'.$url.'.is.inva
255a0 6c 69 64 2c 20 73 73 68 20 55 52 4c 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 70 6f 72 74 lid,.ssh.URLs.should.have.a.port
255c0 20 6e 75 6d 62 65 72 20 61 66 74 65 72 20 22 3a 22 2e 27 2e 22 5c 6e 22 2e 27 55 73 65 20 73 73 .number.after.":".'."\n".'Use.ss
255e0 68 3a 2f 2f 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 32 32 2f 70 61 74 68 20 6f 72 20 6a h://git@example.com:22/path.or.j
25600 75 73 74 20 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 70 61 74 68 20 69 66 20 79 6f 75 20 ust.git@example.com:path.if.you.
25620 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 70 61 73 73 77 6f 72 do.not.want.to.provide.a.passwor
25640 64 20 6f 72 20 63 75 73 74 6f 6d 20 70 6f 72 74 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 d.or.custom.port.');.}....if.(pr
25660 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 28 3a 2f 2f 67 69 eg_match('{^(?:https?|git)(://gi
25680 74 68 75 62 2e 63 6f 6d 2f 2e 2a 29 7d 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b thub.com/.*)}',.$url,.$match)).{
256a0 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 .$protocols.=.$this->config->get
256c0 28 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 29 3b 0a 69 66 20 28 21 69 73 5f 61 72 ('github-protocols');.if.(!is_ar
256e0 72 61 79 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ray($protocols)).{.throw.new.\Ru
25700 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6e 66 69 67 20 76 61 6c 75 65 20 22 67 69 ntimeException('Config.value."gi
25720 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 thub-protocols".must.be.an.array
25740 2c 20 67 6f 74 20 27 2e 67 65 74 74 79 70 65 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 3b 0a 7d 0a ,.got.'.gettype($protocols));.}.
25760 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 68 20 28 24 70 $messages.=.array();.foreach.($p
25780 72 6f 74 6f 63 6f 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 rotocols.as.$protocol).{.$url.=.
257a0 24 70 72 6f 74 6f 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 $protocol...$match[1];.if.(0.===
257c0 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 63 61 6c 6c 5f 75 73 .$this->process->execute(call_us
257e0 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 24 75 72 6c 29 2c er_func($commandCallable,.$url),
25800 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 72 65 74 75 72 6e .$ignoredOutput,.$cwd)).{.return
25820 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 2d 20 27 20 2e 20 24 75 72 6c 20 2e 20 ;.}.$messages[].=.'-.'...$url...
25840 22 5c 6e 22 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 23 6d 27 2c 20 27 20 20 27 "\n"...preg_replace('#^#m',.'..'
25860 2c 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 ,.$this->process->getErrorOutput
25880 28 29 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 74 68 69 73 2d ());.if.($initialClone).{.$this-
258a0 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 72 79 28 24 6f 72 >filesystem->removeDirectory($or
258c0 69 67 43 77 64 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 igCwd);.}.}....$this->throwExcep
258e0 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 20 2e 20 24 74 68 69 73 2d tion('Failed.to.clone.'...$this-
25900 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 20 2e 27 20 76 69 61 20 67 69 74 2c 20 68 >sanitizeUrl($url)..'.via.git,.h
25920 74 74 70 73 20 61 6e 64 20 68 74 74 70 20 70 72 6f 74 6f 63 6f 6c 73 2c 20 61 62 6f 72 74 69 6e ttps.and.http.protocols,.abortin
25940 67 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 g.'..."\n\n"...implode("\n",.$me
25960 73 73 61 67 65 73 29 2c 20 24 75 72 6c 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 ssages),.$url);.}..$command.=.ca
25980 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 24 ll_user_func($commandCallable,.$
259a0 75 72 6c 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e url);.if.(0.!==.$this->process->
259c0 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 64 4f 75 74 70 75 74 execute($command,.$ignoredOutput
259e0 2c 20 24 63 77 64 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 67 ,.$cwd)).{...if.(preg_match('{^g
25a00 69 74 40 28 67 69 74 68 75 62 2e 63 6f 6d 29 3a 28 2e 2b 3f 29 5c 2e 67 69 74 24 7d 69 27 2c 20 it@(github.com):(.+?)\.git$}i',.
25a20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d $url,.$match)).{.if.(!$this->io-
25a40 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b >hasAuthentication($match[1])).{
25a60 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d .$gitHubUtil.=.new.GitHub($this-
25a80 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 >io,.$this->config,.$this->proce
25aa0 73 73 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6c 6f 6e 69 6e 67 20 66 61 69 6c 65 64 20 ss);.$message.=.'Cloning.failed.
25ac0 75 73 69 6e 67 20 61 6e 20 73 73 68 20 6b 65 79 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 61 74 using.an.ssh.key.for.authenticat
25ae0 69 6f 6e 2c 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 ion,.enter.your.GitHub.credentia
25b00 6c 73 20 74 6f 20 61 63 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 3b 0a 0a 69 66 ls.to.access.private.repos';..if
25b20 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 .(!$gitHubUtil->authorizeOAuth($
25b40 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 match[1]).&&.$this->io->isIntera
25b60 63 74 69 76 65 28 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a ctive()).{.$gitHubUtil->authoriz
25b80 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6d 61 74 63 68 5b 31 5d 2c 20 24 eOAuthInteractively($match[1],.$
25ba0 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 message);.}.}..if.($this->io->ha
25bc0 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b 0a 24 61 sAuthentication($match[1])).{.$a
25be0 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 uth.=.$this->io->getAuthenticati
25c00 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 27 on($match[1]);.$url.=.'https://'
25c20 2e 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 29 20 2e 20 .urlencode($auth['username'])...
25c40 27 3a 27 20 2e 20 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 ':'...urlencode($auth['password'
25c60 5d 29 20 2e 20 27 40 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 ])...'@'.$match[1].'/'.$match[2]
25c80 2e 27 2e 67 69 74 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 .'.git';..$command.=.call_user_f
25ca0 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 20 unc($commandCallable,.$url);.if.
25cc0 28 30 20 3d 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 24 (0.===.$this->process->execute($
25ce0 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 command,.$ignoredOutput,.$cwd)).
25d00 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 20 0a 20 24 74 68 69 73 {.return;.}.}.}.elseif.(...$this
25d20 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 0a 70 72 65 67 5f 6d 61 ->io->isInteractive().&&.preg_ma
25d40 74 63 68 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 29 28 5b 5e 2f 5d 2b 29 28 2e 2a 29 24 7d 69 27 tch('{(https?://)([^/]+)(.*)$}i'
25d60 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 20 26 26 0a 73 74 72 70 6f 73 28 24 74 68 69 73 2d ,.$url,.$match).&&.strpos($this-
25d80 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 27 66 61 74 >process->getErrorOutput(),.'fat
25da0 61 6c 3a 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 66 61 69 6c 65 64 27 29 20 21 3d 3d 20 al:.Authentication.failed').!==.
25dc0 66 61 6c 73 65 0a 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 false.).{.if.($this->io->hasAuth
25de0 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d entication($match[2])).{.$auth.=
25e00 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d .$this->io->getAuthentication($m
25e20 61 74 63 68 5b 32 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 atch[2]);.}.else.{.$this->io->wr
25e40 69 74 65 28 24 75 72 6c 2e 27 20 72 65 71 75 69 72 65 73 20 41 75 74 68 65 6e 74 69 63 61 74 69 ite($url.'.requires.Authenticati
25e60 6f 6e 27 29 3b 0a 24 61 75 74 68 20 3d 20 61 72 72 61 79 28 0a 27 75 73 65 72 6e 61 6d 65 27 20 on');.$auth.=.array(.'username'.
25e80 3d 3e 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 27 29 2c =>.$this->io->ask('Username:.'),
25ea0 0a 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 .'password'.=>.$this->io->askAnd
25ec0 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 2c 0a 29 3b 0a 7d 0a 0a HideAnswer('Password:.'),.);.}..
25ee0 24 75 72 6c 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 $url.=.$match[1].urlencode($auth
25f00 5b 27 75 73 65 72 6e 61 6d 65 27 5d 29 2e 27 3a 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 ['username']).':'.urlencode($aut
25f20 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 2e 27 40 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 24 6d 61 h['password']).'@'.$match[2].$ma
25f40 74 63 68 5b 33 5d 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 tch[3];..$command.=.call_user_fu
25f60 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 20 28 nc($commandCallable,.$url);.if.(
25f80 30 20 3d 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 24 63 0.===.$this->process->execute($c
25fa0 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b ommand,.$ignoredOutput,.$cwd)).{
25fc0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d .$this->io->setAuthentication($m
25fe0 61 74 63 68 5b 32 5d 2c 20 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 2c 20 24 61 75 74 atch[2],.$auth['username'],.$aut
26000 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 69 66 h['password']);..return;.}.}..if
26020 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 .($initialClone).{.$this->filesy
26040 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 6f 72 69 67 43 77 64 29 3b stem->removeDirectory($origCwd);
26060 0a 7d 0a 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 .}.$this->throwException('Failed
26080 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 .to.execute.'...$this->sanitizeU
260a0 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 rl($command)..."\n\n"...$this->p
260c0 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 72 6c 29 3b rocess->getErrorOutput(),.$url);
260e0 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 74 68 72 6f 77 45 78 .}.}..protected.function.throwEx
26100 63 65 70 74 69 6f 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 ception($message,.$url).{.if.(0.
26120 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 27 67 69 74 !==.$this->process->execute('git
26140 20 2d 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 .--version',.$ignoredOutput)).{.
26160 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 46 61 69 throw.new.\RuntimeException('Fai
26180 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 led.to.clone.'.$this->sanitizeUr
261a0 6c 28 24 75 72 6c 29 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 l($url).',.git.was.not.found,.ch
261c0 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 6e 64 20 69 6e 20 eck.that.it.is.installed.and.in.
261e0 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 20 24 74 68 69 73 your.PATH.env.'..."\n\n"...$this
26200 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 0a 7d 0a ->process->getErrorOutput());.}.
26220 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 24 6d 65 .throw.new.\RuntimeException($me
26240 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 69 6f 6e 20 73 61 ssage);.}..protected.function.sa
26260 6e 69 74 69 7a 65 55 72 6c 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 nitizeUrl($message).{.return.pre
26280 67 5f 72 65 70 6c 61 63 65 28 27 7b 3a 2f 2f 28 2e 2b 3f 29 3a 2e 2b 3f 40 7d 27 2c 20 27 3a 2f g_replace('{://(.+?):.+?@}',.':/
262a0 2f 24 31 3a 2a 2a 2a 40 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 /$1:***@',.$message);.}..protect
262c0 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 75 73 68 55 72 6c 28 50 61 63 6b 61 67 65 49 6e ed.function.setPushUrl(PackageIn
262e0 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 0a 20 69 66 20 terface.$package,.$path).{...if.
26300 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f (preg_match('{^(?:https?|git)://
26320 67 69 74 68 75 62 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 3f 29 28 3f 3a 5c 2e github.com/([^/]+)/([^/]+?)(?:\.
26340 67 69 74 29 3f 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c git)?$}',.$package->getSourceUrl
26360 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 67 69 74 40 67 (),.$match)).{.$pushUrl.=.'git@g
26380 69 74 68 75 62 2e 63 6f 6d 3a 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 ithub.com:'.$match[1].'/'.$match
263a0 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 [2].'.git';.$cmd.=.sprintf('git.
263c0 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 2d 2d 70 75 73 68 20 6f 72 69 67 69 6e 20 25 73 27 remote.set-url.--push.origin.%s'
263e0 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 75 73 68 55 72 6c 29 29 3b 0a 24 74 68 ,.escapeshellarg($pushUrl));.$th
26400 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 69 67 6e 6f is->process->execute($cmd,.$igno
26420 72 65 64 4f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 redOutput,.$path);.}.}.....prote
26440 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f cted.function.getCommitLogs($fro
26460 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 mReference,.$toReference,.$path)
26480 0a 7b 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 6c 6f 67 20 25 .{.$command.=.sprintf('git.log.%
264a0 73 2e 2e 25 73 20 2d 2d 70 72 65 74 74 79 3d 66 6f 72 6d 61 74 3a 22 25 25 68 20 2d 20 25 25 61 s..%s.--pretty=format:"%%h.-.%%a
264c0 6e 3a 20 25 25 73 22 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 n:.%%s"',.$fromReference,.$toRef
264e0 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 erence);..if.(0.!==.$this->proce
26500 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 2c 20 24 ss->execute($command,.$output,.$
26520 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 63 65 70 path)).{.throw.new.\RuntimeExcep
26540 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 63 6f 6d tion('Failed.to.execute.'...$com
26560 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 73 2d 3e mand..."\n\n"...$this->process->
26580 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 getErrorOutput());.}..return.$ou
265a0 74 70 75 74 3b 0a 7d 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 tput;.}......protected.function.
265c0 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 30 20 21 3d discardChanges($path).{.if.(0.!=
265e0 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 72 =.$this->process->execute('git.r
26600 65 73 65 74 20 2d 2d 68 61 72 64 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b eset.--hard',.$output,.$path)).{
26620 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 22 43 6f .throw.new.\RuntimeException("Co
26640 75 6c 64 20 6e 6f 74 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 uld.not.reset.changes\n\n:".$thi
26660 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 0a 7d s->process->getErrorOutput());.}
26680 0a 7d 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 73 74 61 73 68 .}......protected.function.stash
266a0 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 Changes($path).{.if.(0.!==.$this
266c0 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 74 61 73 68 27 2c 20 ->process->execute('git.stash',.
266e0 24 6f 75 74 70 75 74 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 $output,.$path)).{.throw.new.\Ru
26700 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 73 74 61 73 68 20 ntimeException("Could.not.stash.
26720 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 changes\n\n:".$this->process->ge
26740 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 tErrorOutput());.}..$this->hasSt
26760 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ashedChanges.=.true;.}.}.<?php..
26780 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
267a0 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 52 65 70 6f ository;.......class.InvalidRepo
267c0 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 sitoryException.extends.\Excepti
267e0 6f 6e 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 63 on.{.}.<?php............namespac
26800 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 70 e.Composer\Repository;..use.Comp
26820 6f 73 65 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 oser\Package\AliasPackage;.use.C
26840 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 65 omposer\Package\PackageInterface
26860 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 ;.use.Composer\Package\CompleteP
26880 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
268a0 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 3b 0a 0a 0a 0a ckage\Version\VersionParser;....
268c0 0a 0a 0a 63 6c 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 ...class.ArrayRepository.impleme
268e0 6e 74 73 20 52 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 nts.RepositoryInterface.{.protec
26900 74 65 64 20 24 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 ted.$packages;..public.function.
26920 5f 5f 63 6f 6e 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 __construct(array.$packages.=.ar
26940 72 61 79 28 29 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 ray()).{.foreach.($packages.as.$
26960 70 61 63 6b 61 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 package).{.$this->addPackage($pa
26980 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 63 74 69 6f 6e 20 ckage);.}.}.....public.function.
269a0 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 7b 0a 0a findPackage($name,.$version).{..
269c0 20 24 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 .$versionParser.=.new.VersionPar
269e0 73 65 72 28 29 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 ser();.$version.=.$versionParser
26a00 2d 3e 6e 6f 72 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 ->normalize($version);.$name.=.s
26a20 74 72 74 6f 6c 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 trtolower($name);..foreach.($thi
26a40 73 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 29 20 7b 0a s->getPackages().as.$package).{.
26a60 69 66 20 28 24 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 if.($name.===.$package->getName(
26a80 29 20 26 26 20 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 ).&&.$version.===.$package->getV
26aa0 65 72 73 69 6f 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 ersion()).{.return.$package;.}.}
26ac0 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 63 6b 61 .}.....public.function.findPacka
26ae0 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 0a 0a 20 ges($name,.$version.=.null).{...
26b00 24 6e 61 6d 65 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 $name.=.strtolower($name);....if
26b20 20 28 6e 75 6c 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 .(null.!==.$version).{.$versionP
26b40 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 3b 0a 24 76 65 arser.=.new.VersionParser();.$ve
26b60 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 6d 61 6c 69 7a rsion.=.$versionParser->normaliz
26b80 65 28 24 76 65 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 e($version);.}..$packages.=.arra
26ba0 79 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 65 y();..foreach.($this->getPackage
26bc0 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 2d s().as.$package).{.if.($package-
26be0 3e 67 65 74 4e 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 >getName().===.$name.&&.(null.==
26c00 3d 20 24 76 65 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 =.$version.||.$version.===.$pack
26c20 61 67 65 2d 3e 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 age->getVersion())).{.$packages[
26c40 5d 20 3d 20 24 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 ].=.$package;.}.}..return.$packa
26c60 67 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 73 65 61 72 63 ges;.}.....public.function.searc
26c80 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 72 65 67 65 78 20 3d 20 h($query,.$mode.=.0).{.$regex.=.
26ca0 27 7b 28 3f 3a 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 '{(?:'.implode('|',.preg_split('
26cc0 7b 5c 73 2b 7d 27 2c 20 24 71 75 65 72 79 29 29 2e 27 29 7d 69 27 3b 0a 0a 24 6d 61 74 63 68 65 {\s+}',.$query)).')}i';..$matche
26ce0 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 3e 67 65 74 s.=.array();.foreach.($this->get
26d00 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 24 6e 61 6d 65 20 Packages().as.$package).{.$name.
26d20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 =.$package->getName();.if.(isset
26d40 28 24 6d 61 74 63 68 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d ($matches[$name])).{.continue;.}
26d60 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 6e 61 6d 65 29 0a 7c .if.(preg_match($regex,.$name).|
26d80 7c 20 28 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 |.($mode.===.self::SEARCH_FULLTE
26da0 58 54 20 26 26 20 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 XT.&&.$package.instanceof.Comple
26dc0 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 tePackageInterface.&&.preg_match
26de0 28 24 72 65 67 65 78 2c 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 28 61 72 72 61 79 29 20 24 70 ($regex,.implode('.',.(array).$p
26e00 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 29 20 2e 20 27 20 27 20 2e 20 24 ackage->getKeywords())...'.'...$
26e20 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 0a 29 20 7b 0a package->getDescription())).).{.
26e40 24 6d 61 74 63 68 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 $matches[$name].=.array(.'name'.
26e60 3d 3e 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 2c 0a 27 64 =>.$package->getPrettyName(),.'d
26e80 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 escription'.=>.$package->getDesc
26ea0 72 69 70 74 69 6f 6e 28 29 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 ription(),.);.}.}..return.$match
26ec0 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 68 61 73 50 61 63 es;.}.....public.function.hasPac
26ee0 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 6b 61 67 65 29 0a kage(PackageInterface.$package).
26f00 7b 0a 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 55 6e 69 71 {.$packageId.=.$package->getUniq
26f20 75 65 4e 61 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 ueName();..foreach.($this->getPa
26f40 63 6b 61 67 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 ckages().as.$repoPackage).{.if.(
26f60 24 70 61 63 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 $packageId.===.$repoPackage->get
26f80 55 6e 69 71 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 UniqueName()).{.return.true;.}.}
26fa0 0a 0a 72 65 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 ..return.false;.}.......public.f
26fc0 75 6e 63 74 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 unction.addPackage(PackageInterf
26fe0 61 63 65 20 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 ace.$package).{.if.(null.===.$th
27000 69 73 2d 3e 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 is->packages).{.$this->initializ
27020 65 28 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 79 28 24 e();.}.$package->setRepository($
27040 74 68 69 73 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 this);.$this->packages[].=.$pack
27060 61 67 65 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 age;..if.($package.instanceof.Al
27080 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 20 3d 20 iasPackage).{.$aliasedPackage.=.
270a0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 69 66 20 28 6e 75 6c 6c $package->getAliasOf();.if.(null
270c0 20 3d 3d 3d 20 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 .===.$aliasedPackage->getReposit
270e0 6f 72 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 ory()).{.$this->addPackage($alia
27100 73 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 sedPackage);.}.}.}..protected.fu
27120 6e 63 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 nction.createAliasPackage(Packag
27140 65 49 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 2c 20 24 70 72 eInterface.$package,.$alias,.$pr
27160 65 74 74 79 41 6c 69 61 73 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 41 6c 69 61 73 50 61 63 ettyAlias).{.return.new.AliasPac
27180 6b 61 67 65 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 kage($package.instanceof.AliasPa
271a0 63 6b 61 67 65 20 3f 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3a ckage.?.$package->getAliasOf().:
271c0 20 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 29 .$package,.$alias,.$prettyAlias)
271e0 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 72 65 6d 6f 76 65 ;.}.......public.function.remove
27200 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 6b 61 67 Package(PackageInterface.$packag
27220 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 2d 3e 67 65 74 55 e).{.$packageId.=.$package->getU
27240 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 69 73 2d 3e 67 65 niqueName();..foreach.($this->ge
27260 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 70 6f 50 61 63 6b tPackages().as.$key.=>.$repoPack
27280 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 24 72 65 70 6f 50 age).{.if.($packageId.===.$repoP
272a0 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 0a 61 72 72 61 79 ackage->getUniqueName()).{.array
272c0 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 6b 65 79 2c 20 31 _splice($this->packages,.$key,.1
272e0 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 69 63 20 66 75 6e );..return;.}.}.}.....public.fun
27300 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 6e 75 6c 6c 20 3d ction.getPackages().{.if.(null.=
27320 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 73 2d 3e 69 6e 69 ==.$this->packages).{.$this->ini
27340 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 2d 3e 70 61 63 6b tialize();.}..return.$this->pack
27360 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 63 6f ages;.}.......public.function.co
27380 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 2d 3e 70 61 63 6b unt().{.return.count($this->pack
273a0 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 63 74 69 6f 6e 20 ages);.}.....protected.function.
273c0 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 61 67 65 73 20 3d initialize().{.$this->packages.=
273e0 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 0a 0a 0a 0a 0a 6e .array();.}.}.<?php............n
27400 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
27420 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 65 20 43 se.Composer\Json\JsonFile;.use.C
27440 6f 6d 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 omposer\Package\Loader\ArrayLoad
27460 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c er;.use.Composer\Package\Dumper\
27480 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 ArrayDumper;........class.Filesy
274a0 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 41 stemRepository.extends.WritableA
274c0 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 66 69 6c 65 3b 0a rrayRepository.{.private.$file;.
274e0 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
27500 74 28 4a 73 6f 6e 46 69 6c 65 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 29 0a 7b 0a 24 74 t(JsonFile.$repositoryFile).{.$t
27520 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 3b 0a 7d 0a 0a his->file.=.$repositoryFile;.}..
27540 0a 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
27560 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 69 66 20 28 ().{.parent::initialize();..if.(
27580 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 74 75 72 6e !$this->file->exists()).{.return
275a0 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 ;.}..try.{.$packages.=.$this->fi
275c0 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 63 6b le->read();..if.(!is_array($pack
275e0 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 56 61 ages)).{.throw.new.\UnexpectedVa
27600 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 70 61 lueException('Could.not.parse.pa
27620 63 6b 61 67 65 20 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 27 29 ckage.list.from.the.repository')
27640 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 74 68 ;.}.}.catch.(\Exception.$e).{.th
27660 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 row.new.InvalidRepositoryExcepti
27680 6f 6e 28 27 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 64 61 74 61 20 69 6e 20 27 on('Invalid.repository.data.in.'
276a0 2e 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 2c 20 70 61 63 6b 61 .$this->file->getPath().',.packa
276c0 67 65 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 3a 20 5b 27 2e 67 65 74 5f ges.could.not.be.loaded:.['.get_
276e0 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 class($e).'].'.$e->getMessage())
27700 3b 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 28 29 ;.}..$loader.=.new.ArrayLoader()
27720 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 63 6b 61 67 65 ;.foreach.($packages.as.$package
27740 44 61 74 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 Data).{.$package.=.$loader->load
27760 28 24 70 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 ($packageData);.$this->addPackag
27780 65 28 24 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 e($package);.}.}..public.functio
277a0 6e 20 72 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 n.reload().{.$this->packages.=.n
277c0 75 6c 6c 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 ull;.$this->initialize();.}.....
277e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 24 64 61 74 61 20 public.function.write().{.$data.
27800 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 75 =.array();.$dumper.=.new.ArrayDu
27820 6d 70 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 43 61 6e 6f mper();..foreach.($this->getCano
27840 6e 69 63 61 6c 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 24 nicalPackages().as.$package).{.$
27860 64 61 74 61 5b 5d 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 data[].=.$dumper->dump($package)
27880 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 64 61 74 61 29 3b 0a ;.}..$this->file->write($data);.
278a0 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
278c0 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
278e0 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 0a 0a 0a 0a r\Package\PackageInterface;.....
27900 0a 0a 69 6e 74 65 72 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 ..interface.WritableRepositoryIn
27920 74 65 72 66 61 63 65 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 terface.extends.RepositoryInterf
27940 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 77 72 69 74 65 28 29 ace.{....public.function.write()
27960 3b 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 50 61 63 6b 61 ;.......public.function.addPacka
27980 67 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 3b 0a 0a ge(PackageInterface.$package);..
279a0 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 76 65 50 61 63 6b 61 .....public.function.removePacka
279c0 67 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 3b 0a 0a ge(PackageInterface.$package);..
279e0 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 61 6e 6f 6e 69 63 61 .....public.function.getCanonica
27a00 6c 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e lPackages();.....public.function
27a20 20 72 65 6c 6f 61 64 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 .reload();.}.<?php............na
27a40 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 73 mespace.Composer\Repository;..us
27a60 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
27a80 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 73 69 6f 6e 50 omposer\Package\Version\VersionP
27aa0 61 72 73 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 50 arser;.use.Composer\Repository\P
27ac0 65 61 72 5c 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ear\ChannelReader;.use.Composer\
27ae0 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d Package\CompletePackage;.use.Com
27b00 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 6e 6e 65 6c 49 6e 66 poser\Repository\Pear\ChannelInf
27b20 6f 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 3b 0a 75 73 o;.use.Composer\Package\Link;.us
27b40 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 6e e.Composer\Package\LinkConstrain
27b60 74 5c 56 65 72 73 69 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 t\VersionConstraint;.use.Compose
27b80 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 6d r\Util\RemoteFilesystem;.use.Com
27ba0 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 poser\Config;...........class.Pe
27bc0 61 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 arRepository.extends.ArrayReposi
27be0 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 75 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 69 6f tory.{.private.$url;.private.$io
27c00 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e ;.private.$rfs;.private.$version
27c20 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 6e 64 6f 72 41 6c 69 61 73 Parser;.....private.$vendorAlias
27c40 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
27c60 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
27c80 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 o,.Config.$config,.RemoteFilesys
27ca0 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 tem.$rfs.=.null).{.if.(!preg_mat
27cc0 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 ch('{^https?://}',.$repoConfig['
27ce0 75 72 6c 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 url'])).{.$repoConfig['url'].=.'
27d00 68 74 74 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 0a http://'.$repoConfig['url'];.}..
27d20 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 $urlBits.=.parse_url($repoConfig
27d40 5b 27 75 72 6c 27 5d 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 73 63 ['url']);.if.(empty($urlBits['sc
27d60 68 65 6d 65 27 5d 29 20 7c 7c 20 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 68 6f 73 74 27 heme']).||.empty($urlBits['host'
27d80 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 75 65 ])).{.throw.new.\UnexpectedValue
27da0 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 Exception('Invalid.url.given.for
27dc0 20 50 45 41 52 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 .PEAR.repository:.'.$repoConfig[
27de0 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 'url']);.}..$this->url.=.rtrim($
27e00 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e repoConfig['url'],.'/');.$this->
27e20 69 6f 20 3d 20 24 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 io.=.$io;.$this->rfs.=.$rfs.?:.n
27e40 65 77 20 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 3b 0a ew.RemoteFilesystem($this->io);.
27e60 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f $this->vendorAlias.=.isset($repo
27e80 43 6f 6e 66 69 67 5b 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 29 20 3f 20 24 72 65 70 6f 43 Config['vendor-alias']).?.$repoC
27ea0 6f 6e 66 69 67 5b 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 74 onfig['vendor-alias'].:.null;.$t
27ec0 68 69 73 2d 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 his->versionParser.=.new.Version
27ee0 50 61 72 73 65 72 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 Parser();.}..protected.function.
27f00 69 6e 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 initialize().{.parent::initializ
27f20 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6e 69 74 69 61 6c 69 e();..$this->io->write('Initiali
27f40 7a 69 6e 67 20 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 zing.PEAR.repository.'.$this->ur
27f60 6c 29 3b 0a 0a 24 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 l);..$reader.=.new.ChannelReader
27f80 28 24 74 68 69 73 2d 3e 72 66 73 29 3b 0a 74 72 79 20 7b 0a 24 63 68 61 6e 6e 65 6c 49 6e 66 6f ($this->rfs);.try.{.$channelInfo
27fa0 20 3d 20 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 .=.$reader->read($this->url);.}.
27fc0 63 61 74 63 68 20 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 catch.(\Exception.$e).{.$this->i
27fe0 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 50 45 41 52 20 72 65 70 6f 73 69 74 6f o->write('<warning>PEAR.reposito
28000 72 79 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 ry.from.'.$this->url.'.could.not
28020 20 62 65 20 6c 6f 61 64 65 64 2e 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 .be.loaded..'.$e->getMessage().'
28040 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 70 61 63 6b 61 67 </warning>');..return;.}.$packag
28060 65 73 20 3d 20 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 es.=.$this->buildComposerPackage
28080 73 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 s($channelInfo,.$this->versionPa
280a0 72 73 65 72 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 rser);.foreach.($packages.as.$pa
280c0 63 6b 61 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 ckage).{.$this->addPackage($pack
280e0 61 67 65 29 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 age);.}.}.........private.functi
28100 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 43 68 61 6e 6e 65 6c on.buildComposerPackages(Channel
28120 49 6e 66 6f 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 Info.$channelInfo,.VersionParser
28140 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 .$versionParser).{.$result.=.arr
28160 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 ay();.foreach.($channelInfo->get
28180 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e Packages().as.$packageDefinition
281a0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d ).{.foreach.($packageDefinition-
281c0 3e 67 65 74 52 65 6c 65 61 73 65 73 28 29 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 72 >getReleases().as.$version.=>.$r
281e0 65 6c 65 61 73 65 49 6e 66 6f 29 20 7b 0a 74 72 79 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 eleaseInfo).{.try.{.$normalizedV
28200 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 6d 61 6c 69 ersion.=.$versionParser->normali
28220 7a 65 28 24 76 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 74 ze($version);.}.catch.(\Unexpect
28240 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 edValueException.$e).{.if.($this
28260 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 69 6f 2d 3e ->io->isVerbose()).{.$this->io->
28280 77 72 69 74 65 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 27 2e 24 70 61 63 6b 61 67 65 write('Could.not.load.'.$package
282a0 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 2e 27 20 27 Definition->getPackageName().'.'
282c0 2e 24 76 65 72 73 69 6f 6e 2e 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 .$version.':.'.$e->getMessage())
282e0 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 ;.}.continue;.}..$composerPackag
28300 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 72 50 61 63 6b eName.=.$this->buildComposerPack
28320 61 67 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 ageName($packageDefinition->getC
28340 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e hannelName(),.$packageDefinition
28360 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 0a 0a 20 0a 20 24 75 72 6c 42 69 ->getPackageName());......$urlBi
28380 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 24 73 63 68 ts.=.parse_url($this->url);.$sch
283a0 65 6d 65 20 3d 20 28 69 73 73 65 74 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 eme.=.(isset($urlBits['scheme'])
283c0 20 26 26 20 27 68 74 74 70 73 27 20 3d 3d 3d 20 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 .&&.'https'.===.$urlBits['scheme
283e0 27 5d 20 26 26 20 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 '].&&.extension_loaded('openssl'
28400 29 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 64 69 73 74 55 72 6c 20 )).?.'https'.:.'http';.$distUrl.
28420 3d 20 22 7b 24 73 63 68 65 6d 65 7d 3a 2f 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 =."{$scheme}://{$packageDefiniti
28440 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 7d 2f 67 65 74 2f 7b 24 70 61 63 6b on->getChannelName()}/get/{$pack
28460 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 7d ageDefinition->getPackageName()}
28480 2d 7b 24 76 65 72 73 69 6f 6e 7d 2e 74 67 7a 22 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 -{$version}.tgz";..$requires.=.a
284a0 72 72 61 79 28 29 3b 0a 24 73 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 6f rray();.$suggests.=.array();.$co
284c0 6e 66 6c 69 63 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 61 nflicts.=.array();.$replaces.=.a
284e0 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 rray();......if.($channelInfo->g
28500 65 74 4e 61 6d 65 28 29 20 3d 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e etName().==.$packageDefinition->
28520 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 getChannelName()).{.$composerPac
28540 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 kageAlias.=.$this->buildComposer
28560 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 PackageName($channelInfo->getAli
28580 61 73 28 29 2c 20 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 as(),.$packageDefinition->getPac
285a0 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 kageName());.$aliasConstraint.=.
285c0 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 6e 6f 72 new.VersionConstraint('==',.$nor
285e0 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e malizedVersion);.$replaces[].=.n
28600 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 63 ew.Link($composerPackageName,.$c
28620 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 omposerPackageAlias,.$aliasConst
28640 72 61 69 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 raint,.'replaces',.(string).$ali
28660 61 73 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 asConstraint);.}....if.(!empty($
28680 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 29 0a 26 26 20 28 24 74 68 69 73 2d 3e 76 65 this->vendorAlias).&&.($this->ve
286a0 6e 64 6f 72 41 6c 69 61 73 20 21 3d 20 27 70 65 61 72 2d 27 2e 24 63 68 61 6e 6e 65 6c 49 6e 66 ndorAlias.!=.'pear-'.$channelInf
286c0 6f 2d 3e 67 65 74 41 6c 69 61 73 28 29 20 7c 7c 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 o->getAlias().||.$channelInfo->g
286e0 65 74 4e 61 6d 65 28 29 20 21 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e etName().!=.$packageDefinition->
28700 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 0a 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 getChannelName()).).{.$composerP
28720 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 22 7b 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 ackageAlias.=."{$this->vendorAli
28740 61 73 7d 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 63 6b as}/{$packageDefinition->getPack
28760 61 67 65 4e 61 6d 65 28 29 7d 22 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 ageName()}";.$aliasConstraint.=.
28780 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 6e 6f 72 new.VersionConstraint('==',.$nor
287a0 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e malizedVersion);.$replaces[].=.n
287c0 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 63 ew.Link($composerPackageName,.$c
287e0 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 omposerPackageAlias,.$aliasConst
28800 72 61 69 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 raint,.'replaces',.(string).$ali
28820 61 73 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 asConstraint);.}..foreach.($rele
28840 61 73 65 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 65 aseInfo->getDependencyInfo()->ge
28860 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 tRequires().as.$dependencyConstr
28880 61 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 aint).{.$dependencyPackageName.=
288a0 20 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 .$this->buildComposerPackageName
288c0 28 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 ($dependencyConstraint->getChann
288e0 65 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 elName(),.$dependencyConstraint-
28900 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 >getPackageName());.$constraint.
28920 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e =.$versionParser->parseConstrain
28940 74 73 28 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 ts($dependencyConstraint->getCon
28960 73 74 72 61 69 6e 74 28 29 29 3b 0a 24 6c 69 6e 6b 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f straint());.$link.=.new.Link($co
28980 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 50 61 mposerPackageName,.$dependencyPa
289a0 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 70 65 6e 64 65 ckageName,.$constraint,.$depende
289c0 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 29 2c 20 24 64 65 70 65 6e ncyConstraint->getType(),.$depen
289e0 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 dencyConstraint->getConstraint()
28a00 29 3b 0a 73 77 69 74 63 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 );.switch.($dependencyConstraint
28a20 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 63 61 73 65 20 27 72 65 71 75 69 72 65 64 27 3a 0a ->getType()).{.case.'required':.
28a40 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 $requires[].=.$link;.break;.case
28a60 20 27 63 6f 6e 66 6c 69 63 74 73 27 3a 0a 24 63 6f 6e 66 6c 69 63 74 73 5b 5d 20 3d 20 24 6c 69 .'conflicts':.$conflicts[].=.$li
28a80 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 72 65 70 6c 61 63 65 73 27 3a 0a 24 72 65 70 nk;.break;.case.'replaces':.$rep
28aa0 6c 61 63 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 laces[].=.$link;.break;.}.}..for
28ac0 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 63 each.($releaseInfo->getDependenc
28ae0 79 49 6e 66 6f 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 20 61 73 20 24 67 72 6f 75 yInfo()->getOptionals().as.$grou
28b00 70 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 66 p.=>.$dependencyConstraints).{.f
28b20 6f 72 65 61 63 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 oreach.($dependencyConstraints.a
28b40 73 20 24 64 65 70 65 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 s.$dependencyConstraint).{.$depe
28b60 6e 64 65 6e 63 79 50 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 ndencyPackageName.=.$this->build
28b80 43 6f 6d 70 6f 73 65 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 ComposerPackageName($dependencyC
28ba0 6f 6e 73 74 72 61 69 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 onstraint->getChannelName(),.$de
28bc0 70 65 6e 64 65 6e 63 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 pendencyConstraint->getPackageNa
28be0 6d 65 28 29 29 3b 0a 24 73 75 67 67 65 73 74 73 5b 24 67 72 6f 75 70 2e 27 2d 27 2e 24 64 65 70 me());.$suggests[$group.'-'.$dep
28c00 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 endencyPackageName].=.$dependenc
28c20 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a yConstraint->getConstraint();.}.
28c40 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 }..$package.=.new.CompletePackag
28c60 65 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6e 6f 72 6d 61 6c 69 e($composerPackageName,.$normali
28c80 7a 65 64 56 65 72 73 69 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 70 61 63 6b 61 67 65 2d zedVersion,.$version);.$package-
28ca0 3e 73 65 74 54 79 70 65 28 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 3b 0a 24 70 61 63 6b 61 >setType('pear-library');.$packa
28cc0 67 65 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e ge->setDescription($packageDefin
28ce0 69 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 70 61 63 6b 61 ition->getDescription());.$packa
28d00 67 65 2d 3e 73 65 74 44 69 73 74 54 79 70 65 28 27 66 69 6c 65 27 29 3b 0a 24 70 61 63 6b 61 67 ge->setDistType('file');.$packag
28d20 65 2d 3e 73 65 74 44 69 73 74 55 72 6c 28 24 64 69 73 74 55 72 6c 29 3b 0a 24 70 61 63 6b 61 67 e->setDistUrl($distUrl);.$packag
28d40 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 27 20 e->setAutoload(array('classmap'.
28d60 3d 3e 20 61 72 72 61 79 28 27 27 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 =>.array('')));.$package->setInc
28d80 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 28 27 2f 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d ludePaths(array('/'));.$package-
28da0 3e 73 65 74 52 65 71 75 69 72 65 73 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 70 61 63 6b 61 67 >setRequires($requires);.$packag
28dc0 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 63 6f 6e 66 6c 69 63 74 73 29 3b 0a 24 70 61 e->setConflicts($conflicts);.$pa
28de0 63 6b 61 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 73 75 67 67 65 73 74 73 29 3b 0a 24 ckage->setSuggests($suggests);.$
28e00 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 72 65 70 6c 61 63 65 73 29 3b package->setReplaces($replaces);
28e20 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 .$result[].=.$package;.}.}..retu
28e40 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.
28e60 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 24 63 68 61 6e 6e 65 buildComposerPackageName($channe
28e80 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 27 70 68 70 27 lName,.$packageName).{.if.('php'
28ea0 20 3d 3d 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 22 70 68 70 .===.$channelName).{.return."php
28ec0 22 3b 0a 7d 0a 69 66 20 28 27 65 78 74 27 20 3d 3d 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 ";.}.if.('ext'.===.$channelName)
28ee0 20 7b 0a 72 65 74 75 72 6e 20 22 65 78 74 2d 7b 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a .{.return."ext-{$packageName}";.
28f00 7d 0a 0a 72 65 74 75 72 6e 20 22 70 65 61 72 2d 7b 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 7d 2f 7b }..return."pear-{$channelName}/{
28f20 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a $packageName}";.}.}.<?php.......
28f40 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
28f60 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 66 61 63 65 ry;..use.Composer\IO\IOInterface
28f80 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 63 ;.use.Composer\Config;.........c
28fa0 6c 61 73 73 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 lass.RepositoryManager.{.private
28fc0 20 24 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f .$localRepository;.private.$repo
28fe0 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 74 65 20 24 72 65 70 sitories.=.array();.private.$rep
29000 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 0a 70 72 69 76 61 74 ositoryClasses.=.array();.privat
29020 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 70 75 62 6c 69 63 20 e.$io;.private.$config;..public.
29040 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
29060 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 74 68 69 73 2d 3e 69 .$io,.Config.$config).{.$this->i
29080 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 6f 6e 66 69 67 o.=.$io;.$this->config.=.$config
290a0 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 66 69 6e ;.}..........public.function.fin
290c0 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 7b 0a 66 6f 72 65 dPackage($name,.$version).{.fore
290e0 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 73 20 24 72 65 70 ach.($this->repositories.as.$rep
29100 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 20 24 72 65 70 6f 73 ository).{.if.($package.=.$repos
29120 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 72 73 69 itory->findPackage($name,.$versi
29140 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 0a 7d 0a 7d 0a 0a 0a on)).{.return.$package;.}.}.}...
29160 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
29180 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 61 63 6b 61 67 65 73 ges($name,.$version).{.$packages
291a0 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 72 65 70 .=.array();..foreach.($this->rep
291c0 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 24 70 61 63 ositories.as.$repository).{.$pac
291e0 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 61 67 65 73 2c 20 24 kages.=.array_merge($packages,.$
29200 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 24 6e 61 6d 65 2c 20 repository->findPackages($name,.
29220 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 63 6b 61 67 65 73 3b $version));.}..return.$packages;
29240 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 64 64 52 65 70 6f .}.......public.function.addRepo
29260 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 65 20 24 72 65 70 6f sitory(RepositoryInterface.$repo
29280 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 72 69 65 73 5b 5d 20 sitory).{.$this->repositories[].
292a0 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 0a 70 75 62 6c 69 63 =.$repository;.}..........public
292c0 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 79 28 24 74 79 70 65 .function.createRepository($type
292e0 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 74 68 69 73 2d 3e 72 ,.$config).{.if.(!isset($this->r
29300 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 20 7b 0a 74 68 72 6f epositoryClasses[$type])).{.thro
29320 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(
29340 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 65 67 69 73 74 65 72 'Repository.type.is.not.register
29360 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 20 24 74 68 69 73 2d ed:.'.$type);.}..$class.=.$this-
29380 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 3b 0a 0a 72 65 74 75 >repositoryClasses[$type];..retu
293a0 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 68 69 73 2d 3e 69 6f rn.new.$class($config,.$this->io
293c0 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 0a 0a 70 75 62 6c 69 ,.$this->config);.}........publi
293e0 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 6c 61 73 73 28 24 74 c.function.setRepositoryClass($t
29400 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 6f 73 69 74 6f 72 79 ype,.$class).{.$this->repository
29420 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 7d 0a 0a 0a 0a 0a 0a Classes[$type].=.$class;.}......
29440 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 69 65 73 .public.function.getRepositories
29460 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 65 73 3b ().{.return.$this->repositories;
29480 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 4c 6f 63 61 .}.......public.function.setLoca
294a0 6c 52 65 70 6f 73 69 74 6f 72 79 28 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e lRepository(WritableRepositoryIn
294c0 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 6c 6f terface.$repository).{.$this->lo
294e0 63 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 calRepository.=.$repository;.}..
29500 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 6f 63 61 6c 52 65 70 .....public.function.getLocalRep
29520 6f 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 ository().{.return.$this->localR
29540 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 epository;.}........public.funct
29560 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 74 72 69 ion.getLocalRepositories().{.tri
29580 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 64 65 70 72 65 gger_error('This.method.is.depre
295a0 63 61 74 65 64 2c 20 75 73 65 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 69 6e cated,.use.getLocalRepository.in
295c0 73 74 65 61 64 20 73 69 6e 63 65 20 74 68 65 20 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 stead.since.the.getLocalDevRepos
295e0 69 74 6f 72 79 20 69 73 20 6e 6f 77 20 67 6f 6e 65 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 itory.is.now.gone',.E_USER_DEPRE
29600 43 41 54 45 44 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6c 6f 63 CATED);..return.array($this->loc
29620 61 6c 52 65 70 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 alRepository);.}.}.<?php........
29640 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
29660 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 41 6c 69 61 73 50 61 y;..use.Composer\Package\AliasPa
29680 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 57 72 69 74 61 62 6c 65 41 72 72 61 79 ckage;.......class.WritableArray
296a0 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 6f Repository.extends.ArrayReposito
296c0 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 ry.implements.WritableRepository
296e0 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 69 6f 6e 20 77 Interface.{....public.function.w
29700 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 69 6f 6e 20 72 rite().{.}.....public.function.r
29720 65 6c 6f 61 64 28 29 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 eload().{.}.....public.function.
29740 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 24 70 61 63 6b 61 67 getCanonicalPackages().{.$packag
29760 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 20 24 70 es.=.$this->getPackages();....$p
29780 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 ackagesByName.=.array();.foreach
297a0 20 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 69 66 20 28 21 .($packages.as.$package).{.if.(!
297c0 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e isset($packagesByName[$package->
297e0 67 65 74 4e 61 6d 65 28 29 5d 29 20 7c 7c 20 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 getName()]).||.$packagesByName[$
29800 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 package->getName()].instanceof.A
29820 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 liasPackage).{.$packagesByName[$
29840 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 0a package->getName()].=.$package;.
29860 7d 0a 7d 0a 0a 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 }.}..$canonicalPackages.=.array(
29880 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 20 61 );....foreach.($packagesByName.a
298a0 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 77 68 69 6c 65 20 28 24 70 61 63 6b 61 67 65 20 69 6e s.$package).{.while.($package.in
298c0 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 70 61 63 6b 61 67 stanceof.AliasPackage).{.$packag
298e0 65 20 3d 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 e.=.$package->getAliasOf();.}..$
29900 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a canonicalPackages[].=.$package;.
29920 7d 0a 0a 72 65 74 75 72 6e 20 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 3b 0a 7d 0a }..return.$canonicalPackages;.}.
29940 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
29960 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
29980 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
299a0 6e 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 n;.use.Composer\Json\JsonFile;.u
299c0 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 70 6f 73 65 72 5c se.Composer\Cache;.use.Composer\
299e0 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 55 74 69 IO\IOInterface;.use.Composer\Uti
29a00 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 6d 70 6f 73 65 72 l\RemoteFilesystem;.use.Composer
29a20 5c 55 74 69 6c 5c 47 69 74 48 75 62 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 44 72 \Util\GitHub;.....class.GitHubDr
29a40 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
29a60 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f ed.$cache;.protected.$owner;.pro
29a80 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 tected.$repository;.protected.$t
29aa0 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 72 6f 74 65 63 ags;.protected.$branches;.protec
29ac0 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 74 65 64 20 24 ted.$rootIdentifier;.protected.$
29ae0 68 61 73 49 73 73 75 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 hasIssues;.protected.$infoCache.
29b00 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 73 50 72 69 76 61 74 65 20 =.array();.protected.$isPrivate.
29b20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 67 69 74 44 72 69 =.false;.......protected.$gitDri
29b40 76 65 72 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 69 61 6c ver;.....public.function.initial
29b60 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 3a 28 3f 3a 68 74 74 70 ize().{.preg_match('#^(?:(?:http
29b80 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 74 68 75 s?|git)://github\.com/|git@githu
29ba0 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 29 3f 24 b\.com:)([^/]+)/(.+?)(?:\.git)?$
29bc0 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 2d 3e #',.$this->url,.$match);.$this->
29be0 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 73 69 owner.=.$match[1];.$this->reposi
29c00 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 6e 55 tory.=.$match[2];.$this->originU
29c20 72 6c 20 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 rl.=.'github.com';.$this->cache.
29c40 3d 20 6e 65 77 20 43 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 =.new.Cache($this->io,.$this->co
29c60 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e nfig->get('cache-repo-dir').'/'.
29c80 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 $this->originUrl.'/'.$this->owne
29ca0 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
29cc0 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
29ce0 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
29d00 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
29d20 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
29d40 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
29d60 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
29d80 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
29da0 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
29dc0 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 tUrl();.}..return.'https://githu
29de0 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 24 74 68 69 73 2d 3e b.com/'.$this->owner.'/'.$this->
29e00 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 repository.'.git';.}.....public.
29e20 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 72 29 0a function.getSource($identifier).
29e40 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 6e {.if.($this->gitDriver).{.return
29e60 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 53 6f 75 72 63 65 28 24 69 64 .$this->gitDriver->getSource($id
29e80 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 entifier);.}.$label.=.array_sear
29ea0 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 28 29 ch($identifier,.$this->getTags()
29ec0 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 ).?:.$identifier;.if.($this->isP
29ee0 72 69 76 61 74 65 29 20 7b 0a 0a 20 0a 20 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 rivate).{.....$url.=.$this->gene
29f00 72 61 74 65 53 73 68 55 72 6c 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 74 rateSshUrl();.}.else.{.$url.=.$t
29f20 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 his->getUrl();.}..return.array('
29f40 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 75 72 6c 2c 20 27 type'.=>.'git',.'url'.=>.$url,.'
29f60 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 75 62 reference'.=>.$label);.}.....pub
29f80 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
29fa0 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 75 ).{.if.($this->gitDriver).{.retu
29fc0 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 44 69 73 74 28 24 69 64 rn.$this->gitDriver->getDist($id
29fe0 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 entifier);.}.$label.=.array_sear
2a000 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 28 29 ch($identifier,.$this->getTags()
2a020 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 27 68 74 74 70 73 3a ).?:.$identifier;.$url.=.'https:
2a040 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->
2a060 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 69 owner.'/'.$this->repository.'/zi
2a080 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 74 pball/'.$label;..return.array('t
2a0a0 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 72 ype'.=>.'zip',.'url'.=>.$url,.'r
2a0c0 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 3e eference'.=>.$label,.'shasum'.=>
2a0e0 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 43 .'');.}.....public.function.getC
2a100 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 0a omposerInformation($identifier).
2a120 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 6e {.if.($this->gitDriver).{.return
2a140 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 6e .$this->gitDriver->getComposerIn
2a160 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 70 formation($identifier);.}..if.(p
2a180 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 64 reg_match('{[a-f0-9]{40}}i',.$id
2a1a0 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 65 entifier).&&.$res.=.$this->cache
2a1c0 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 6e ->read($identifier)).{.$this->in
2a1e0 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 3a foCache[$identifier].=.JsonFile:
2a200 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 28 :parseJson($res);.}..if.(!isset(
2a220 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 20 $this->infoCache[$identifier])).
2a240 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 61 70 69 {.try.{.$resource.=.'https://api
2a260 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 6e 65 72 .github.com/repos/'.$this->owner
2a280 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 6e 74 65 6e 74 .'/'.$this->repository.'/content
2a2a0 73 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3f 72 65 66 3d 27 2e 75 72 6c 65 6e 63 6f 64 65 28 s/composer.json?ref='.urlencode(
2a2c0 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 $identifier);.$composer.=.JsonFi
2a2e0 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 6e 74 73 le::parseJson($this->getContents
2a300 28 24 72 65 73 6f 75 72 63 65 29 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 ($resource));.if.(empty($compose
2a320 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 20 7c 7c 20 24 63 6f 6d 70 6f 73 65 72 5b 27 65 6e 63 6f r['content']).||.$composer['enco
2a340 64 69 6e 67 27 5d 20 21 3d 3d 20 27 62 61 73 65 36 34 27 20 7c 7c 20 21 28 24 63 6f 6d 70 6f 73 ding'].!==.'base64'.||.!($compos
2a360 65 72 20 3d 20 62 61 73 65 36 34 5f 64 65 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 5b 27 63 6f er.=.base64_decode($composer['co
2a380 6e 74 65 6e 74 27 5d 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 ntent']))).{.throw.new.\RuntimeE
2a3a0 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 63 6f 6d xception('Could.not.retrieve.com
2a3c0 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 72 6f 6d 20 27 2e 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a poser.json.from.'.$resource);.}.
2a3e0 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 20 24 65 29 20 }.catch.(TransportException.$e).
2a400 7b 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 {.if.(404.!==.$e->getCode()).{.t
2a420 68 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 hrow.$e;.}..$composer.=.false;.}
2a440 0a 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 ..if.($composer).{.$composer.=.J
2a460 73 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 sonFile::parseJson($composer,.$r
2a480 65 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 esource);..if.(!isset($composer[
2a4a0 27 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 'time'])).{.$resource.=.'https:/
2a4c0 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 6f /api.github.com/repos/'.$this->o
2a4e0 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 63 6f 6d wner.'/'.$this->repository.'/com
2a500 6d 69 74 73 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 mits/'.urlencode($identifier);.$
2a520 63 6f 6d 6d 69 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 68 commit.=.JsonFile::parseJson($th
2a540 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
2a560 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 6f 6d ource);.$composer['time'].=.$com
2a580 6d 69 74 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 63 6f 6d 6d 69 74 74 65 72 27 5d 5b 27 64 61 74 65 mit['commit']['committer']['date
2a5a0 27 5d 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 '];.}.if.(!isset($composer['supp
2a5c0 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 ort']['source'])).{.$label.=.arr
2a5e0 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 3e 67 65 ay_search($identifier,.$this->ge
2a600 74 54 61 67 73 28 29 29 20 3f 3a 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 tTags()).?:.array_search($identi
2a620 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 20 3f 3a 20 24 fier,.$this->getBranches()).?:.$
2a640 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d identifier;.$composer['support']
2a660 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 67 69 ['source'].=.sprintf('https://gi
2a680 74 68 75 62 2e 63 6f 6d 2f 25 73 2f 25 73 2f 74 72 65 65 2f 25 73 27 2c 20 24 74 68 69 73 2d 3e thub.com/%s/%s/tree/%s',.$this->
2a6a0 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 6c 61 62 65 6c owner,.$this->repository,.$label
2a6c0 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f );.}.if.(!isset($composer['suppo
2a6e0 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 49 73 73 rt']['issues']).&&.$this->hasIss
2a700 75 65 73 29 20 7b 0a 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 ues).{.$composer['support']['iss
2a720 75 65 73 27 5d 20 3d 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 ues'].=.sprintf('https://github.
2a740 63 6f 6d 2f 25 73 2f 25 73 2f 69 73 73 75 65 73 27 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c com/%s/%s/issues',.$this->owner,
2a760 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 .$this->repository);.}.}..if.(pr
2a780 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 64 65 eg_match('{[a-f0-9]{40}}i',.$ide
2a7a0 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 ntifier)).{.$this->cache->write(
2a7c0 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 $identifier,.json_encode($compos
2a7e0 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 er));.}..$this->infoCache[$ident
2a800 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 24 74 ifier].=.$composer;.}..return.$t
2a820 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 0a 0a his->infoCache[$identifier];.}..
2a840 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 0a 69 ...public.function.getTags().{.i
2a860 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 6e 20 24 74 f.($this->gitDriver).{.return.$t
2a880 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 7d 0a 69 66 20 his->gitDriver->getTags();.}.if.
2a8a0 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 72 65 73 6f 75 72 (null.===.$this->tags).{.$resour
2a8c0 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
2a8e0 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
2a900 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f ository.'/tags';.$tagsData.=.Jso
2a920 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
2a940 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 68 69 nts($resource),.$resource);.$thi
2a960 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 s->tags.=.array();.foreach.($tag
2a980 73 44 61 74 61 20 61 73 20 24 74 61 67 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 sData.as.$tag).{.$this->tags[$ta
2a9a0 67 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 74 61 67 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 73 68 61 g['name']].=.$tag['commit']['sha
2a9c0 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a '];.}.}..return.$this->tags;.}..
2a9e0 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 63 68 65 73 28 29 ...public.function.getBranches()
2aa00 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
2aa20 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 n.$this->gitDriver->getBranches(
2aa40 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 );.}.if.(null.===.$this->branche
2aa60 73 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 61 70 69 2e 67 69 s).{.$resource.=.'https://api.gi
2aa80 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 27 2f thub.com/repos/'.$this->owner.'/
2aaa0 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 69 74 2f 72 65 66 73 2f 68 '.$this->repository.'/git/refs/h
2aac0 65 61 64 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 3a 70 eads';.$branchData.=.JsonFile::p
2aae0 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 65 73 arseJson($this->getContents($res
2ab00 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 6e 63 ource),.$resource);.$this->branc
2ab20 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 68 44 hes.=.array();.foreach.($branchD
2ab40 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 ata.as.$branch).{.$name.=.substr
2ab60 28 24 62 72 61 6e 63 68 5b 27 72 65 66 27 5d 2c 20 31 31 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 ($branch['ref'],.11);.$this->bra
2ab80 6e 63 68 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 62 72 61 6e 63 68 5b 27 6f 62 6a 65 63 74 27 5d nches[$name].=.$branch['object']
2aba0 5b 27 73 68 61 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 61 6e ['sha'];.}.}..return.$this->bran
2abc0 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 69 ches;.}.....public.static.functi
2abe0 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 72 on.supports(IOInterface.$io,.$ur
2ac00 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 6d 61 l,.$deep.=.false).{.if.(!preg_ma
2ac20 74 63 68 28 27 23 5e 28 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c tch('#^((?:https?|git)://github\
2ac40 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 29 2f 28 .com/|git@github\.com:)([^/]+)/(
2ac60 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 .+?)(?:\.git)?$#',.$url)).{.retu
2ac80 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 6f 61 64 rn.false;.}..if.(!extension_load
2aca0 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 65 72 62 ed('openssl')).{.if.($io->isVerb
2acc0 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 20 47 69 ose()).{.$io->write('Skipping.Gi
2ace0 74 48 75 62 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 tHub.driver.for.'.$url.'.because
2ad00 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 .the.OpenSSL.PHP.extension.is.mi
2ad20 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 ssing.');.}..return.false;.}..re
2ad40 74 75 72 6e 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 66 75 6e turn.true;.}.......protected.fun
2ad60 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ction.generateSshUrl().{.return.
2ad80 27 67 69 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 'git@github.com:'.$this->owner.'
2ada0 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a /'.$this->repository.'.git';.}..
2adc0 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 6e 74 65 6e 74 ...protected.function.getContent
2ade0 73 28 24 75 72 6c 2c 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 20 3d 20 66 61 6c 73 s($url,.$fetchingRepoData.=.fals
2ae00 65 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e e).{.try.{.return.parent::getCon
2ae20 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 tents($url);.}.catch.(TransportE
2ae40 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 xception.$e).{.$gitHubUtil.=.new
2ae60 20 47 69 74 48 75 62 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 .GitHub($this->io,.$this->config
2ae80 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 ,.$this->process,.$this->remoteF
2aea0 69 6c 65 73 79 73 74 65 6d 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 ilesystem);..switch.($e->getCode
2aec0 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 0a 20 69 66 20 28 ()).{.case.401:.case.404:...if.(
2aee0 21 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a !$fetchingRepoData).{.throw.$e;.
2af00 7d 0a 0a 69 66 20 28 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 }..if.($gitHubUtil->authorizeOAu
2af20 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 th($this->originUrl)).{.return.p
2af40 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 arent::getContents($url);.}..if.
2af60 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 28 29 29 20 7b 0a (!$this->io->isInteractive()).{.
2af80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 return.$this->attemptCloneFallba
2afa0 63 6b 28 29 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f ck();.}..$gitHubUtil->authorizeO
2afc0 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 AuthInteractively($this->originU
2afe0 72 6c 2c 20 27 59 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 61 72 65 rl,.'Your.GitHub.credentials.are
2b000 20 72 65 71 75 69 72 65 64 20 74 6f 20 66 65 74 63 68 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 .required.to.fetch.private.repos
2b020 69 74 6f 72 79 20 6d 65 74 61 64 61 74 61 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 itory.metadata.(<info>'.$this->u
2b040 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a rl.'</info>)');..return.parent::
2b060 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 0a 63 61 73 65 20 34 30 33 3a 0a 69 66 getContents($url);..case.403:.if
2b080 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 .(!$this->io->hasAuthentication(
2b0a0 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 20 26 26 20 24 67 69 74 48 75 62 55 74 69 6c $this->originUrl).&&.$gitHubUtil
2b0c0 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 ->authorizeOAuth($this->originUr
2b0e0 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 l)).{.return.parent::getContents
2b100 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 ($url);.}..if.(!$this->io->isInt
2b120 65 72 61 63 74 69 76 65 28 29 20 26 26 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 eractive().&&.$fetchingRepoData)
2b140 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c .{.return.$this->attemptCloneFal
2b160 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 24 72 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 66 61 6c 73 65 lback();.}..$rateLimited.=.false
2b180 3b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 20 61 73 20 24 ;.foreach.($e->getHeaders().as.$
2b1a0 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 58 2d 52 61 header).{.if.(preg_match('{^X-Ra
2b1c0 74 65 4c 69 6d 69 74 2d 52 65 6d 61 69 6e 69 6e 67 3a 20 2a 30 24 7d 69 27 2c 20 74 72 69 6d 28 teLimit-Remaining:.*0$}i',.trim(
2b1e0 24 68 65 61 64 65 72 29 29 29 20 7b 0a 24 72 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 74 72 75 65 $header))).{.$rateLimited.=.true
2b200 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e ;.}.}..if.(!$this->io->hasAuthen
2b220 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 69 66 tication($this->originUrl)).{.if
2b240 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 28 29 29 20 7b .(!$this->io->isInteractive()).{
2b260 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 3e 47 69 74 48 75 62 .$this->io->write('<error>GitHub
2b280 20 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 64 2e 20 46 61 69 6c 65 64 20 74 6f 20 .API.limit.exhausted..Failed.to.
2b2a0 67 65 74 20 6d 65 74 61 64 61 74 61 20 66 6f 72 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 get.metadata.for.the.'.$this->ur
2b2c0 6c 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 l.'.repository,.try.running.in.i
2b2e0 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 nteractive.mode.so.that.you.can.
2b300 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f enter.your.GitHub.credentials.to
2b320 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 41 50 49 20 6c 69 6d 69 74 3c 2f 65 72 72 6f 72 3e 27 .increase.the.API.limit</error>'
2b340 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 );.throw.$e;.}..$gitHubUtil->aut
2b360 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e horizeOAuthInteractively($this->
2b380 6f 72 69 67 69 6e 55 72 6c 2c 20 27 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 64 2e originUrl,.'API.limit.exhausted.
2b3a0 20 45 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 .Enter.your.GitHub.credentials.t
2b3c0 6f 20 67 65 74 20 61 20 6c 61 72 67 65 72 20 41 50 49 20 6c 69 6d 69 74 20 28 3c 69 6e 66 6f 3e o.get.a.larger.API.limit.(<info>
2b3e0 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 '.$this->url.'</info>)');..retur
2b400 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a n.parent::getContents($url);.}..
2b420 69 66 20 28 24 72 61 74 65 4c 69 6d 69 74 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 if.($rateLimited).{.$this->io->w
2b440 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 49 20 6c 69 6d 69 74 20 65 78 rite('<error>GitHub.API.limit.ex
2b460 68 61 75 73 74 65 64 2e 20 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 79 20 61 75 74 68 6f 72 69 hausted..You.are.already.authori
2b480 7a 65 64 20 73 6f 20 79 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 77 61 69 74 20 61 20 77 zed.so.you.will.have.to.wait.a.w
2b4a0 68 69 6c 65 20 62 65 66 6f 72 65 20 64 6f 69 6e 67 20 6d 6f 72 65 20 72 65 71 75 65 73 74 73 3c hile.before.doing.more.requests<
2b4c0 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 0a 64 65 66 61 75 6c 74 /error>');.}..throw.$e;..default
2b4e0 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 :.throw.$e;.}.}.}.......protecte
2b500 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 29 d.function.fetchRootIdentifier()
2b520 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 67 .{.$repoDataUrl.=.'https://api.g
2b540 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 27 ithub.com/repos/'.$this->owner.'
2b560 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 24 72 65 70 6f 44 61 74 61 /'.$this->repository;..$repoData
2b580 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
2b5a0 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 70 6f 44 61 74 61 55 72 6c 2c 20 74 72 75 65 29 2c 20 24 tContents($repoDataUrl,.true),.$
2b5c0 72 65 70 6f 44 61 74 61 55 72 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f repoDataUrl);.if.(null.===.$repo
2b5e0 44 61 74 61 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 Data.&&.null.!==.$this->gitDrive
2b600 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 r).{.return;.}..$this->isPrivate
2b620 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 70 72 69 76 61 74 65 27 5d 29 3b .=.!empty($repoData['private']);
2b640 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 61 75 6c 74 5f 62 72 .if.(isset($repoData['default_br
2b660 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 6e 74 69 66 69 65 72 anch'])).{.$this->rootIdentifier
2b680 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 6e 63 68 27 5d 3b 0a .=.$repoData['default_branch'];.
2b6a0 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 5b 27 6d 61 73 74 65 }.elseif.(isset($repoData['maste
2b6c0 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 74 49 64 65 6e 74 69 r_branch'])).{.$this->rootIdenti
2b6e0 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 62 72 61 6e 63 68 27 fier.=.$repoData['master_branch'
2b700 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 65 6e 74 69 66 69 65 ];.}.else.{.$this->rootIdentifie
2b720 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 73 49 73 73 75 65 73 r.=.'master';.}.$this->hasIssues
2b740 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 69 73 73 75 65 73 27 .=.!empty($repoData['has_issues'
2b760 5d 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 74 74 65 6d 70 ]);.}..protected.function.attemp
2b780 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 tCloneFallback().{.$this->isPriv
2b7a0 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 0a 20 24 74 68 69 73 ate.=.true;..try.{.........$this
2b7c0 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 65 72 28 0a 61 72 72 ->gitDriver.=.new.GitDriver(.arr
2b7e0 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 ay('url'.=>.$this->generateSshUr
2b800 6c 28 29 29 2c 0a 24 74 68 69 73 2d 3e 69 6f 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a l()),.$this->io,.$this->config,.
2b820 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c $this->process,.$this->remoteFil
2b840 65 73 79 73 74 65 6d 0a 29 3b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 esystem.);.$this->gitDriver->ini
2b860 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 tialize();..return;.}.catch.(\Ru
2b880 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 44 ntimeException.$e).{.$this->gitD
2b8a0 72 69 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 river.=.null;..$this->io->write(
2b8c0 27 3c 65 72 72 6f 72 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 '<error>Failed.to.clone.the.'.$t
2b8e0 68 69 73 2d 3e 67 65 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 his->generateSshUrl().'.reposito
2b900 72 79 2c 20 74 72 79 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 ry,.try.running.in.interactive.m
2b920 6f 64 65 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 47 ode.so.that.you.can.enter.your.G
2b940 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 itHub.credentials</error>');.thr
2b960 6f 77 20 24 65 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 ow.$e;.}.}.}.<?php............na
2b980 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 3b mespace.Composer\Repository\Vcs;
2b9a0 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
2b9c0 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 0a 0a 0a 0a 63 e.Composer\IO\IOInterface;.....c
2b9e0 6c 61 73 73 20 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 lass.GitBitbucketDriver.extends.
2ba00 56 63 73 44 72 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e VcsDriver.implements.VcsDriverIn
2ba20 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 terface.{.protected.$owner;.prot
2ba40 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 ected.$repository;.protected.$ta
2ba60 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 72 6f 74 65 63 74 gs;.protected.$branches;.protect
2ba80 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 74 65 64 20 24 69 ed.$rootIdentifier;.protected.$i
2baa0 6e 66 6f 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 nfoCache.=.array();.....public.f
2bac0 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 61 74 63 unction.initialize().{.preg_matc
2bae0 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 28 5b 5e 2f h('#^https://bitbucket\.org/([^/
2bb00 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 ]+)/(.+?)\.git$#',.$this->url,.$
2bb20 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 5b 31 5d match);.$this->owner.=.$match[1]
2bb40 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 32 5d 3b ;.$this->repository.=.$match[2];
2bb60 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f .$this->originUrl.=.'bitbucket.o
2bb80 72 67 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 52 6f rg';.}.....public.function.getRo
2bba0 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 otIdentifier().{.if.(null.===.$t
2bbc0 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 his->rootIdentifier).{.$resource
2bbe0 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.
2bc00 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/'
2bc20 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
2bc40 6f 72 79 3b 0a 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 ory;.$repoData.=.JsonFile::parse
2bc60 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
2bc80 65 29 2c 20 24 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 e),.$resource);.$this->rootIdent
2bca0 69 66 69 65 72 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 ifier.=.!empty($repoData['main_b
2bcc0 72 61 6e 63 68 27 5d 29 20 3f 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 ranch']).?.$repoData['main_branc
2bce0 68 27 5d 20 3a 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d h'].:.'master';.}..return.$this-
2bd00 3e 72 6f 6f 74 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 >rootIdentifier;.}.....public.fu
2bd20 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 2d 3e nction.getUrl().{.return.$this->
2bd40 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 53 6f url;.}.....public.function.getSo
2bd60 75 72 63 65 28 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 urce($identifier).{.$label.=.arr
2bd80 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 3e 67 65 ay_search($identifier,.$this->ge
2bda0 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 0a 72 65 74 75 72 6e tTags()).?:.$identifier;..return
2bdc0 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 20 3d 3e .array('type'.=>.'git',.'url'.=>
2bde0 20 24 74 68 69 73 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 .$this->getUrl(),.'reference'.=>
2be00 20 24 6c 61 62 65 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 .$label);.}.....public.function.
2be20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 getDist($identifier).{.$label.=.
2be40 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-
2be60 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 6c >getTags()).?:.$identifier;.$url
2be80 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 62 69 74 62 .=.$this->getScheme()...'://bitb
2bea0 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 2f 27 2e 24 74 68 ucket.org/'.$this->owner.'/'.$th
2bec0 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 6c 61 62 65 6c 2e 27 2e is->repository.'/get/'.$label.'.
2bee0 7a 69 70 27 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 27 7a zip';..return.array('type'.=>.'z
2bf00 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 ip',.'url'.=>.$url,.'reference'.
2bf20 3d 3e 20 24 6c 61 62 65 6c 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a =>.$label,.'shasum'.=>.'');.}...
2bf40 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 6e 66 ..public.function.getComposerInf
2bf60 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 73 73 ormation($identifier).{.if.(!iss
2bf80 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 72 5d et($this->infoCache[$identifier]
2bfa0 29 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 53 63 68 65 6d )).{.$resource.=.$this->getSchem
2bfc0 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 73 2d e()...'://bitbucket.org/'.$this-
2bfe0 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 72 >owner.'/'.$this->repository.'/r
2c000 61 77 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e aw/'.$identifier.'/composer.json
2c020 27 3b 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 6e 74 65 6e 74 ';.$composer.=.$this->getContent
2c040 73 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 21 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a s($resource);.if.(!$composer).{.
2c060 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a return;.}..$composer.=.JsonFile:
2c080 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 73 6f 75 72 63 65 29 :parseJson($composer,.$resource)
2c0a0 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 74 69 6d 65 27 5d 29 ;..if.(!isset($composer['time'])
2c0c0 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 53 63 68 65 6d 65 ).{.$resource.=.$this->getScheme
2c0e0 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 2f 31 2e 30 2f 72 ()...'://api.bitbucket.org/1.0/r
2c100 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 2e 27 2f 27 2e 24 epositories/'.$this->owner.'/'.$
2c120 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 61 6e 67 65 73 65 74 73 2f 27 2e this->repository.'/changesets/'.
2c140 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 68 61 6e 67 65 73 65 74 20 3d 20 4a 73 6f 6e 46 69 $identifier;.$changeset.=.JsonFi
2c160 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 6e 74 73 le::parseJson($this->getContents
2c180 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 70 6f 73 ($resource),.$resource);.$compos
2c1a0 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 68 61 6e 67 65 73 65 74 5b 27 74 69 6d 65 73 74 61 er['time'].=.$changeset['timesta
2c1c0 6d 70 27 5d 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 6e 74 69 mp'];.}.$this->infoCache[$identi
2c1e0 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 24 74 68 fier].=.$composer;.}..return.$th
2c200 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 0a 0a 0a is->infoCache[$identifier];.}...
2c220 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 0a 69 66 ..public.function.getTags().{.if
2c240 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 72 65 73 6f 75 .(null.===.$this->tags).{.$resou
2c260 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 2f 61 rce.=.$this->getScheme()...'://a
2c280 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 69 65 pi.bitbucket.org/1.0/repositorie
2c2a0 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 6f s/'.$this->owner.'/'.$this->repo
2c2c0 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e sitory.'/tags';.$tagsData.=.Json
2c2e0 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 6e File::parseJson($this->getConten
2c300 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 68 69 73 ts($resource),.$resource);.$this
2c320 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 ->tags.=.array();.foreach.($tags
2c340 44 61 74 61 20 61 73 20 24 74 61 67 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e Data.as.$tag.=>.$data).{.$this->
2c360 74 61 67 73 5b 24 74 61 67 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a tags[$tag].=.$data['raw_node'];.
2c380 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 }.}..return.$this->tags;.}.....p
2c3a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 ublic.function.getBranches().{.i
2c3c0 66 20 28 6e 75 6c 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 f.(null.===.$this->branches).{.$
2c3e0 72 65 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 resource.=.$this->getScheme()...
2c400 27 3a 2f 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 '://api.bitbucket.org/1.0/reposi
2c420 74 6f 72 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 tories/'.$this->owner.'/'.$this-
2c440 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 3b 0a 24 62 72 61 6e 63 68 >repository.'/branches';.$branch
2c460 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 69 73 Data.=.JsonFile::parseJson($this
2c480 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 6f 75 ->getContents($resource),.$resou
2c4a0 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 29 3b rce);.$this->branches.=.array();
2c4c0 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 63 68 .foreach.($branchData.as.$branch
2c4e0 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 62 72 .=>.$data).{.$this->branches[$br
2c500 61 6e 63 68 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 anch].=.$data['raw_node'];.}.}..
2c520 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 70 75 return.$this->branches;.}.....pu
2c540 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 49 4f blic.static.function.supports(IO
2c560 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 61 6c Interface.$io,.$url,.$deep.=.fal
2c580 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 68 74 74 70 73 3a 2f se).{.if.(!preg_match('#^https:/
2c5a0 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 29 5c 2e 67 /bitbucket\.org/([^/]+)/(.+?)\.g
2c5c0 69 74 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 it$#',.$url)).{.return.false;.}.
2c5e0 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'
2c600 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
2c620 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 67 69 74 20 ->write('Skipping.Bitbucket.git.
2c640 64 72 69 76 65 72 20 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 driver.for.'.$url.'.because.the.
2c660 4f 70 65 6e 53 53 4c 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 OpenSSL.PHP.extension.is.missing
2c680 2e 27 29 3b 0a 7d 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 .');.}..return.false;.}..return.
2c6a0 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 0a 6e 61 6d 65 73 true;.}.}.<?php............names
2c6c0 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 3b 0a 0a 75 pace.Composer\Repository\Vcs;..u
2c6e0 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 65 20 43 se.Composer\Json\JsonFile;.use.C
2c700 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 6f 72 3b 0a 75 73 omposer\Util\ProcessExecutor;.us
2c720 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 3b 0a 75 73 65 20 e.Composer\Util\Filesystem;.use.
2c740 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 0a 0a 0a 0a 63 6c 61 Composer\IO\IOInterface;.....cla
2c760 73 73 20 47 69 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 ss.GitDriver.extends.VcsDriver.{
2c780 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 20 24 62 72 61 .protected.$tags;.protected.$bra
2c7a0 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 69 66 69 65 72 nches;.protected.$rootIdentifier
2c7c0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 ;.protected.$repoDir;.protected.
2c7e0 24 69 6e 66 6f 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 $infoCache.=.array();.....public
2c800 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 69 66 20 28 73 74 61 .function.initialize().{.if.(sta
2c820 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 tic::isLocalUrl($this->url)).{.$
2c840 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c this->repoDir.=.str_replace('fil
2c860 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b e://',.'',.$this->url);.}.else.{
2c880 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d .$this->repoDir.=.$this->config-
2c8a0 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 29 20 2e 20 27 2f 27 20 2e 20 70 72 >get('cache-vcs-dir')...'/'...pr
2c8c0 65 67 5f 72 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 eg_replace('{[^a-z0-9.]}i',.'-',
2c8e0 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 .$this->url)...'/';..$fs.=.new.F
2c900 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 ilesystem();.$fs->ensureDirector
2c920 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 yExists(dirname($this->repoDir))
2c940 3b 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 ;..if.(!is_writable(dirname($thi
2c960 73 2d 3e 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 s->repoDir))).{.throw.new.\Runti
2c980 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 meException('Can.not.clone.'.$th
2c9a0 69 73 2d 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f is->url.'.to.access.package.info
2c9c0 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 rmation..The."'.dirname($this->r
2c9e0 65 70 6f 44 69 72 29 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 epoDir).'".directory.is.not.writ
2ca00 61 62 6c 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a able.by.the.current.user.');.}..
2ca20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b 40 5b 5e if.(preg_match('{^ssh://[^@]+@[^
2ca40 3a 5d 2b 3a 5b 5e 30 2d 39 5d 2b 7d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 74 68 :]+:[^0-9]+}',.$this->url)).{.th
2ca60 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
2ca80 6e 28 27 54 68 65 20 73 6f 75 72 63 65 20 55 52 4c 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 n('The.source.URL.'.$this->url.'
2caa0 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 20 55 52 4c 73 20 73 68 6f 75 6c 64 20 68 61 76 .is.invalid,.ssh.URLs.should.hav
2cac0 65 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 61 66 74 65 72 20 22 3a 22 2e 27 2e 22 5c 6e 22 e.a.port.number.after.":".'."\n"
2cae0 2e 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 32 32 2f 70 .'Use.ssh://git@example.com:22/p
2cb00 61 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 70 61 74 68 ath.or.just.git@example.com:path
2cb20 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 .if.you.do.not.want.to.provide.a
2cb40 20 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 74 6f 6d 20 70 6f 72 74 2e 27 29 3b 0a 7d 0a 0a .password.or.custom.port.');.}..
2cb60 0a 20 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 ..if.(is_dir($this->repoDir).&&.
2cb80 30 20 3d 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 27 67 0.===.$this->process->execute('g
2cba0 69 74 20 72 65 6d 6f 74 65 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f it.remote',.$output,.$this->repo
2cbc0 44 69 72 29 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 Dir)).{.if.(0.!==.$this->process
2cbe0 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 6d 6f 74 65 20 75 70 64 61 74 65 20 2d 2d 70 ->execute('git.remote.update.--p
2cc00 72 75 6e 65 20 6f 72 69 67 69 6e 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 rune.origin',.$output,.$this->re
2cc20 70 6f 44 69 72 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 poDir)).{.$this->io->write('<err
2cc40 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 75 70 64 61 74 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c or>Failed.to.update.'.$this->url
2cc60 2e 27 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 69 .',.package.information.from.thi
2cc80 73 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 61 79 20 62 65 20 6f 75 74 64 61 74 65 64 20 28 27 2e s.repository.may.be.outdated.('.
2cca0 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 29 $this->process->getErrorOutput()
2ccc0 2e 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d .')</error>');.}.}.else.{...$fs-
2cce0 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 70 6f 44 69 72 29 >removeDirectory($this->repoDir)
2cd00 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 63 68 6f 27 29 3b ;....putenv('GIT_ASKPASS=echo');
2cd20 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 6c 6f 6e 65 20 2d .$command.=.sprintf('git.clone.-
2cd40 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 6c 61 72 67 28 24 -mirror.%s.%s',.escapeshellarg($
2cd60 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 28 24 74 68 69 73 this->url),.escapeshellarg($this
2cd80 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 69 73 2d 3e 70 72 ->repoDir));.if.(0.!==.$this->pr
2cda0 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
2cdc0 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 65 73 73 2d 3e 67 )).{.$output.=.$this->process->g
2cde0 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 3d 20 24 74 68 69 etErrorOutput();..if.(0.!==.$thi
2ce00 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 73 69 s->process->execute('git.--versi
2ce20 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 6e 65 on',.$ignoredOutput)).{.throw.ne
2ce40 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 20 63 w.\RuntimeException('Failed.to.c
2ce60 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 61 73 20 6e 6f 74 lone.'.$this->url.',.git.was.not
2ce80 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 6e 73 74 61 6c 6c .found,.check.that.it.is.install
2cea0 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 2e 20 22 5c 6e 5c ed.and.in.your.PATH.env.'..."\n\
2cec0 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 72 6f 72 4f 75 74 n"...$this->process->getErrorOut
2cee0 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 69 6d 65 45 78 63 put());.}..throw.new.\RuntimeExc
2cf00 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 24 74 68 69 73 2d eption('Failed.to.clone.'.$this-
2cf20 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 6b 61 67 65 73 20 >url.',.could.not.read.packages.
2cf40 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 29 3b 0a 7d 0a 7d from.it'..."\n\n"..$output);.}.}
2cf60 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 73 2d 3e 67 65 74 .}..$this->getTags();.$this->get
2cf80 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 75 6e 63 74 69 6f Branches();.}.....public.functio
2cfa0 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 20 28 6e 75 6c 6c n.getRootIdentifier().{.if.(null
2cfc0 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 29 20 7b 0a 24 74 .===.$this->rootIdentifier).{.$t
2cfe0 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 74 65 72 27 3b 0a his->rootIdentifier.=.'master';.
2d000 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 28 27 67 69 74 20 ...$this->process->execute('git.
2d020 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 74 2c 20 24 74 68 branch.--no-color',.$output,.$th
2d040 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 24 74 68 69 73 2d is->repoDir);.$branches.=.$this-
2d060 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 3b 0a 69 >process->splitLines($output);.i
2d080 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 62 72 61 6e 63 68 f.(!in_array('*.master',.$branch
2d0a0 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 61 73 20 24 62 72 es)).{.foreach.($branches.as.$br
2d0c0 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 63 anch).{.if.($branch.&&.preg_matc
2d0e0 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 20 24 6d 61 74 63 h('{^\*.+(\S+)}',.$branch,.$matc
2d100 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 72 20 3d 20 24 6d h)).{.$this->rootIdentifier.=.$m
2d120 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 65 74 75 72 6e 20 atch[1];.break;.}.}.}.}..return.
2d140 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 0a 0a 0a 70 75 62 $this->rootIdentifier;.}.....pub
2d160 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 74 75 72 6e 20 24 lic.function.getUrl().{.return.$
2d180 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 6e 63 74 69 6f 6e this->url;.}.....public.function
2d1a0 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 24 6c 61 62 65 6c .getSource($identifier).{.$label
2d1c0 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 72 2c 20 28 61 72 .=.array_search($identifier,.(ar
2d1e0 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 74 69 66 69 65 72 ray).$this->tags).?:.$identifier
2d200 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 27 67 69 74 27 2c ;..return.array('type'.=>.'git',
2d220 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 20 27 72 65 66 65 .'url'.=>.$this->getUrl(),.'refe
2d240 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 75 62 6c 69 63 20 rence'.=>.$label);.}.....public.
2d260 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 29 0a 7b 0a function.getDist($identifier).{.
2d280 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 66 75 6e 63 74 69 return.null;.}.....public.functi
2d2a0 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 24 69 64 65 6e 74 on.getComposerInformation($ident
2d2c0 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 3e 69 6e 66 6f 43 ifier).{.if.(!isset($this->infoC
2d2e0 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 6f 75 72 63 65 20 ache[$identifier])).{.$resource.
2d300 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 6e 27 2c 20 65 73 =.sprintf('%s:composer.json',.es
2d320 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 3b 0a 24 74 68 69 capeshellarg($identifier));.$thi
2d340 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 67 69 74 s->process->execute(sprintf('git
2d360 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 6d 70 6f 73 65 72 .show.%s',.$resource),.$composer
2d380 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 72 69 6d 28 24 63 ,.$this->repoDir);..if.(!trim($c
2d3a0 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 6f 73 65 72 omposer)).{.return;.}..$composer
2d3c0 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 6f 73 65 72 .=.JsonFile::parseJson($composer
2d3e0 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 6f 6d 70 6f ,.$resource);..if.(!isset($compo
2d400 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 63 65 73 73 2d 3e ser['time'])).{.$this->process->
2d420 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 31 20 2d 2d 66 6f execute(sprintf('git.log.-1.--fo
2d440 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 61 72 67 28 24 69 rmat=%%at.%s',.escapeshellarg($i
2d460 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 73 2d 3e 72 65 70 dentifier)),.$output,.$this->rep
2d480 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 6d 65 28 27 40 27 oDir);.$date.=.new.\DateTime('@'
2d4a0 2e 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e .trim($output),.new.\DateTimeZon
2d4c0 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 e('UTC'));.$composer['time'].=.$
2d4e0 64 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 7d 0a 24 date->format('Y-m-d.H:i:s');.}.$
2d500 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 24 this->infoCache[$identifier].=.$
2d520 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 43 composer;.}..return.$this->infoC
2d540 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 20 ache[$identifier];.}.....public.
2d560 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 3d function.getTags().{.if.(null.==
2d580 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d =.$this->tags).{.$this->process-
2d5a0 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 >execute('git.tag',.$output,.$th
2d5c0 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 is->repoDir);.$output.=.$this->p
2d5e0 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 3b 0a 24 74 68 rocess->splitLines($output);.$th
2d600 69 73 2d 3e 74 61 67 73 20 3d 20 24 6f 75 74 70 75 74 20 3f 20 61 72 72 61 79 5f 63 6f 6d 62 69 is->tags.=.$output.?.array_combi
2d620 6e 65 28 24 6f 75 74 70 75 74 2c 20 24 6f 75 74 70 75 74 29 20 3a 20 61 72 72 61 79 28 29 3b 0a ne($output,.$output).:.array();.
2d640 7d 0a 0a 72 65 74 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 }..return.$this->tags;.}.....pub
2d660 6c 69 63 20 66 75 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 lic.function.getBranches().{.if.
2d680 28 6e 75 6c 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 62 72 (null.===.$this->branches).{.$br
2d6a0 61 6e 63 68 65 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 anches.=.array();..$this->proces
2d6c0 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f s->execute('git.branch.--no-colo
2d6e0 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 r.--no-abbrev.-v',.$output,.$thi
2d700 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f s->repoDir);.foreach.($this->pro
2d720 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 72 cess->splitLines($output).as.$br
2d740 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 anch).{.if.($branch.&&.!preg_mat
2d760 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 61 6e 63 68 29 29 ch('{^.*[^/]+/HEAD.}',.$branch))
2d780 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 20 29 3f 20 2a 28 .{.if.(preg_match('{^(?:\*.)?.*(
2d7a0 5c 53 2b 29 20 2a 28 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 \S+).*([a-f0-9]+)..*$}',.$branch
2d7c0 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 63 68 5b 31 5d ,.$match)).{.$branches[$match[1]
2d7e0 5d 20 3d 20 24 6d 61 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 ].=.$match[2];.}.}.}..$this->bra
2d800 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 24 74 68 nches.=.$branches;.}..return.$th
2d820 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 69 is->branches;.}.....public.stati
2d840 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 20 c.function.supports(IOInterface.
2d860 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 20 28 $io,.$url,.$deep.=.false).{.if.(
2d880 70 72 65 67 5f 6d 61 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 preg_match('#(^git://|\.git$|git
2d8a0 28 3f 3a 6f 6c 69 74 65 29 3f 40 7c 2f 2f 67 69 74 5c 2e 7c 2f 2f 67 69 74 68 75 62 2e 63 6f 6d (?:olite)?@|//git\.|//github.com
2d8c0 2f 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a /)#i',.$url)).{.return.true;.}..
2d8e0 0a 20 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 ..if.(static::isLocalUrl($url)).
2d900 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 {.if.(!is_dir($url)).{.throw.new
2d920 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 44 69 72 65 63 74 6f 72 79 20 64 6f .\RuntimeException('Directory.do
2d940 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20 27 2e 24 75 72 6c 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 es.not.exist:.'.$url);.}..$proce
2d960 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 24 75 72 6c ss.=.new.ProcessExecutor();.$url
2d980 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 27 2c 20 24 75 .=.str_replace('file://',.'',.$u
2d9a0 72 6c 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 rl);...if.($process->execute('gi
2d9c0 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a t.tag',.$output,.$url).===.0).{.
2d9e0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 20 7b 0a return.true;.}.}..if.(!$deep).{.
2da00 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b return.false;.}....return.false;
2da20 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.
2da40 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
2da60 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c mposer\Cache;.use.Composer\Json\
2da80 4a 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 JsonFile;.use.Composer\Util\Proc
2daa0 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 55 74 69 6c 5c 46 essExecutor;.use.Composer\Util\F
2dac0 69 6c 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 53 76 6e ilesystem;.use.Composer\Util\Svn
2dae0 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 .as.SvnUtil;.use.Composer\IO\IOI
2db00 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 65 nterface;.use.Composer\Downloade
2db20 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 63 6c 61 73 73 r\TransportException;......class
2db40 20 53 76 6e 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 .SvnDriver.extends.VcsDriver.{.p
2db60 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 rotected.$cache;.protected.$base
2db80 55 72 6c 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 20 Url;.protected.$tags;.protected.
2dba0 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 69 $branches;.protected.$rootIdenti
2dbc0 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 72 72 fier;.protected.$infoCache.=.arr
2dbe0 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 75 6e 6b 50 61 74 68 20 3d 20 27 74 ay();..protected.$trunkPath.=.'t
2dc00 72 75 6e 6b 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d runk';.protected.$branchesPath.=
2dc20 20 27 62 72 61 6e 63 68 65 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 50 61 74 68 .'branches';.protected.$tagsPath
2dc40 20 3d 20 27 74 61 67 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 50 61 74 .=.'tags';.protected.$packagePat
2dc60 68 20 3d 20 27 27 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 h.=.'';.....private.$util;.....p
2dc80 75 62 6c 69 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 24 74 ublic.function.initialize().{.$t
2dca0 68 69 73 2d 3e 75 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 his->url.=.$this->baseUrl.=.rtri
2dcc0 6d 28 73 65 6c 66 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 m(self::normalizeUrl($this->url)
2dce0 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f ,.'/');..if.(isset($this->repoCo
2dd00 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 74 72 nfig['trunk-path'])).{.$this->tr
2dd20 75 6e 6b 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 72 75 unkPath.=.$this->repoConfig['tru
2dd40 6e 6b 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 nk-path'];.}.if.(isset($this->re
2dd60 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 poConfig['branches-path'])).{.$t
2dd80 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 his->branchesPath.=.$this->repoC
2dda0 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 onfig['branches-path'];.}.if.(is
2ddc0 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 set($this->repoConfig['tags-path
2dde0 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e '])).{.$this->tagsPath.=.$this->
2de00 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 repoConfig['tags-path'];.}.if.(i
2de20 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 2d sset($this->repoConfig['package-
2de40 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 50 61 74 68 20 3d 20 path'])).{.$this->packagePath.=.
2de60 27 2f 27 20 2e 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 61 '/'...trim($this->repoConfig['pa
2de80 63 6b 61 67 65 2d 70 61 74 68 27 5d 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 ckage-path'],.'/');.}..if.(false
2dea0 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 74 68 69 73 2d 3e 75 72 6c 2c .!==.($pos.=.strrpos($this->url,
2dec0 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 29 29 29 20 7b 0a 24 74 68 .'/'...$this->trunkPath))).{.$th
2dee0 69 73 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 is->baseUrl.=.substr($this->url,
2df00 20 30 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 .0,.$pos);.}..$this->cache.=.new
2df20 20 43 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 .Cache($this->io,.$this->config-
2df40 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 70 72 65 67 5f >get('cache-repo-dir').'/'.preg_
2df60 72 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 74 replace('{[^a-z0-9.]}i',.'-',.$t
2df80 68 69 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 his->baseUrl));..$this->getBranc
2dfa0 68 65 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 hes();.$this->getTags();.}.....p
2dfc0 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
2dfe0 28 29 0a 7b 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 ().{.return.$this->rootIdentifie
2e000 72 20 3f 3a 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 r.?:.$this->trunkPath;.}.....pub
2e020 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 74 75 72 6e 20 24 lic.function.getUrl().{.return.$
2e040 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 6e 63 74 69 6f 6e this->url;.}.....public.function
2e060 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 72 65 74 75 72 6e .getSource($identifier).{.return
2e080 20 61 72 72 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 .array('type'.=>.'svn',.'url'.=>
2e0a0 20 24 74 68 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 .$this->baseUrl,.'reference'.=>.
2e0c0 24 69 64 65 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 $identifier);.}.....public.funct
2e0e0 69 6f 6e 20 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 ion.getDist($identifier).{.retur
2e100 6e 20 6e 75 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 n.null;.}.....public.function.ge
2e120 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 66 69 65 72 tComposerInformation($identifier
2e140 29 0a 7b 0a 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 ).{.$identifier.=.'/'...trim($id
2e160 65 6e 74 69 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 entifier,.'/')...'/';..if.($res.
2e180 3d 20 24 74 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 =.$this->cache->read($identifier
2e1a0 2e 27 2e 6a 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 .'.json')).{.$this->infoCache[$i
2e1c0 64 65 6e 74 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 dentifier].=.JsonFile::parseJson
2e1e0 28 24 72 65 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 ($res);.}..if.(!isset($this->inf
2e200 6f 43 61 63 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 oCache[$identifier])).{.preg_mat
2e220 63 68 28 27 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 ch('{^(.+?)(@\d+)?/$}',.$identif
2e240 69 65 72 2c 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 ier,.$match);.if.(!empty($match[
2e260 32 5d 29 29 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 2])).{.$path.=.$match[1];.$rev.=
2e280 20 24 6d 61 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 24 69 64 .$match[2];.}.else.{.$path.=.$id
2e2a0 65 6e 74 69 66 69 65 72 3b 0a 24 72 65 76 20 3d 20 27 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 72 entifier;.$rev.=.'';.}..try.{.$r
2e2c0 65 73 6f 75 72 63 65 20 3d 20 24 70 61 74 68 2e 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b esource.=.$path.'composer.json';
2e2e0 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 27 73 76 6e 20 63 .$output.=.$this->execute('svn.c
2e300 61 74 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 20 at',.$this->baseUrl...$resource.
2e320 2e 20 24 72 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 72 ..$rev);.if.(!trim($output)).{.r
2e340 65 74 75 72 6e 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 eturn;.}.}.catch.(\RuntimeExcept
2e360 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 ion.$e).{.throw.new.TransportExc
2e380 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 24 63 6f eption($e->getMessage());.}..$co
2e3a0 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 6f 75 mposer.=.JsonFile::parseJson($ou
2e3c0 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 tput,.$this->baseUrl...$resource
2e3e0 20 2e 20 24 72 65 76 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 ...$rev);..if.(!isset($composer[
2e400 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 'time'])).{.$output.=.$this->exe
2e420 63 75 74 65 28 27 73 76 6e 20 69 6e 66 6f 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 cute('svn.info',.$this->baseUrl.
2e440 2e 20 24 70 61 74 68 20 2e 20 24 72 65 76 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d ..$path...$rev);.foreach.($this-
2e460 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
2e480 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 .$line).{.if.($line.&&.preg_matc
2e4a0 68 28 27 7b 5e 4c 61 73 74 20 43 68 61 6e 67 65 64 20 44 61 74 65 3a 20 28 5b 5e 28 5d 2b 29 7d h('{^Last.Changed.Date:.([^(]+)}
2e4c0 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 ',.$line,.$match)).{.$date.=.new
2e4e0 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 .\DateTime($match[1],.new.\DateT
2e500 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 imeZone('UTC'));.$composer['time
2e520 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 48 3a 69 3a 73 27 '].=.$date->format('Y-m-d.H:i:s'
2e540 29 3b 0a 62 72 65 61 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 );.break;.}.}.}..$this->cache->w
2e560 72 69 74 65 28 24 69 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 rite($identifier.'.json',.json_e
2e580 6e 63 6f 64 65 28 24 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 ncode($composer));.$this->infoCa
2e5a0 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 72 3b 0a 7d 0a che[$identifier].=.$composer;.}.
2e5c0 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 64 65 6e 74 69 .return.$this->infoCache[$identi
2e5e0 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 6e 20 67 65 74 fier];.}.....public.function.get
2e600 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 2d 3e 74 61 67 Tags().{.if.(null.===.$this->tag
2e620 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 s).{.$this->tags.=.array();..if.
2e640 28 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 6f ($this->tagsPath.!==.false).{.$o
2e660 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 6c 73 20 2d utput.=.$this->execute('svn.ls.-
2e680 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 -verbose',.$this->baseUrl...'/'.
2e6a0 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 ..$this->tagsPath);.if.($output)
2e6c0 20 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 .{.foreach.($this->process->spli
2e6e0 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 24 6c 69 6e tLines($output).as.$line).{.$lin
2e700 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 26 26 20 70 72 e.=.trim($line);.if.($line.&&.pr
2e720 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 29 5c 73 2a 24 eg_match('{^\s*(\S+).*?(\S+)\s*$
2e740 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 73 73 65 74 28 }',.$line,.$match)).{.if.(isset(
2e760 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 32 5d 29 20 26 $match[1]).&&.isset($match[2]).&
2e780 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 69 73 2d 3e 74 &.$match[2].!==.'./').{.$this->t
2e7a0 61 67 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 24 74 68 ags[rtrim($match[2],.'/')].=.$th
2e7c0 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 is->buildIdentifier(.'/'...$this
2e7e0 2d 3e 74 61 67 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 24 6d ->tagsPath...'/'...$match[2],.$m
2e800 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 atch[1].);.}.}.}.}.}.}..return.$
2e820 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 63 74 69 6f this->tags;.}.....public.functio
2e840 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 3d 3d 20 24 n.getBranches().{.if.(null.===.$
2e860 74 68 69 73 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 this->branches).{.$this->branche
2e880 73 20 3d 20 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 s.=.array();..$output.=.$this->e
2e8a0 78 65 63 75 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 xecute('svn.ls.--verbose',.$this
2e8c0 2d 3e 62 61 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 ->baseUrl...'/');.if.($output).{
2e8e0 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 4c .foreach.($this->process->splitL
2e900 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 24 6c 69 6e 65 20 ines($output).as.$line).{.$line.
2e920 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 26 26 20 70 72 65 67 =.trim($line);.if.($line.&&.preg
2e940 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 29 5c 73 2a 24 7d 27 _match('{^\s*(\S+).*?(\S+)\s*$}'
2e960 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 73 73 65 74 28 24 6d ,.$line,.$match)).{.if.(isset($m
2e980 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 32 5d 29 20 26 26 20 atch[1]).&&.isset($match[2]).&&.
2e9a0 24 6d 61 74 63 68 5b 32 5d 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 20 2e $match[2].===.$this->trunkPath..
2e9c0 20 27 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 74 .'/').{.$this->branches[$this->t
2e9e0 72 75 6e 6b 50 61 74 68 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 runkPath].=.$this->buildIdentifi
2ea00 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 2c 0a 24 6d 61 74 er(.'/'...$this->trunkPath,.$mat
2ea20 63 68 5b 31 5d 0a 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 ch[1].);.$this->rootIdentifier.=
2ea40 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 .$this->branches[$this->trunkPat
2ea60 68 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 70 75 74 h];.break;.}.}.}.}.unset($output
2ea80 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 21 3d 3d 20 );..if.($this->branchesPath.!==.
2eaa0 66 61 6c 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 false).{.$output.=.$this->execut
2eac0 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 73 e('svn.ls.--verbose',.$this->bas
2eae0 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 eUrl...'/'...$this->branchesPath
2eb00 29 3b 0a 69 66 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 );.if.($output).{.foreach.($this
2eb20 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 74 72 69 6d 28 24 6f 75 74 70 ->process->splitLines(trim($outp
2eb40 75 74 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c ut)).as.$line).{.$line.=.trim($l
2eb60 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 63 68 28 27 7b ine);.if.($line.&&.preg_match('{
2eb80 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 69 6e 65 2c 20 ^\s*(\S+).*?(\S+)\s*$}',.$line,.
2eba0 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 5b 31 5d 29 20 $match)).{.if.(isset($match[1]).
2ebc0 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 63 68 5b 32 5d &&.isset($match[2]).&&.$match[2]
2ebe0 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 72 74 72 .!==.'./').{.$this->branches[rtr
2ec00 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 im($match[2],.'/')].=.$this->bui
2ec20 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 ldIdentifier(.'/'...$this->branc
2ec40 68 65 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 24 6d 61 74 63 hesPath...'/'...$match[2],.$matc
2ec60 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 h[1].);.}.}.}.}.}.}..return.$thi
2ec80 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 69 63 s->branches;.}.....public.static
2eca0 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 20 24 .function.supports(IOInterface.$
2ecc0 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 6c 20 io,.$url,.$deep.=.false).{.$url.
2ece0 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 20 28 =.self::normalizeUrl($url);.if.(
2ed00 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 68 3a preg_match('#(^svn://|^svn\+ssh:
2ed20 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 74 72 //|svn\.)#i',.$url)).{.return.tr
2ed40 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 3a 3a ue;.}....if.(!$deep.&&.!static::
2ed60 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 73 65 isLocalUrl($url)).{.return.false
2ed80 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 6f 63 ;.}..$processExecutor.=.new.Proc
2eda0 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 73 73 essExecutor();..$exit.=.$process
2edc0 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 2d 6e Executor->execute(."svn.info.--n
2ede0 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 65 64 on-interactive.{$url}",.$ignored
2ee00 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 0a 20 Output.);..if.($exit.===.0).{...
2ee20 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 73 74 return.true;.}..if.(false.!==.st
2ee40 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 6f 72 ripos($processExecutor->getError
2ee60 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 64 3a Output(),.'authorization.failed:
2ee80 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 72 6e ')).{.....return.true;.}..return
2eea0 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 61 74 .false;.}.........protected.stat
2eec0 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 0a 7b ic.function.normalizeUrl($url).{
2eee0 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 66 73 .$fs.=.new.Filesystem();.if.($fs
2ef00 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 72 6e ->isAbsolutePath($url)).{.return
2ef20 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 20 27 .'file://'...strtr($url,.'\\',.'
2ef40 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 0a 0a /');.}..return.$url;.}..........
2ef60 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 6f 6d .protected.function.execute($com
2ef80 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 69 73 mand,.$url).{.if.(null.===.$this
2efa0 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 6e 55 ->util).{.$this->util.=.new.SvnU
2efc0 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 20 24 til($this->baseUrl,.$this->io,.$
2efe0 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 6e 20 this->process);.}..try.{.return.
2f000 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 20 24 $this->util->execute($command,.$
2f020 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 6f 6e url);.}.catch.(\RuntimeException
2f040 20 24 65 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d .$e).{.if.(0.!==.$this->process-
2f060 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 >execute('svn.--version',.$ignor
2f080 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 74 69 6d 65 45 edOutput)).{.throw.new.\RuntimeE
2f0a0 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 27 2e 24 74 68 69 73 xception('Failed.to.load.'.$this
2f0c0 2d 3e 75 72 6c 2e 27 2c 20 73 76 6e 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 ->url.',.svn.was.not.found,.chec
2f0e0 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f k.that.it.is.installed.and.in.yo
2f100 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e ur.PATH.env.'..."\n\n"...$this->
2f120 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 0a 74 process->getErrorOutput());.}..t
2f140 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 52 65 70 hrow.new.\RuntimeException(.'Rep
2f160 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 ository.'.$this->url.'.could.not
2f180 20 62 65 20 70 72 6f 63 65 73 73 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 .be.processed,.'.$e->getMessage(
2f1a0 29 0a 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 6e 63 ).);.}.}..........protected.func
2f1c0 74 69 6f 6e 20 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 24 62 61 73 65 44 69 72 2c 20 24 tion.buildIdentifier($baseDir,.$
2f1e0 72 65 76 69 73 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 62 61 73 65 44 69 revision).{.return.rtrim($baseDi
2f200 72 2c 20 27 2f 27 29 20 2e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 50 61 74 68 20 2e 20 27 r,.'/')...$this->packagePath...'
2f220 2f 40 27 20 2e 20 24 72 65 76 69 73 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a /@'...$revision;.}.}..<?php.....
2f240 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 69 .......namespace.Composer\Reposi
2f260 74 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 tory\Vcs;..use.Composer\IO\IOInt
2f280 65 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 erface;.....interface.VcsDriverI
2f2a0 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 69 6f 6e 20 69 6e nterface.{....public.function.in
2f2c0 69 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 itialize();........public.functi
2f2e0 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 24 69 64 65 6e 74 on.getComposerInformation($ident
2f300 69 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 ifier);.......public.function.ge
2f320 74 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 tRootIdentifier();.......public.
2f340 66 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 function.getBranches();.......pu
2f360 62 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 blic.function.getTags();......pu
2f380 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 65 blic.function.getDist($identifie
2f3a0 72 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 r);......public.function.getSour
2f3c0 63 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 ce($identifier);.......public.fu
2f3e0 6e 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 nction.getUrl();.........public.
2f400 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 6e 74 69 function.hasComposerFile($identi
2f420 66 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 fier);..........public.static.fu
2f440 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 20 24 69 6f 2c nction.supports(IOInterface.$io,
2f460 20 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 .$url,.$deep.=.false);.}.<?php..
2f480 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
2f4a0 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 4a 73 6f 6e 5c ository\Vcs;..use.Composer\Json\
2f4c0 4a 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 JsonFile;.use.Composer\Util\Proc
2f4e0 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 55 74 69 6c 5c 46 essExecutor;.use.Composer\Util\F
2f500 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 ilesystem;.use.Composer\IO\IOInt
2f520 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 6e erface;.....class.HgDriver.exten
2f540 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 0a ds.VcsDriver.{.protected.$tags;.
2f560 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 24 protected.$branches;.protected.$
2f580 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 72 65 70 6f 44 rootIdentifier;.protected.$repoD
2f5a0 69 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 72 72 61 79 ir;.protected.$infoCache.=.array
2f5c0 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 69 61 6c 69 ();.....public.function.initiali
2f5e0 7a 65 28 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 74 ze().{.if.(static::isLocalUrl($t
2f600 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 73 74 his->url)).{.$this->repoDir.=.st
2f620 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e r_replace('file://',.'',.$this->
2f640 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 74 68 69 73 url);.}.else.{.$cacheDir.=.$this
2f660 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 29 3b 0a ->config->get('cache-vcs-dir');.
2f680 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 63 61 63 68 65 44 69 72 20 2e 20 27 2f 27 $this->repoDir.=.$cacheDir...'/'
2f6a0 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 5d 7d 69 27 2c 20 ...preg_replace('{[^a-z0-9]}i',.
2f6c0 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 24 66 73 20 3d 20 6e '-',.$this->url)...'/';..$fs.=.n
2f6e0 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 ew.Filesystem();.$fs->ensureDire
2f700 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 61 63 68 65 44 69 72 29 3b 0a 0a 69 66 20 28 21 69 73 ctoryExists($cacheDir);..if.(!is
2f720 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 _writable(dirname($this->repoDir
2f740 29 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 ))).{.throw.new.\RuntimeExceptio
2f760 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 n('Can.not.clone.'.$this->url.'.
2f780 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 54 to.access.package.information..T
2f7a0 68 65 20 22 27 2e 24 63 61 63 68 65 44 69 72 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 he."'.$cacheDir.'".directory.is.
2f7c0 6e 6f 74 20 77 72 69 74 61 62 6c 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 75 73 65 72 not.writable.by.the.current.user
2f7e0 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 65 70 6f .');.}....if.(is_dir($this->repo
2f800 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 73 73 2d 3e 65 78 Dir).&&.0.===.$this->process->ex
2f820 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 ecute('hg.summary',.$output,.$th
2f840 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 24 74 68 69 73 2d is->repoDir)).{.if.(0.!==.$this-
2f860 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 70 75 6c 6c 20 2d 75 27 2c 20 >process->execute('hg.pull.-u',.
2f880 24 6f 75 74 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 $output,.$this->repoDir)).{.$thi
2f8a0 73 2d 3e 69 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 s->io->write('<error>Failed.to.u
2f8c0 70 64 61 74 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 pdate.'.$this->url.',.package.in
2f8e0 66 6f 72 6d 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 formation.from.this.repository.m
2f900 61 79 20 62 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 ay.be.outdated.('.$this->process
2f920 2d 3e 67 65 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 ->getErrorOutput().')</error>');
2f940 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f .}.}.else.{...$fs->removeDirecto
2f960 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 ry($this->repoDir);..if.(0.!==.$
2f980 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 66 28 27 this->process->execute(sprintf('
2f9a0 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 6c 6c 61 72 67 28 hg.clone.%s.%s',.escapeshellarg(
2f9c0 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 28 24 74 68 69 $this->url),.escapeshellarg($thi
2f9e0 73 2d 3e 72 65 70 6f 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 61 63 68 65 44 69 72 s->repoDir)),.$output,.$cacheDir
2fa00 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 65 73 73 2d 3e 67 )).{.$output.=.$this->process->g
2fa20 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 3d 20 24 74 68 69 etErrorOutput();..if.(0.!==.$thi
2fa40 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 2d 2d 76 65 72 73 69 6f s->process->execute('hg.--versio
2fa60 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 6e 65 77 n',.$ignoredOutput)).{.throw.new
2fa80 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 63 6c .\RuntimeException('Failed.to.cl
2faa0 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 68 67 20 77 61 73 20 6e 6f 74 20 66 one.'.$this->url.',.hg.was.not.f
2fac0 6f 75 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 ound,.check.that.it.is.installed
2fae0 20 61 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 .and.in.your.PATH.env.'..."\n\n"
2fb00 20 2e 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 ...$this->process->getErrorOutpu
2fb20 74 28 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 t());.}..throw.new.\RuntimeExcep
2fb40 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 tion('Failed.to.clone.'.$this->u
2fb60 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 70 61 63 6b 61 67 65 73 20 66 72 rl.',.could.not.read.packages.fr
2fb80 6f 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d 0a 7d om.it'..."\n\n"..$output);.}.}.}
2fba0 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 ..$this->getTags();.$this->getBr
2fbc0 61 6e 63 68 65 73 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 anches();.}.....public.function.
2fbe0 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d getRootIdentifier().{.if.(null.=
2fc00 3d 3d 20 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 ==.$this->rootIdentifier).{.$thi
2fc20 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 68 67 20 s->process->execute(sprintf('hg.
2fc40 74 69 70 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 65 7d 22 27 29 2c 20 24 6f 75 74 70 tip.--template."{node}"'),.$outp
2fc60 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 74 20 3d 20 24 ut,.$this->repoDir);.$output.=.$
2fc80 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 75 this->process->splitLines($outpu
2fca0 74 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 t);.$this->rootIdentifier.=.$out
2fcc0 70 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 put[0];.}..return.$this->rootIde
2fce0 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
2fd00 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;.}..
2fd20 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
2fd40 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
2fd60 68 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 h($identifier,.(array).$this->ta
2fd80 67 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 gs).?.:.$identifier;..return.arr
2fda0 61 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 ay('type'.=>.'hg',.'url'.=>.$thi
2fdc0 73 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 s->getUrl(),.'reference'.=>.$lab
2fde0 65 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 el);.}.....public.function.getDi
2fe00 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 6c 6c 3b 0a 7d st($identifier).{.return.null;.}
2fe20 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 70 6f 73 65 72 .....public.function.getComposer
2fe40 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 69 66 20 28 21 Information($identifier).{.if.(!
2fe60 69 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 isset($this->infoCache[$identifi
2fe80 65 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 er])).{.$this->process->execute(
2fea0 73 70 72 69 6e 74 66 28 27 68 67 20 63 61 74 20 2d 72 20 25 73 20 63 6f 6d 70 6f 73 65 72 2e 6a sprintf('hg.cat.-r.%s.composer.j
2fec0 73 6f 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 son',.escapeshellarg($identifier
2fee0 29 29 2c 20 24 63 6f 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 )),.$composer,.$this->repoDir);.
2ff00 0a 69 66 20 28 21 74 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 .if.(!trim($composer)).{.return;
2ff20 0a 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 .}..$composer.=.JsonFile::parseJ
2ff40 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 69 66 son($composer,.$identifier);..if
2ff60 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'])).{.$
2ff80 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 66 28 27 this->process->execute(sprintf('
2ffa0 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
2ffc0 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 69 64 ate}".-r.%s',.escapeshellarg($id
2ffe0 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 73 2d 3e 72 65 70 6f entifier)),.$output,.$this->repo
30000 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 6d 65 28 74 72 69 6d Dir);.$date.=.new.\DateTime(trim
30020 28 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 ($output),.new.\DateTimeZone('UT
30040 43 27 29 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 61 74 65 2d C'));.$composer['time'].=.$date-
30060 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 24 74 68 69 73 2d >format('Y-m-d.H:i:s');.}.$this-
30080 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 6d 70 6f >infoCache[$identifier].=.$compo
300a0 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 68 65 5b ser;.}..return.$this->infoCache[
300c0 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 6e 63 74 $identifier];.}.....public.funct
300e0 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 3d 3d 20 24 74 68 ion.getTags().{.if.(null.===.$th
30100 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 is->tags).{.$tags.=.array();..$t
30120 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 74 61 67 73 27 2c his->process->execute('hg.tags',
30140 20 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 66 6f 72 65 61 .$output,.$this->repoDir);.forea
30160 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 28 24 ch.($this->process->splitLines($
30180 6f 75 74 70 75 74 29 20 61 73 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 output).as.$tag).{.if.($tag.&&.p
301a0 72 65 67 5f 6d 61 74 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 reg_match('(^([^\s]+)\s+\d+:(.*)
301c0 24 29 27 2c 20 24 74 61 67 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 61 67 73 5b 24 6d 61 74 $)',.$tag,.$match)).{.$tags[$mat
301e0 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 74 ch[1]].=.$match[2];.}.}.unset($t
30200 61 67 73 5b 27 74 69 70 27 5d 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 74 61 67 ags['tip']);..$this->tags.=.$tag
30220 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a s;.}..return.$this->tags;.}.....
30240 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a public.function.getBranches().{.
30260 69 66 20 28 6e 75 6c 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 if.(null.===.$this->branches).{.
30280 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 20 $branches.=.array();.$bookmarks.
302a0 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
302c0 75 74 65 28 27 68 67 20 62 72 61 6e 63 68 65 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 ute('hg.branches',.$output,.$thi
302e0 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f s->repoDir);.foreach.($this->pro
30300 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 72 cess->splitLines($output).as.$br
30320 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 63 anch).{.if.($branch.&&.preg_matc
30340 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 5b 61 2d 66 30 2d 39 5d 2b 29 29 h('(^([^\s]+)\s+\d+:([a-f0-9]+))
30360 27 2c 20 24 62 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 ',.$branch,.$match)).{.$branches
30380 5b 24 6d 61 74 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 [$match[1]].=.$match[2];.}.}..$t
303a0 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 6f 6f 6b 6d 61 his->process->execute('hg.bookma
303c0 72 6b 73 27 2c 20 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 rks',.$output,.$this->repoDir);.
303e0 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 4c 69 foreach.($this->process->splitLi
30400 6e 65 73 28 24 6f 75 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 nes($output).as.$branch).{.if.($
30420 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 3f 3a 5b 5c 73 2a 5d branch.&&.preg_match('(^(?:[\s*]
30440 2a 29 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 72 61 6e 63 *)([^\s]+)\s+\d+:(.*)$)',.$branc
30460 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 5b 24 6d 61 74 63 68 5b h,.$match)).{.$bookmarks[$match[
30480 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 62 1]].=.$match[2];.}.}....$this->b
304a0 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 62 6f 6f 6b 6d 61 72 6b 73 ranches.=.array_merge($bookmarks
304c0 2c 20 24 62 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 ,.$branches);.}..return.$this->b
304e0 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 69 63 20 66 75 6e ranches;.}.....public.static.fun
30500 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,.
30520 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 20 28 70 72 65 67 5f $url,.$deep.=.false).{.if.(preg_
30540 6d 61 74 63 68 28 27 23 28 5e 28 3f 3a 68 74 74 70 73 3f 7c 73 73 68 29 3a 2f 2f 28 3f 3a 5b 5e match('#(^(?:https?|ssh)://(?:[^
30560 40 5d 40 29 3f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 7c 68 74 74 70 73 3a 2f 2f 28 3f 3a 2e 2a @]@)?bitbucket.org|https://(?:.*
30580 3f 29 5c 2e 6b 69 6c 6e 68 67 2e 63 6f 6d 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 ?)\.kilnhg.com)#i',.$url)).{.ret
305a0 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 6f 63 urn.true;.}....if.(static::isLoc
305c0 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 alUrl($url)).{.if.(!is_dir($url)
305e0 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(
30600 27 44 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20 27 2e 24 75 72 'Directory.does.not.exist:.'.$ur
30620 6c 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 l);.}..$process.=.new.ProcessExe
30640 63 75 74 6f 72 28 29 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c cutor();.$url.=.str_replace('fil
30660 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 75 72 6c 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 e://',.'',.$url);...if.($process
30680 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f 75 74 70 75 74 2c ->execute('hg.summary',.$output,
306a0 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 75 65 3b 0a 7d 0a 7d .$url).===.0).{.return.true;.}.}
306c0 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 6c 73 65 3b 0a 7d 0a ..if.(!$deep).{.return.false;.}.
306e0 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 6f 63 65 73 73 45 .$processExecutor.=.new.ProcessE
30700 78 65 63 75 74 6f 72 28 29 3b 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 xecutor();.$exit.=.$processExecu
30720 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 69 64 65 6e 74 69 66 tor->execute(sprintf('hg.identif
30740 79 20 25 73 27 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 y.%s',.escapeshellarg($url)),.$i
30760 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;.}.
30780 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
307a0 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
307c0 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
307e0 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
30800 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
30820 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
30840 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;.....
30860 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
30880 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
308a0 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;
308c0 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 .protected.$repoConfig;.protecte
308e0 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 d.$io;.protected.$config;.protec
30900 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 46 ted.$process;.protected.$remoteF
30920 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 70 75 62 6c 69 ilesystem;...........final.publi
30940 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 24 72 65 c.function.__construct(array.$re
30960 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 6f 6e 66 69 poConfig,.IOInterface.$io,.Confi
30980 67 20 24 63 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 g.$config,.ProcessExecutor.$proc
309a0 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 65 ess.=.null,.RemoteFilesystem.$re
309c0 6d 6f 74 65 46 69 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 moteFilesystem.=.null).{.$this->
309e0 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 0a 24 74 68 69 73 2d url.=.$repoConfig['url'];.$this-
30a00 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b >originUrl.=.$repoConfig['url'];
30a20 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 .$this->repoConfig.=.$repoConfig
30a40 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 63 6f 6e 66 69 67 ;.$this->io.=.$io;.$this->config
30a60 20 3d 20 24 63 6f 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 .=.$config;.$this->process.=.$pr
30a80 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 3b 0a 24 74 ocess.?:.new.ProcessExecutor;.$t
30aa0 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 65 6d 6f 74 65 46 his->remoteFilesystem.=.$remoteF
30ac0 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 ilesystem.?:.new.RemoteFilesyste
30ae0 6d 28 24 69 6f 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 68 61 m($io);.}.....public.function.ha
30b00 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 74 72 79 sComposerFile($identifier).{.try
30b20 20 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f .{.return.(bool).$this->getCompo
30b40 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 3b 0a 7d 20 63 serInformation($identifier);.}.c
30b60 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 0a 7d atch.(TransportException.$e).{.}
30b80 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 70 72 6f 74 65 63 ..return.false;.}.........protec
30ba0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 68 65 6d 65 28 29 0a 7b 0a 69 66 20 28 65 ted.function.getScheme().{.if.(e
30bc0 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 29 20 7b 0a 72 65 xtension_loaded('openssl')).{.re
30be0 74 75 72 6e 20 27 68 74 74 70 73 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 27 3b 0a turn.'https';.}..return.'http';.
30c00 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 67 65 74 }.........protected.function.get
30c20 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 Contents($url).{.return.$this->r
30c40 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 emoteFilesystem->getContents($th
30c60 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a is->originUrl,.$url,.false);.}..
30c80 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 61 protected.static.function.isLoca
30ca0 6c 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 70 72 65 67 5f lUrl($url).{.return.(bool).preg_
30cc0 6d 61 74 63 68 28 27 7b 5e 28 66 69 6c 65 3a 2f 2f 7c 2f 7c 5b 61 2d 7a 5d 3a 5b 5c 5c 5c 5c 2f match('{^(file://|/|[a-z]:[\\\\/
30ce0 5d 29 7d 69 27 2c 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ])}i',.$url);.}.}.<?php.........
30d00 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 79 ...namespace.Composer\Repository
30d20 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 73 6f 6e 46 69 6c \Vcs;..use.Composer\Json\JsonFil
30d40 65 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 e;.use.Composer\IO\IOInterface;.
30d60 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 ....class.HgBitbucketDriver.exte
30d80 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 6f 77 6e 65 72 nds.VcsDriver.{.protected.$owner
30da0 3b 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 74 65 63 74 ;.protected.$repository;.protect
30dc0 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
30de0 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
30e00 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 0a 0a 0a 0a 70 75 ted.$infoCache.=.array();.....pu
30e20 62 6c 69 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 blic.function.initialize().{.pre
30e40 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 65 74 5c 2e 6f 72 g_match('#^https://bitbucket\.or
30e60 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 g/([^/]+)/([^/]+)/?$#',.$this->u
30e80 72 6c 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 rl,.$match);.$this->owner.=.$mat
30ea0 63 68 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 ch[1];.$this->repository.=.$matc
30ec0 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 h[2];.$this->originUrl.=.'bitbuc
30ee0 6b 65 74 2e 6f 72 67 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 ket.org';.}.....public.function.
30f00 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d getRootIdentifier().{.if.(null.=
30f20 3d 3d 20 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 72 65 73 ==.$this->rootIdentifier).{.$res
30f40 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()...':/
30f60 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
30f80 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
30fa0 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 pository.'/tags';.$repoData.=.Js
30fc0 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 74 onFile::parseJson($this->getCont
30fe0 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 69 66 20 ents($resource),.$resource);.if.
31000 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 29 20 7b 0a 74 68 72 6f 77 20 (array().===.$repoData).{.throw.
31020 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 69 73 20 64 6f 65 73 new.\RuntimeException('This.does
31040 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f 20 62 65 20 61 20 6d 65 72 63 75 72 69 61 6c 20 72 65 .not.appear.to.be.a.mercurial.re
31060 70 6f 73 69 74 6f 72 79 2c 20 75 73 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2e 67 69 74 pository,.use.'.$this->url.'.git
31080 20 69 66 20 74 68 69 73 20 69 73 20 61 20 67 69 74 20 62 69 74 62 75 63 6b 65 74 20 72 65 70 6f .if.this.is.a.git.bitbucket.repo
310a0 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 sitory');.}.$this->rootIdentifie
310c0 72 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 r.=.$repoData['tip']['raw_node']
310e0 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 74 69 66 69 65 ;.}..return.$this->rootIdentifie
31100 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 74 55 72 6c 28 r;.}.....public.function.getUrl(
31120 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 0a 0a 70 75 62 ).{.return.$this->url;.}.....pub
31140 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 6e 74 69 66 69 lic.function.getSource($identifi
31160 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 65 er).{.$label.=.array_search($ide
31180 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 69 ntifier,.$this->getTags()).?:.$i
311a0 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 74 79 70 65 27 20 dentifier;..return.array('type'.
311c0 3d 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 =>.'hg',.'url'.=>.$this->getUrl(
311e0 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 3b 0a 7d 0a 0a 0a 0a ),.'reference'.=>.$label);.}....
31200 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 24 69 64 65 6e 74 69 .public.function.getDist($identi
31220 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 28 24 69 fier).{.$label.=.array_search($i
31240 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()).?:.
31260 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 2d 3e 67 65 74 53 63 $identifier;.$url.=.$this->getSc
31280 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 67 2f 27 2e 24 74 68 heme()...'://bitbucket.org/'.$th
312a0 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 2e is->owner.'/'.$this->repository.
312c0 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 65 74 75 72 6e 20 61 '/get/'.$label.'.zip';..return.a
312e0 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 6c 27 20 3d 3e 20 24 rray('type'.=>.'zip',.'url'.=>.$
31300 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 2c 20 27 73 68 61 url,.'reference'.=>.$label,.'sha
31320 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 20 66 75 6e 63 74 69 sum'.=>.'');.}.....public.functi
31340 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 24 69 64 65 6e 74 on.getComposerInformation($ident
31360 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 3e 69 6e 66 6f 43 ifier).{.if.(!isset($this->infoC
31380 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 6f 75 72 63 65 20 ache[$identifier])).{.$resource.
313a0 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 62 69 74 62 75 =.$this->getScheme()...'://bitbu
313c0 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 2f 27 2e 24 74 68 69 cket.org/'.$this->owner.'/'.$thi
313e0 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 65 6e 74 69 66 69 65 s->repository.'/raw/'.$identifie
31400 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.=.
31420 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 69 $this->getContents($resource);.i
31440 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 7d 0a 0a 24 63 6f 6d f.(!$composer).{.return;.}..$com
31460 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 6d poser.=.JsonFile::parseJson($com
31480 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 24 poser,.$resource);..if.(!isset($
314a0 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 6f 75 72 63 65 20 3d composer['time'])).{.$resource.=
314c0 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 62 69 .$this->getScheme()...'://api.bi
314e0 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 2e 24 tbucket.org/1.0/repositories/'.$
31500 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 6f 72 this->owner.'/'.$this->repositor
31520 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 69 65 72 3b 0a 24 63 y.'/changesets/'.$identifier;.$c
31540 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 65 4a 73 6f 6e 28 24 hangeset.=.JsonFile::parseJson($
31560 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 72 this->getContents($resource),.$r
31580 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 27 5d 20 3d 20 24 63 esource);.$composer['time'].=.$c
315a0 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 24 74 68 69 73 2d 3e hangeset['timestamp'];.}.$this->
315c0 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 6d 70 6f 73 infoCache[$identifier].=.$compos
315e0 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 68 65 5b 24 er;.}..return.$this->infoCache[$
31600 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 6e 63 74 69 identifier];.}.....public.functi
31620 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 3d 3d 20 24 74 68 69 on.getTags().{.if.(null.===.$thi
31640 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 68 69 73 2d 3e 67 65 s->tags).{.$resource.=.$this->ge
31660 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 74 2e 6f 72 tScheme()...'://api.bitbucket.or
31680 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 6f 77 6e 65 g/1.0/repositories/'.$this->owne
316a0 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 67 73 27 3b r.'/'.$this->repository.'/tags';
316c0 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 4a 73 6f 6e .$tagsData.=.JsonFile::parseJson
316e0 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 65 29 2c 20 ($this->getContents($resource),.
31700 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 72 61 79 28 $resource);.$this->tags.=.array(
31720 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 67 20 3d 3e );.foreach.($tagsData.as.$tag.=>
31740 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 67 5d 20 3d 20 24 64 .$data).{.$this->tags[$tag].=.$d
31760 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 74 68 ata['raw_node'];.}.}..return.$th
31780 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 63 74 69 6f 6e 20 is->tags;.}.....public.function.
317a0 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 3d 3d 20 24 74 68 getBranches().{.if.(null.===.$th
317c0 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 20 3d 20 24 74 68 69 is->branches).{.$resource.=.$thi
317e0 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 63 6b s->getScheme()...'://api.bitbuck
31800 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 73 2d et.org/1.0/repositories/'.$this-
31820 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 62 >owner.'/'.$this->repository.'/b
31840 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 73 6f 6e 46 69 6c 65 ranches';.$branchData.=.JsonFile
31860 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 6e 74 73 28 24 ::parseJson($this->getContents($
31880 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 68 69 73 2d 3e 62 72 resource),.$resource);.$this->br
318a0 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 20 28 24 62 72 61 6e anches.=.array();.foreach.($bran
318c0 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 61 29 20 7b 0a 24 74 chData.as.$branch.=>.$data).{.$t
318e0 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 24 64 61 74 61 5b 27 his->branches[$branch].=.$data['
31900 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 73 2d 3e 62 raw_node'];.}.}..return.$this->b
31920 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 69 63 20 66 75 6e ranches;.}.....public.static.fun
31940 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,.
31960 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 20 28 21 70 72 65 67 $url,.$deep.=.false).{.if.(!preg
31980 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 65 74 5c 2e 6f 72 67 _match('#^https://bitbucket\.org
319a0 2f 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 /([^/]+)/([^/]+)/?$#',.$url)).{.
319c0 72 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 return.false;.}..if.(!extension_
319e0 6c 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 loaded('openssl')).{.if.($io->is
31a00 56 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 Verbose()).{.$io->write('Skippin
31a20 67 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 g.Bitbucket.hg.driver.for.'.$url
31a40 2e 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 .'.because.the.OpenSSL.PHP.exten
31a60 73 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 sion.is.missing.');.}..return.fa
31a80 6c 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 lse;.}..return.true;.}.}.<?php..
31aa0 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
31ac0 6f 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 ository;.........class.Installed
31ae0 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 ArrayRepository.extends.Writable
31b00 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 49 6e 73 74 61 ArrayRepository.implements.Insta
31b20 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 68 lledRepositoryInterface.{.}.<?ph
31b40 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\
31b60 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 70 6f 73 69 74 6f Repository;.......class.Reposito
31b80 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 rySecurityException.extends.\Exc
31ba0 65 70 74 69 6f 6e 0a 7b 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 eption.{.}<?php............names
31bc0 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 73 65 20 43 pace.Composer\Repository;..use.C
31be0 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 67 65 3b 0a 75 73 omposer\Package\AliasPackage;.us
31c00 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
31c20 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 53 74 72 65 61 6d 61 62 6c 65 52 65 70 ace;.....interface.StreamableRep
31c40 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 52 65 70 6f 73 69 74 ositoryInterface.extends.Reposit
31c60 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a oryInterface.{..................
31c80 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 61 6c 50 61 63 ...public.function.getMinimalPac
31ca0 6b 61 67 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 kages();........public.function.
31cc0 6c 6f 61 64 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 29 3b 0a 0a 0a 0a 0a 0a 0a loadPackage(array.$data);.......
31ce0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b 61 ..public.function.loadAliasPacka
31d00 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 ge(array.$data,.PackageInterface
31d20 20 24 61 6c 69 61 73 4f 66 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e .$aliasOf);.}.<?php............n
31d40 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
31d60 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 72 74 se.Composer\Downloader\Transport
31d80 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 6f 73 69 74 6f Exception;.use.Composer\Reposito
31da0 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 75 73 65 20 43 ry\Vcs\VcsDriverInterface;.use.C
31dc0 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 73 69 6f 6e 50 omposer\Package\Version\VersionP
31de0 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 5c 4c 6f 61 64 arser;.use.Composer\Package\Load
31e00 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 72 5c 50 61 63 er\ArrayLoader;.use.Composer\Pac
31e20 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 kage\Loader\ValidatingArrayLoade
31e40 72 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 49 r;.use.Composer\Package\Loader\I
31e60 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 nvalidPackageException;.use.Comp
31e80 6f 73 65 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 oser\Package\Loader\LoaderInterf
31ea0 61 63 65 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 ace;.use.Composer\IO\IOInterface
31ec0 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 63 6c 61 73 73 ;.use.Composer\Config;.....class
31ee0 20 56 63 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 .VcsRepository.extends.ArrayRepo
31f00 73 69 74 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 sitory.{.protected.$url;.protect
31f20 65 64 20 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 ed.$packageName;.protected.$verb
31f40 6f 73 65 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 ose;.protected.$io;.protected.$c
31f60 6f 6e 66 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 onfig;.protected.$versionParser;
31f80 0a 70 72 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 .protected.$type;.protected.$loa
31fa0 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 der;.protected.$repoConfig;.prot
31fc0 65 63 74 65 64 20 24 62 72 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 66 61 6c ected.$branchErrorOccurred.=.fal
31fe0 73 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 75 63 74 se;..public.function.__construct
32000 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 65 72 66 61 63 65 20 (array.$repoConfig,.IOInterface.
32020 24 69 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 $io,.Config.$config,.array.$driv
32040 65 72 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 ers.=.null).{.$this->drivers.=.$
32060 64 72 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 drivers.?:.array(.'github'.=>.'C
32080 6f 6d 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 omposer\Repository\Vcs\GitHubDri
320a0 76 65 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 ver',.'git-bitbucket'.=>.'Compos
320c0 65 72 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 er\Repository\Vcs\GitBitbucketDr
320e0 69 76 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 iver',.'git'.=>.'Composer\Reposi
32100 74 6f 72 79 5c 56 63 73 5c 47 69 74 44 72 69 76 65 72 27 2c 0a 27 68 67 2d 62 69 74 62 75 63 6b tory\Vcs\GitDriver',.'hg-bitbuck
32120 65 74 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 5c et'.=>.'Composer\Repository\Vcs\
32140 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 68 67 27 20 3d 3e 20 27 43 6f 6d HgBitbucketDriver',.'hg'.=>.'Com
32160 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 27 2c 0a poser\Repository\Vcs\HgDriver',.
32180 0a 20 27 73 76 6e 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 ..'svn'.=>.'Composer\Repository\
321a0 56 63 73 5c 53 76 6e 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 Vcs\SvnDriver',.);..$this->url.=
321c0 20 24 72 65 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 .$repoConfig['url'];.$this->io.=
321e0 20 24 69 6f 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 .$io;.$this->type.=.isset($repoC
32200 6f 6e 66 69 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 onfig['type']).?.$repoConfig['ty
32220 70 65 27 5d 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 pe'].:.'vcs';.$this->verbose.=.$
32240 69 6f 2d 3e 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 io->isVerbose();.$this->config.=
32260 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 .$config;.$this->repoConfig.=.$r
32280 65 70 6f 43 6f 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 epoConfig;.}..public.function.se
322a0 74 4c 6f 61 64 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 tLoader(LoaderInterface.$loader)
322c0 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 70 .{.$this->loader.=.$loader;.}..p
322e0 75 62 6c 69 63 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 ublic.function.getDriver().{.if.
32300 28 69 73 73 65 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 (isset($this->drivers[$this->typ
32320 65 5d 29 29 20 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 e])).{.$class.=.$this->drivers[$
32340 74 68 69 73 2d 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 this->type];.$driver.=.new.$clas
32360 73 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 s($this->repoConfig,.$this->io,.
32380 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c $this->config);.$driver->initial
323a0 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 0a 66 6f 72 65 61 ize();..return.$driver;.}..forea
323c0 63 68 20 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b ch.($this->drivers.as.$driver).{
323e0 0a 69 66 20 28 24 64 72 69 76 65 72 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f .if.($driver::supports($this->io
32400 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 ,.$this->url)).{.$driver.=.new.$
32420 64 72 69 76 65 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d driver($this->repoConfig,.$this-
32440 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e >io,.$this->config);.$driver->in
32460 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 7d itialize();..return.$driver;.}.}
32480 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 61 73 20 24 64 72 ..foreach.($this->drivers.as.$dr
324a0 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 iver).{.if.($driver::supports($t
324c0 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 his->io,.$this->url,.true)).{.$d
324e0 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 2d 3e 72 65 70 6f 43 river.=.new.$driver($this->repoC
32500 6f 6e 66 69 67 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 onfig,.$this->io,.$this->config)
32520 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
32540 20 24 64 72 69 76 65 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$driver;.}.}.}..public.function
32560 20 68 61 64 49 6e 76 61 6c 69 64 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 .hadInvalidBranches().{.return.$
32580 74 68 69 73 2d 3e 62 72 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 3b 0a 7d 0a 0a 70 72 this->branchErrorOccurred;.}..pr
325a0 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 0a 7b 0a otected.function.initialize().{.
325c0 70 61 72 65 6e 74 3a 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 parent::initialize();..$verbose.
325e0 3d 20 24 74 68 69 73 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 =.$this->verbose;..$driver.=.$th
32600 69 73 2d 3e 67 65 74 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 is->getDriver();.if.(!$driver).{
32620 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
32640 74 69 6f 6e 28 27 4e 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 tion('No.driver.found.to.handle.
32660 56 43 53 20 72 65 70 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 VCS.repository.'.$this->url);.}.
32680 0a 24 74 68 69 73 2d 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 .$this->versionParser.=.new.Vers
326a0 69 6f 6e 50 61 72 73 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 ionParser;.if.(!$this->loader).{
326c0 0a 24 74 68 69 73 2d 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 .$this->loader.=.new.ArrayLoader
326e0 28 24 74 68 69 73 2d 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 ($this->versionParser);.}..try.{
32700 0a 69 66 20 28 24 64 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 .if.($driver->hasComposerFile($d
32720 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 29 20 7b 0a 24 river->getRootIdentifier())).{.$
32740 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 6e 66 6f 72 data.=.$driver->getComposerInfor
32760 6d 61 74 69 6f 6e 28 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 mation($driver->getRootIdentifie
32780 72 28 29 29 3b 0a 24 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 r());.$this->packageName.=.!empt
327a0 79 28 24 64 61 74 61 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 y($data['name']).?.$data['name']
327c0 20 3a 20 6e 75 6c 6c 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 .:.null;.}.}.catch.(\Exception.$
327e0 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 73 2d 3e 69 6f 2d 3e e).{.if.($verbose).{.$this->io->
32800 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 53 6b 69 70 70 65 64 20 70 61 72 73 69 6e 67 20 27 2e write('<error>Skipped.parsing.'.
32820 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 2e 27 2c 20 $driver->getRootIdentifier().',.
32840 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a '.$e->getMessage().'</error>');.
32860 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 74 54 61 67 73 28 29 }.}..foreach.($driver->getTags()
32880 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 7b 0a 24 6d 73 67 20 .as.$tag.=>.$identifier).{.$msg.
328a0 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 6f 66 20 3c 69 6e 66 =.'Reading.composer.json.of.<inf
328c0 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 20 3f 3a 20 24 74 68 o>'...($this->packageName.?:.$th
328e0 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 6d 65 6e 74 3e 27 20 is->url)...'</info>.(<comment>'.
32900 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 66 20 28 24 76 65 72 ..$tag...'</comment>)';.if.($ver
32920 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 24 6d 73 67 29 3b 0a bose).{.$this->io->write($msg);.
32940 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 72 69 74 65 28 24 6d }.else.{.$this->io->overwrite($m
32960 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 74 72 5f 72 65 70 6c sg,.false);.}....$tag.=.str_repl
32980 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 3b 0a 0a 69 66 20 28 ace('release-',.'',.$tag);..if.(
329a0 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 64 61 74 65 54 61 67 !$parsedTag.=.$this->validateTag
329c0 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 0a 24 74 68 69 73 2d ($tag)).{.if.($verbose).{.$this-
329e0 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 >io->write('<warning>Skipped.tag
32a00 20 27 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 3c 2f 77 61 72 .'.$tag.',.invalid.tag.name</war
32a20 6e 69 6e 67 3e 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 ning>');.}.continue;.}..try.{.if
32a40 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
32a60 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.($
32a80 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 3c 77 61 verbose).{.$this->io->write('<wa
32aa0 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 6e 6f 20 63 rning>Skipped.tag.'.$tag.',.no.c
32ac0 6f 6d 70 6f 73 65 72 20 66 69 6c 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 omposer.file</warning>');.}.cont
32ae0 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 73 inue;.}....if.(isset($data['vers
32b00 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 69 ion'])).{.$data['version_normali
32b20 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 6f zed'].=.$this->versionParser->no
32b40 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 73 rmalize($data['version']);.}.els
32b60 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 24 e.{...$data['version'].=.$tag;.$
32b80 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 61 data['version_normalized'].=.$pa
32ba0 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 3d rsedTag;.}....$data['version'].=
32bc0 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 27 .preg_replace('{[.-]?dev$}i',.''
32be0 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 73 ,.$data['version']);.$data['vers
32c00 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 28 ion_normalized'].=.preg_replace(
32c20 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 74 '{(^dev-|[.-]?dev$)}i',.'',.$dat
32c40 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 20 a['version_normalized']);....if.
32c60 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 3d ($data['version_normalized'].!==
32c80 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 24 .$parsedTag).{.if.($verbose).{.$
32ca0 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 3e 53 6b 69 70 70 65 this->io->write('<warning>Skippe
32cc0 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 74 61 67 20 28 27 2e 24 70 61 72 73 65 64 54 61 d.tag.'.$tag.',.tag.('.$parsedTa
32ce0 67 2e 27 29 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 76 65 72 73 69 6f 6e 20 28 27 2e 24 g.').does.not.match.version.('.$
32d00 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 2e 27 29 20 69 6e data['version_normalized'].').in
32d20 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f .composer.json</warning>');.}.co
32d40 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 ntinue;.}..if.($verbose).{.$this
32d60 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6d 70 6f 72 74 69 6e 67 20 74 61 67 20 27 2e 24 74 61 ->io->write('Importing.tag.'.$ta
32d80 67 2e 27 20 28 27 2e 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 g.'.('.$data['version_normalized
32da0 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 '].')');.}..$this->addPackage($t
32dc0 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 70 72 65 50 72 6f 63 his->loader->load($this->preProc
32de0 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 ess($driver,.$data,.$identifier)
32e00 29 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 66 ));.}.catch.(\Exception.$e).{.if
32e20 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('
32e40 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 27 <warning>Skipped.tag.'.$tag.',.'
32e60 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 63 65 70 74 69 .($e.instanceof.TransportExcepti
32e80 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 66 6f 75 6e 64 on.?.'no.composer.file.was.found
32ea0 27 20 3a 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 '.:.$e->getMessage()).'</warning
32ec0 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 62 >');.}.continue;.}.}..if.(!$verb
32ee0 6f 73 65 29 20 7b 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 ose).{.$this->io->overwrite('',.
32f00 66 61 6c 73 65 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 2d 3e 67 65 74 false);.}..foreach.($driver->get
32f20 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 64 65 6e 74 69 Branches().as.$branch.=>.$identi
32f40 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 70 6f 73 65 72 fier).{.$msg.=.'Reading.composer
32f60 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 70 61 63 6b 61 .json.of.<info>'...($this->packa
32f80 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 69 6e 66 6f 3e geName.?:.$this->url)...'</info>
32fa0 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 2f 63 6f 6d 6d .(<comment>'...$branch...'</comm
32fc0 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 69 73 2d 3e 69 ent>)';.if.($verbose).{.$this->i
32fe0 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 68 69 73 2d 3e o->write($msg);.}.else.{.$this->
33000 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 0a 7d 0a 0a 69 io->overwrite($msg,.false);.}..i
33020 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 76 61 6c 69 64 f.(!$parsedBranch.=.$this->valid
33040 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 76 65 72 62 6f ateBranch($branch)).{.if.($verbo
33060 73 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 se).{.$this->io->write('<warning
33080 3e 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 69 6e 76 >Skipped.branch.'.$branch.',.inv
330a0 61 6c 69 64 20 6e 61 6d 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 alid.name</warning>');.}.continu
330c0 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 64 72 69 76 65 72 e;.}..try.{.if.(!$data.=.$driver
330e0 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 65 6e 74 69 ->getComposerInformation($identi
33100 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 74 68 69 73 2d 3e fier)).{.if.($verbose).{.$this->
33120 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e io->write('<warning>Skipped.bran
33140 63 68 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 ch.'.$branch.',.no.composer.file
33160 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 </warning>');.}.continue;.}....$
33180 64 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 data['version'].=.$branch;.$data
331a0 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 61 72 73 65 64 ['version_normalized'].=.$parsed
331c0 42 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 Branch;....if.('dev-'.===.substr
331e0 28 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 ($parsedBranch,.0,.4).||.'999999
33200 39 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 9-dev'.===.$parsedBranch).{.$dat
33220 61 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 a['version'].=.'dev-'...$data['v
33240 65 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 ersion'];.}.else.{.$data['versio
33260 6e 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 n'].=.preg_replace('{(\.9{7})+}'
33280 2c 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 ,.'.x',.$parsedBranch);.}..if.($
332a0 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 49 6d 70 verbose).{.$this->io->write('Imp
332c0 6f 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 orting.branch.'.$branch.'.('.$da
332e0 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 44 ta['version'].')');.}..$packageD
33300 61 74 61 20 3d 20 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 ata.=.$this->preProcess($driver,
33320 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d .$data,.$identifier);.$package.=
33340 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 61 74 .$this->loader->load($packageDat
33360 61 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 a);.if.($this->loader.instanceof
33380 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 20 26 26 20 24 74 68 69 73 2d .ValidatingArrayLoader.&&.$this-
333a0 3e 6c 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 >loader->getWarnings()).{.throw.
333c0 6e 65 77 20 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 new.InvalidPackageException($thi
333e0 73 2d 3e 6c 6f 61 64 65 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 2c 20 24 74 68 69 73 2d 3e 6c s->loader->getErrors(),.$this->l
33400 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 2c 20 24 70 61 63 6b 61 67 65 44 61 oader->getWarnings(),.$packageDa
33420 74 61 29 3b 0a 7d 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 ta);.}.$this->addPackage($packag
33440 65 29 3b 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 20 e);.}.catch.(TransportException.
33460 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 73 2d 3e 69 6f 2d $e).{.if.($verbose).{.$this->io-
33480 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 >write('<warning>Skipped.branch.
334a0 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 61 '.$branch.',.no.composer.file.wa
334c0 73 20 66 6f 75 6e 64 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b s.found</warning>');.}.continue;
334e0 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 21 .}.catch.(\Exception.$e).{.if.(!
33500 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 27 29 $verbose).{.$this->io->write('')
33520 3b 0a 7d 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d ;.}.$this->branchErrorOccurred.=
33540 20 74 72 75 65 3b 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 3e .true;.$this->io->write('<error>
33560 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 27 2e 24 65 Skipped.branch.'.$branch.',.'.$e
33580 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 ->getMessage().'</error>');.$thi
335a0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a s->io->write('');.continue;.}.}.
335c0 0a 69 66 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 .if.(!$verbose).{.$this->io->ove
335e0 72 77 72 69 74 65 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 rwrite('',.false);.}..if.(!$this
33600 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 ->getPackages()).{.throw.new.Inv
33620 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 76 61 6c 69 alidRepositoryException('No.vali
33640 64 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 77 61 73 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 d.composer.json.was.found.in.any
33660 20 62 72 61 6e 63 68 20 6f 72 20 74 61 67 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 .branch.or.tag.of.'.$this->url.'
33680 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 ,.could.not.load.a.package.from.
336a0 69 74 2e 27 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 70 72 65 it.');.}.}..private.function.pre
336c0 50 72 6f 63 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 Process(VcsDriverInterface.$driv
336e0 65 72 2c 20 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 er,.array.$data,.$identifier).{.
33700 0a 20 24 64 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 ..$data['name'].=.$this->package
33720 4e 61 6d 65 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 Name.?:.$data['name'];..if.(!iss
33740 65 74 28 24 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 et($data['dist'])).{.$data['dist
33760 27 5d 20 3d 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 '].=.$driver->getDist($identifie
33780 72 29 3b 0a 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 r);.}.if.(!isset($data['source']
337a0 29 29 20 7b 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 )).{.$data['source'].=.$driver->
337c0 67 65 74 53 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 getSource($identifier);.}..retur
337e0 6e 20 24 64 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 n.$data;.}..private.function.val
33800 69 64 61 74 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 idateBranch($branch).{.try.{.ret
33820 75 72 6e 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 urn.$this->versionParser->normal
33840 69 7a 65 42 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 izeBranch($branch);.}.catch.(\Ex
33860 63 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 ception.$e).{.}..return.false;.}
33880 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 54 61 67 28 24 ..private.function.validateTag($
338a0 76 65 72 73 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 version).{.try.{.return.$this->v
338c0 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 72 73 69 6f 6e ersionParser->normalize($version
338e0 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 7d 0a 0a );.}.catch.(\Exception.$e).{.}..
33900 72 65 74 75 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 return.false;.}.}.<?php.........
33920 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 79 ...namespace.Composer\Repository
33940 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 ;..use.Composer\Package\Complete
33960 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 65 5c 56 65 Package;.use.Composer\Package\Ve
33980 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 61 73 73 20 50 rsion\VersionParser;.....class.P
339a0 6c 61 74 66 6f 72 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 latformRepository.extends.ArrayR
339c0 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 63 6f 6e 73 74 20 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 epository.{.const.PLATFORM_PACKA
339e0 47 45 5f 52 45 47 45 58 20 3d 20 27 7b 5e 28 3f 3a 70 68 70 28 3f 3a 2d 36 34 62 69 74 29 3f 7c GE_REGEX.=.'{^(?:php(?:-64bit)?|
33a00 28 3f 3a 65 78 74 7c 6c 69 62 29 2d 5b 5e 2f 5d 2b 29 24 7d 69 27 3b 0a 0a 70 72 6f 74 65 63 74 (?:ext|lib)-[^/]+)$}i';..protect
33a20 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 72 65 6e ed.function.initialize().{.paren
33a40 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 t::initialize();..$versionParser
33a60 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 .=.new.VersionParser();..try.{.$
33a80 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a 24 76 65 prettyVersion.=.PHP_VERSION;.$ve
33aa0 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 6d 61 6c 69 7a rsion.=.$versionParser->normaliz
33ac0 65 28 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 e($prettyVersion);.}.catch.(\Une
33ae0 78 70 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 xpectedValueException.$e).{.$pre
33b00 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 28 27 23 5e 28 5b 5e ttyVersion.=.preg_replace('#^([^
33b20 7e 2b 2d 5d 2b 29 2e 2a 24 23 27 2c 20 27 24 31 27 2c 20 50 48 50 5f 56 45 52 53 49 4f 4e 29 3b ~+-]+).*$#',.'$1',.PHP_VERSION);
33b40 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 6d .$version.=.$versionParser->norm
33b60 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 68 70 20 3d alize($prettyVersion);.}..$php.=
33b80 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 70 68 70 27 2c 20 24 76 65 72 .new.CompletePackage('php',.$ver
33ba0 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 70 68 70 2d 3e 73 65 74 sion,.$prettyVersion);.$php->set
33bc0 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 50 48 50 20 69 6e 74 65 72 70 72 65 74 65 72 Description('The.PHP.interpreter
33be0 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 70 68 70 29 3b 0a 0a 69 ');.parent::addPackage($php);..i
33c00 66 20 28 50 48 50 5f 49 4e 54 5f 53 49 5a 45 20 3d 3d 3d 20 38 29 20 7b 0a 24 70 68 70 36 34 20 f.(PHP_INT_SIZE.===.8).{.$php64.
33c20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 70 68 70 2d 36 34 62 69 74 =.new.CompletePackage('php-64bit
33c40 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 3b 0a 24 70 ',.$version,.$prettyVersion);.$p
33c60 68 70 36 34 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 69 6e hp64->setDescription('The.PHP.in
33c80 74 65 72 70 72 65 74 65 72 20 28 36 34 62 69 74 29 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 terpreter.(64bit)');.parent::add
33ca0 50 61 63 6b 61 67 65 28 24 70 68 70 36 34 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 64 45 78 74 65 6e Package($php64);.}..$loadedExten
33cc0 73 69 6f 6e 73 20 3d 20 67 65 74 5f 6c 6f 61 64 65 64 5f 65 78 74 65 6e 73 69 6f 6e 73 28 29 3b sions.=.get_loaded_extensions();
33ce0 0a 0a 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 ....foreach.($loadedExtensions.a
33d00 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 s.$name).{.if.(in_array($name,.a
33d20 72 72 61 79 28 27 73 74 61 6e 64 61 72 64 27 2c 20 27 43 6f 72 65 27 29 29 29 20 7b 0a 63 6f 6e rray('standard',.'Core'))).{.con
33d40 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 66 6c 45 78 74 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 tinue;.}..$reflExt.=.new.\Reflec
33d60 74 69 6f 6e 45 78 74 65 6e 73 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 74 72 79 20 7b 0a 24 70 72 65 tionExtension($name);.try.{.$pre
33d80 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 72 65 66 6c 45 78 74 2d 3e 67 65 74 56 65 72 73 69 6f ttyVersion.=.$reflExt->getVersio
33da0 6e 28 29 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 n();.$version.=.$versionParser->
33dc0 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 7d 20 63 61 74 normalize($prettyVersion);.}.cat
33de0 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 65 ch.(\UnexpectedValueException.$e
33e00 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 27 30 27 3b 0a 24 76 65 72 73 69 ).{.$prettyVersion.=.'0';.$versi
33e20 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 24 on.=.$versionParser->normalize($
33e40 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 65 78 74 20 3d 20 6e 65 77 20 43 6f prettyVersion);.}..$ext.=.new.Co
33e60 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 65 78 74 2d 27 2e 24 6e 61 6d 65 2c 20 24 76 65 72 mpletePackage('ext-'.$name,.$ver
33e80 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 65 78 74 2d 3e 73 65 74 sion,.$prettyVersion);.$ext->set
33ea0 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 65 Description('The.'.$name.'.PHP.e
33ec0 78 74 65 6e 73 69 6f 6e 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 xtension');.parent::addPackage($
33ee0 65 78 74 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 61 64 65 64 45 ext);.}........foreach.($loadedE
33f00 78 74 65 6e 73 69 6f 6e 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 xtensions.as.$name).{.$prettyVer
33f20 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 73 77 69 74 63 68 20 28 24 6e 61 6d 65 29 20 7b 0a 63 61 sion.=.null;.switch.($name).{.ca
33f40 73 65 20 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 se.'curl':.$curlVersion.=.curl_v
33f60 65 72 73 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 ersion();.$prettyVersion.=.$curl
33f80 56 65 72 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 Version['version'];.break;..case
33fa0 20 27 69 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 .'iconv':.$prettyVersion.=.ICONV
33fc0 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e 74 6c 27 3a 0a 24 _VERSION;.break;..case.'intl':.$
33fe0 6e 61 6d 65 20 3d 20 27 49 43 55 27 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 49 4e 54 4c 5f name.=.'ICU';.if.(defined('INTL_
34000 49 43 55 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 ICU_VERSION')).{.$prettyVersion.
34020 3d 20 49 4e 54 4c 5f 49 43 55 5f 56 45 52 53 49 4f 4e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 =.INTL_ICU_VERSION;.}.else.{.$re
34040 66 6c 65 63 74 6f 72 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 65 6e 73 69 flector.=.new.\ReflectionExtensi
34060 6f 6e 28 27 69 6e 74 6c 27 29 3b 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 24 72 65 66 6c 65 63 on('intl');..ob_start();.$reflec
34080 74 6f 72 2d 3e 69 6e 66 6f 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6f 62 5f 67 65 74 5f 63 6c tor->info();.$output.=.ob_get_cl
340a0 65 61 6e 28 29 3b 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 49 43 55 20 76 65 72 73 69 6f ean();..preg_match('/^ICU.versio
340c0 6e 20 3d 3e 20 28 2e 2a 29 24 2f 6d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 65 73 n.=>.(.*)$/m',.$output,.$matches
340e0 29 3b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 3b );.$prettyVersion.=.$matches[1];
34100 0a 7d 0a 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 72 65 74 .}..break;..case.'libxml':.$pret
34120 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 53 49 4f tyVersion.=.LIBXML_DOTTED_VERSIO
34140 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 72 65 74 N;.break;..case.'openssl':.$pret
34160 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 62 61 63 tyVersion.=.preg_replace_callbac
34180 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 28 5b 61 k('{^(?:OpenSSL\s*)?([0-9.]+)([a
341a0 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 7b 0a 72 -z]?).*}',.function.($match).{.r
341c0 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 63 68 5b eturn.$match[1]...(empty($match[
341e0 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 29 20 2d 2]).?.''.:.'.'.(ord($match[2]).-
34200 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 54 29 3b .96));.},.OPENSSL_VERSION_TEXT);
34220 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 56 65 72 .break;..case.'pcre':.$prettyVer
34240 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 2a 7d 27 sion.=.preg_replace('{^(\S+).*}'
34260 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 0a 0a 63 ,.'$1',.PCRE_VERSION);.break;..c
34280 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 70 68 70 ase.'uuid':.$prettyVersion.=.php
342a0 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 20 27 78 version('uuid');.break;..case.'x
342c0 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 5f 44 4f sl':.$prettyVersion.=.LIBXSLT_DO
342e0 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 3a 0a 0a TTED_VERSION;.break;..default:..
34300 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 6e 20 3d .continue.2;.}..try.{.$version.=
34320 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 72 65 74 .$versionParser->normalize($pret
34340 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 74 65 64 tyVersion);.}.catch.(\Unexpected
34360 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 3b 0a 7d ValueException.$e).{.continue;.}
34380 0a 0a 24 6c 69 62 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 6c 69 ..$lib.=.new.CompletePackage('li
343a0 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 73 b-'.$name,.$version,.$prettyVers
343c0 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 20 ion);.$lib->setDescription('The.
343e0 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 3a '.$name.'.PHP.library');.parent:
34400 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 0a :addPackage($lib);.}.}.}.<?php..
34420 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
34440 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 69 ository;.......class.InstalledFi
34460 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 73 lesystemRepository.extends.Files
34480 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 61 ystemRepository.implements.Insta
344a0 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 68 lledRepositoryInterface.{.}.<?ph
344c0 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\
344e0 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 67 Repository;..use.Composer\Packag
34500 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 20 e\PackageInterface;.......class.
34520 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 52 CompositeRepository.implements.R
34540 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 65 epositoryInterface.{.....private
34560 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 63 .$repositories;......public.func
34580 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 6f tion.__construct(array.$reposito
345a0 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 61 72 ries).{.$this->repositories.=.ar
345c0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 ray();.foreach.($repositories.as
345e0 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 .$repo).{.$this->addRepository($
34600 72 65 70 6f 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 repo);.}.}.......public.function
34620 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 20 24 74 68 69 .getRepositories().{.return.$thi
34640 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 69 63 20 66 75 s->repositories;.}.....public.fu
34660 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 74 65 72 66 61 nction.hasPackage(PackageInterfa
34680 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 69 73 2d 3e 72 ce.$package).{.foreach.($this->r
346a0 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 20 7b 0a 0a 69 epositories.as.$repository).{..i
346c0 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 24 70 61 63 6b f.($repository->hasPackage($pack
346e0 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 65 74 75 72 6e age)).{.return.true;.}.}..return
34700 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 20 66 69 .false;.}.....public.function.fi
34720 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 7b 0a 66 6f 72 ndPackage($name,.$version).{.for
34740 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 73 20 24 72 65 each.($this->repositories.as.$re
34760 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 70 6f 73 69 74 pository).{..$package.=.$reposit
34780 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 72 73 69 6f 6e ory->findPackage($name,.$version
347a0 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 0a 72 65 74 75 );.if.(null.!==.$package).{.retu
347c0 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 6c 6c 3b 0a 7d rn.$package;.}.}..return.null;.}
347e0 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 67 65 .....public.function.findPackage
34800 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 0a 24 70 61 63 s($name,.$version.=.null).{.$pac
34820 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-
34840 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 20 7b 0a >repositories.as.$repository).{.
34860 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 66 69 6e 64 .$packages[].=.$repository->find
34880 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 7d 0a 0a 72 65 Packages($name,.$version);.}..re
348a0 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 61 72 72 61 79 turn.call_user_func_array('array
348c0 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 70 75 62 6c 69 _merge',.$packages);.}.....publi
348e0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 c.function.search($query,.$mode.
34900 3d 20 30 29 0a 7b 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 =.0).{.$matches.=.array();.forea
34920 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 73 20 24 72 65 70 6f ch.($this->repositories.as.$repo
34940 73 69 74 6f 72 79 29 20 7b 0a 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 sitory).{..$matches[].=.$reposit
34960 6f 72 79 2d 3e 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 29 3b 0a 7d 0a 0a 72 ory->search($query,.$mode);.}..r
34980 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 61 72 72 61 eturn.call_user_func_array('arra
349a0 79 5f 6d 65 72 67 65 27 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 y_merge',.$matches);.}.....publi
349c0 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 c.function.filterPackages($callb
349e0 61 63 6b 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c ack,.$class.=.'Composer\Package\
34a00 50 61 63 6b 61 67 65 27 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f Package').{.foreach.($this->repo
34a20 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 69 66 20 28 66 sitories.as.$repository).{.if.(f
34a40 61 6c 73 65 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6c 74 65 72 50 61 63 6b alse.===.$repository->filterPack
34a60 61 67 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 29 29 20 7b 0a 72 65 74 75 72 ages($callback,.$class)).{.retur
34a80 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 7d 0a 0a 0a 0a n.false;.}.}..return.true;.}....
34aa0 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().{
34ac0 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.($
34ae0 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
34b00 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-
34b20 3e 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 >getPackages();.}..return.call_u
34b40 73 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 ser_func_array('array_merge',.$p
34b60 61 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 ackages);.}.....public.function.
34b80 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.$
34ba0 70 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 package).{.foreach.($this->repos
34bc0 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 72 65 70 6f itories.as.$repository).{..$repo
34be0 73 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 sitory->removePackage($package);
34c00 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 63 6f 75 6e 74 28 29 .}.}.....public.function.count()
34c20 0a 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 .{.$total.=.0;.foreach.($this->r
34c40 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 20 7b 0a 0a 24 epositories.as.$repository).{..$
34c60 74 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 total.+=.$repository->count();.}
34c80 0a 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 ..return.$total;.}......public.f
34ca0 75 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 unction.addRepository(Repository
34cc0 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 69 66 20 28 24 72 65 Interface.$repository).{.if.($re
34ce0 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 6c 66 29 20 7b 0a 66 6f 72 65 pository.instanceof.self).{.fore
34d00 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 ach.($repository->getRepositorie
34d20 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 70 6f 73 69 s().as.$repo).{.$this->addReposi
34d40 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 tory($repo);.}.}.else.{.$this->r
34d60 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;.}.}
34d80 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
34da0 6d 70 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 mposer\Repository;.........inter
34dc0 66 61 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 face.InstalledRepositoryInterfac
34de0 65 20 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 e.extends.WritableRepositoryInte
34e00 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 0a 0a 6e 61 6d 65 73 rface.{.}.<?php............names
34e20 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 73 65 20 43 pace.Composer\Repository;..use.C
34e40 6f 6d 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 omposer\Package\Loader\ArrayLoad
34e60 65 72 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 er;.use.Composer\Package\Package
34e80 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\
34ea0 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 61 63 6b 61 AliasPackage;.use.Composer\Packa
34ec0 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 75 73 65 20 43 6f ge\Version\VersionParser;.use.Co
34ee0 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 50 6f 6f 6c 3b 0a mposer\DependencyResolver\Pool;.
34f00 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 65 20 use.Composer\Json\JsonFile;.use.
34f20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e Composer\Cache;.use.Composer\Con
34f40 66 69 67 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 fig;.use.Composer\IO\IOInterface
34f60 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 65 46 69 6c 65 73 79 ;.use.Composer\Util\RemoteFilesy
34f80 73 74 65 6d 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f stem;.....class.ComposerReposito
34fa0 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 ry.extends.ArrayRepository.imple
34fc0 6d 65 6e 74 73 20 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 ments.StreamableRepositoryInterf
34fe0 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 ace.{.protected.$config;.protect
35000 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f ed.$options;.protected.$url;.pro
35020 74 65 63 74 65 64 20 24 62 61 73 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a tected.$baseUrl;.protected.$io;.
35040 70 72 6f 74 65 63 74 65 64 20 24 72 66 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 protected.$rfs;.protected.$cache
35060 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 66 79 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 ;.protected.$notifyUrl;.protecte
35080 64 20 24 73 65 61 72 63 68 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 50 72 6f 76 d.$searchUrl;.protected.$hasProv
350a0 69 64 65 72 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 iders.=.false;.protected.$provid
350c0 65 72 73 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 4c 69 73 74 69 ersUrl;.protected.$providerListi
350e0 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 79 ng;.protected.$providers.=.array
35100 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 3d 20 ();.protected.$providersByUid.=.
35120 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 array();.protected.$loader;.prot
35140 65 63 74 65 64 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 ected.$rootAliases;.protected.$a
35160 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 llowSslDowngrade.=.false;.privat
35180 65 20 24 72 61 77 44 61 74 61 3b 0a 70 72 69 76 61 74 65 20 24 6d 69 6e 69 6d 61 6c 50 61 63 6b e.$rawData;.private.$minimalPack
351a0 61 67 65 73 3b 0a 70 72 69 76 61 74 65 20 24 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 66 61 ages;.private.$degradedMode.=.fa
351c0 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 44 61 74 61 3b 0a 0a 70 75 62 6c 69 63 20 lse;.private.$rootData;..public.
351e0 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 24 72 65 70 6f function.__construct(array.$repo
35200 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 6f 6e 66 69 67 20 Config,.IOInterface.$io,.Config.
35220 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 28 27 7b 5e 5b 5c $config).{.if.(!preg_match('{^[\
35240 77 2e 5d 2b 5c 3f 3f 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']
35260 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
35280 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
352a0 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
352c0 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 27 68 74 74 70 73 3f 27 20 3d ig['url'],.'/');..if.('https?'.=
352e0 3d 3d 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 30 2c ==.substr($repoConfig['url'],.0,
35300 20 36 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 28 65 78 74 .6)).{.$repoConfig['url'].=.(ext
35320 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 3f 20 27 68 74 74 70 ension_loaded('openssl').?.'http
35340 73 27 20 3a 20 27 68 74 74 70 27 29 20 2e 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 s'.:.'http')...substr($repoConfi
35360 67 5b 27 75 72 6c 27 5d 2c 20 36 29 3b 0a 7d 0a 0a 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 g['url'],.6);.}..$urlBits.=.pars
35380 65 5f 75 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 69 66 20 28 65 e_url($repoConfig['url']);.if.(e
353a0 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 7c 7c 20 65 6d 70 74 mpty($urlBits['scheme']).||.empt
353c0 79 28 24 75 72 6c 42 69 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 y($urlBits['host'])).{.throw.new
353e0 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 49 6e 76 61 .\UnexpectedValueException('Inva
35400 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 20 72 65 70 6f 73 lid.url.given.for.Composer.repos
35420 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 5d 29 3b 0a 7d 0a itory:.'.$repoConfig['url']);.}.
35440 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 .if.(!isset($repoConfig['options
35460 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 20 3d 20 '])).{.$repoConfig['options'].=.
35480 61 72 72 61 79 28 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 array();.}.if.(isset($repoConfig
354a0 5b 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 5d 29 20 26 26 20 74 72 75 65 ['allow_ssl_downgrade']).&&.true
354c0 20 3d 3d 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e .===.$repoConfig['allow_ssl_down
354e0 67 72 61 64 65 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 grade']).{.$this->allowSslDowngr
35500 61 64 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 ade.=.true;.}..$this->config.=.$
35520 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 72 65 70 6f 43 6f config;.$this->options.=.$repoCo
35540 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 3b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 nfig['options'];.$this->url.=.$r
35560 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c epoConfig['url'];.$this->baseUrl
35580 20 3d 20 72 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 2e 2a 29 28 3f 3a .=.rtrim(preg_replace('{^(.*)(?:
355a0 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 29 3f 28 3f 3a 5b 3f 23 5d 2e 2a 29 3f 24 7d 27 2c 20 /packages.json)?(?:[?#].*)?$}',.
355c0 27 24 31 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e '$1',.$this->url),.'/');.$this->
355e0 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 io.=.$io;.$this->cache.=.new.Cac
35600 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f he($io,.$config->get('cache-repo
35620 2d 64 69 72 27 29 2e 27 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 -dir').'/'.preg_replace('{[^a-z0
35640 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 2c 20 27 61 2d 7a 30 -9.]}i',.'-',.$this->url),.'a-z0
35660 2d 39 2e 24 27 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 -9.$');.$this->loader.=.new.Arra
35680 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f yLoader();.$this->rfs.=.new.Remo
356a0 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 6f teFilesystem($this->io,.$this->o
356c0 70 74 69 6f 6e 73 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 52 ptions);.}..public.function.setR
356e0 6f 6f 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 29 0a 7b ootAliases(array.$rootAliases).{
35700 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 .$this->rootAliases.=.$rootAlias
35720 65 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 61 63 6b 61 67 es;.}..public.function.getPackag
35740 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 es().{.if.($this->hasProviders()
35760 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 27 43 ).{.throw.new.\LogicException('C
35780 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 68 61 74 20 68 61 76 65 20 70 omposer.repositories.that.have.p
357a0 72 6f 76 69 64 65 72 73 20 63 61 6e 20 6e 6f 74 20 6c 6f 61 64 20 74 68 65 20 63 6f 6d 70 6c 65 roviders.can.not.load.the.comple
357c0 74 65 20 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2c 20 75 73 65 20 67 65 74 50 72 6f 76 te.list.of.packages,.use.getProv
357e0 69 64 65 72 4e 61 6d 65 73 20 69 6e 73 74 65 61 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 iderNames.instead.');.}..return.
35800 70 61 72 65 6e 74 3a 3a 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 parent::getPackages();.}.....pub
35820 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 28 lic.function.getMinimalPackages(
35840 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b ).{.if.(isset($this->minimalPack
35860 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 ages)).{.return.$this->minimalPa
35880 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 ckages;.}..if.(null.===.$this->r
358a0 61 77 44 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 20 3d 20 24 74 68 69 73 awData).{.$this->rawData.=.$this
358c0 2d 3e 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 ->loadDataFromServer();.}..$this
358e0 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 76 65 ->minimalPackages.=.array();.$ve
35900 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 72 3b rsionParser.=.new.VersionParser;
35920 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 20 61 73 20 24 70 61 ..foreach.($this->rawData.as.$pa
35940 63 6b 61 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 70 61 63 6b ckage).{.$version.=.!empty($pack
35960 61 67 65 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 20 3f 20 24 70 61 age['version_normalized']).?.$pa
35980 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3a 20 24 76 ckage['version_normalized'].:.$v
359a0 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 61 63 6b 61 67 65 ersionParser->normalize($package
359c0 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 ['version']);.$data.=.array(.'na
359e0 6d 65 27 20 3d 3e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 me'.=>.strtolower($package['name
35a00 27 5d 29 2c 0a 27 72 65 70 6f 27 20 3d 3e 20 24 74 68 69 73 2c 0a 27 76 65 72 73 69 6f 6e 27 20 ']),.'repo'.=>.$this,.'version'.
35a20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 0a 27 72 61 77 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a =>.$version,.'raw'.=>.$package,.
35a40 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 5b 27 72 65 70 6c 61 63 65 27 );.if.(!empty($package['replace'
35a60 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 72 65 70 6c 61 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 ])).{.$data['replace'].=.$packag
35a80 65 5b 27 72 65 70 6c 61 63 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b e['replace'];.}.if.(!empty($pack
35aa0 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 70 72 6f 76 69 64 age['provide'])).{.$data['provid
35ac0 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 3b 0a 7d 0a 0a 0a 20 e'].=.$package['provide'];.}....
35ae0 69 66 20 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 74 68 69 73 2d 3e 6c 6f if.($aliasNormalized.=.$this->lo
35b00 61 64 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 29 29 20 ader->getBranchAlias($package)).
35b20 7b 0a 24 64 61 74 61 5b 27 61 6c 69 61 73 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 {.$data['alias'].=.preg_replace(
35b40 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 '{(\.9{7})+}',.'.x',.$aliasNorma
35b60 6c 69 7a 65 64 29 3b 0a 24 64 61 74 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 lized);.$data['alias_normalized'
35b80 5d 20 3d 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e ].=.$aliasNormalized;.}..$this->
35ba0 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 0a 72 65 minimalPackages[].=.$data;.}..re
35bc0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a turn.$this->minimalPackages;.}..
35be0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 ...public.function.search($query
35c00 2c 20 24 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 ,.$mode.=.0).{.$this->loadRootSe
35c20 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 rverFile();..if.($this->searchUr
35c40 6c 20 26 26 20 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c l.&&.$mode.===.self::SEARCH_FULL
35c60 54 45 58 54 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 71 75 65 TEXT).{.$url.=.str_replace('%que
35c80 72 79 25 27 2c 20 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 29 3b ry%',.$query,.$this->searchUrl);
35ca0 0a 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 ..$json.=.$this->rfs->getContent
35cc0 73 28 24 75 72 6c 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 73 75 6c 74 73 20 3d s($url,.$url,.false);.$results.=
35ce0 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 2c 20 24 75 72 6c .JsonFile::parseJson($json,.$url
35d00 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 5b 27 72 65 73 75 6c 74 73 27 5d 3b 0a );..return.$results['results'];.
35d20 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a }..if.($this->hasProviders()).{.
35d40 24 72 65 73 75 6c 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 67 65 78 20 3d 20 27 7b 28 $results.=.array();.$regex.=.'{(
35d60 3f 3a 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 ?:'.implode('|',.preg_split('{\s
35d80 2b 7d 27 2c 20 24 71 75 65 72 79 29 29 2e 27 29 7d 69 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 +}',.$query)).')}i';..foreach.($
35da0 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 6e 61 6d this->getProviderNames().as.$nam
35dc0 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 6e 61 6d e).{.if.(preg_match($regex,.$nam
35de0 65 29 29 20 7b 0a 24 72 65 73 75 6c 74 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 e)).{.$results[].=.array('name'.
35e00 3d 3e 20 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 3b =>.$name);.}.}..return.$results;
35e20 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 73 65 61 72 63 68 28 24 71 75 65 72 79 .}..return.parent::search($query
35e40 2c 20 24 6d 6f 64 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 ,.$mode);.}..public.function.get
35e60 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f ProviderNames().{.$this->loadRoo
35e80 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 tServerFile();..if.(null.===.$th
35ea0 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f is->providerListing).{.$this->lo
35ec0 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f adProviderListings($this->loadRo
35ee0 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 otServerFile());.}..if.($this->p
35f00 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 rovidersUrl).{.return.array_keys
35f20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 3b 0a 7d 0a 0a 0a 20 24 ($this->providerListing);.}....$
35f40 70 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 providers.=.array();.foreach.(ar
35f60 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 ray_keys($this->providerListing)
35f80 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 70 72 6f 76 69 64 65 72 73 5b 5d 20 3d 20 .as.$provider).{.$providers[].=.
35fa0 73 75 62 73 74 72 28 24 70 72 6f 76 69 64 65 72 2c 20 32 2c 20 2d 35 29 3b 0a 7d 0a 0a 72 65 74 substr($provider,.2,.-5);.}..ret
35fc0 75 72 6e 20 24 70 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e urn.$providers;.}.....public.fun
35fe0 63 74 69 6f 6e 20 6c 6f 61 64 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b ction.loadPackage(array.$data).{
36000 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 .$package.=.$this->createPackage
36020 28 24 64 61 74 61 5b 27 72 61 77 27 5d 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ($data['raw'],.'Composer\Package
36040 5c 50 61 63 6b 61 67 65 27 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 \Package');.if.($package.instanc
36060 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 eof.AliasPackage).{.$package.=.$
36080 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 24 70 61 63 6b 61 67 package->getAliasOf();.}.$packag
360a0 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 72 65 74 75 72 6e e->setRepository($this);..return
360c0 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
360e0 20 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 50 .loadAliasPackage(array.$data,.P
36100 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 29 0a 7b 0a 24 61 6c 69 ackageInterface.$aliasOf).{.$ali
36120 61 73 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 asPackage.=.$this->createAliasPa
36140 63 6b 61 67 65 28 24 61 6c 69 61 73 4f 66 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d ckage($aliasOf,.$data['version']
36160 2c 20 24 64 61 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 ,.$data['alias']);.$aliasPackage
36180 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 72 65 74 75 72 6e 20 ->setRepository($this);..return.
361a0 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $aliasPackage;.}..public.functio
361c0 6e 20 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f n.hasProviders().{.$this->loadRo
361e0 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 otServerFile();..return.$this->h
36200 61 73 50 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 asProviders;.}..public.function.
36220 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 resetPackageIds().{.foreach.($th
36240 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 is->providersByUid.as.$package).
36260 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 20 41 6c 69 61 73 50 {.if.($package.instanceof.AliasP
36280 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 ackage).{.$package->getAliasOf()
362a0 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 2d ->setId(-1);.}.$package->setId(-
362c0 31 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 68 61 74 50 72 6f 1);.}.}..public.function.whatPro
362e0 76 69 64 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 69 vides(Pool.$pool,.$name).{.if.(i
36300 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 7b sset($this->providers[$name])).{
36320 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 3b .return.$this->providers[$name];
36340 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 .}....if.(preg_match(PlatformRep
36360 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c ository::PLATFORM_PACKAGE_REGEX,
36380 20 24 6e 61 6d 65 29 20 7c 7c 20 27 5f 5f 72 6f 6f 74 5f 5f 27 20 3d 3d 3d 20 24 6e 61 6d 65 29 .$name).||.'__root__'.===.$name)
363a0 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d .{.return.array();.}..if.(null.=
363c0 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 ==.$this->providerListing).{.$th
363e0 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e is->loadProviderListings($this->
36400 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 loadRootServerFile());.}..if.($t
36420 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 his->providersUrl).{...if.(!isse
36440 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 29 t($this->providerListing[$name])
36460 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 68 61 73 68 20 3d 20 24 ).{.return.array();.}..$hash.=.$
36480 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 5b 27 73 68 this->providerListing[$name]['sh
364a0 61 32 35 36 27 5d 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 a256'];.$url.=.str_replace(array
364c0 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 27 25 68 61 73 68 25 27 29 2c 20 61 72 72 61 79 28 24 ('%package%',.'%hash%'),.array($
364e0 6e 61 6d 65 2c 20 24 68 61 73 68 29 2c 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 name,.$hash),.$this->providersUr
36500 6c 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 27 70 72 6f 76 69 64 65 72 2d 27 2e 73 74 72 74 l);.$cacheKey.=.'provider-'.strt
36520 72 28 24 6e 61 6d 65 2c 20 27 2f 27 2c 20 27 24 27 29 2e 27 2e 6a 73 6f 6e 27 3b 0a 7d 20 65 6c r($name,.'/',.'$').'.json';.}.el
36540 73 65 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 70 2f 27 2e 24 6e 61 6d 65 2e 27 2e 6a 73 6f 6e 27 se.{...$url.=.'p/'.$name.'.json'
36560 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c ;....if.(!isset($this->providerL
36580 69 73 74 69 6e 67 5b 24 75 72 6c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b isting[$url])).{.return.array();
365a0 0a 7d 0a 24 68 61 73 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e .}.$hash.=.$this->providerListin
365c0 67 5b 24 75 72 6c 5d 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 6e g[$url]['sha256'];.$cacheKey.=.n
365e0 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 ull;.}..if.($this->cache->sha256
36600 28 24 63 61 63 68 65 4b 65 79 29 20 3d 3d 3d 20 24 68 61 73 68 29 20 7b 0a 24 70 61 63 6b 61 67 ($cacheKey).===.$hash).{.$packag
36620 65 73 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 68 65 2d 3e 72 es.=.json_decode($this->cache->r
36640 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ead($cacheKey),.true);.}.else.{.
36660 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 75 72 $packages.=.$this->fetchFile($ur
36680 6c 2c 20 24 63 61 63 68 65 4b 65 79 2c 20 24 68 61 73 68 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e l,.$cacheKey,.$hash);.}..$this->
366a0 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 providers[$name].=.array();.fore
366c0 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 76 ach.($packages['packages'].as.$v
366e0 65 72 73 69 6f 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 ersions).{.foreach.($versions.as
36700 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e .$version).{...if.(isset($this->
36720 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 29 providersByUid[$version['uid']])
36740 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 ).{...if.(!isset($this->provider
36760 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 s[$name][$version['uid']])).{...
36780 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 if.($this->providersByUid[$versi
367a0 6f 6e 5b 27 75 69 64 27 5d 5d 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 on['uid']].instanceof.AliasPacka
367c0 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 ge).{.$this->providers[$name][$v
367e0 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 ersion['uid']].=.$this->provider
36800 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 2d 3e 67 65 74 41 6c 69 61 sByUid[$version['uid']]->getAlia
36820 73 4f 66 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 sOf();.$this->providers[$name][$
36840 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 74 68 69 73 version['uid'].'-alias'].=.$this
36860 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d ->providersByUid[$version['uid']
36880 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 ];.}.else.{.$this->providers[$na
368a0 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 me][$version['uid']].=.$this->pr
368c0 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d ovidersByUid[$version['uid']];.}
368e0 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 ...if.(isset($this->providersByU
36900 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 29 29 20 7b 0a id[$version['uid'].'-root'])).{.
36920 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e $this->providers[$name][$version
36940 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 ['uid'].'-root'].=.$this->provid
36960 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 ersByUid[$version['uid'].'-root'
36980 5d 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 76 65 72 73 69 ];.}.}.}.else.{.if.(isset($versi
369a0 6f 6e 5b 27 70 72 6f 76 69 64 65 27 5d 29 20 7c 7c 20 69 73 73 65 74 28 24 76 65 72 73 69 6f 6e on['provide']).||.isset($version
369c0 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 0a 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 ['replace'])).{...$names.=.array
369e0 28 0a 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e 61 6d 65 27 5d 29 20 3d (.strtolower($version['name']).=
36a00 3e 20 74 72 75 65 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 76 65 72 73 69 6f 6e 5b 27 70 >.true,.);.if.(isset($version['p
36a20 72 6f 76 69 64 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 5b 27 rovide'])).{.foreach.($version['
36a40 70 72 6f 76 69 64 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 provide'].as.$target.=>.$constra
36a60 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 int).{.$names[strtolower($target
36a80 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 76 65 72 73 69 6f )].=.true;.}.}.if.(isset($versio
36aa0 6e 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 n['replace'])).{.foreach.($versi
36ac0 6f 6e 5b 27 72 65 70 6c 61 63 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e on['replace'].as.$target.=>.$con
36ae0 73 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 straint).{.$names[strtolower($ta
36b00 72 67 65 74 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 rget)].=.true;.}.}.$names.=.arra
36b20 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 73 20 y_keys($names);.}.else.{.$names.
36b40 3d 20 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e 61 6d =.array(strtolower($version['nam
36b60 65 27 5d 29 29 3b 0a 7d 0a 69 66 20 28 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 e']));.}.if.(!$pool->isPackageAc
36b80 63 65 70 74 61 62 6c 65 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e 61 ceptable(strtolower($version['na
36ba0 6d 65 27 5d 29 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 me']),.VersionParser::parseStabi
36bc0 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 29 20 7b 0a 63 6f lity($version['version']))).{.co
36be0 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 ntinue;.}....$package.=.$this->c
36c00 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 76 65 72 73 69 6f 6e 2c 20 27 43 6f 6d 70 6f 73 65 72 reatePackage($version,.'Composer
36c20 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 \Package\Package');.$package->se
36c40 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 tRepository($this);..if.($packag
36c60 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 61 6c e.instanceof.AliasPackage).{.$al
36c80 69 61 73 65 64 20 3d 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 iased.=.$package->getAliasOf();.
36ca0 24 61 6c 69 61 73 65 64 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a $aliased->setRepository($this);.
36cc0 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f .$this->providers[$name][$versio
36ce0 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 61 6c 69 61 73 65 64 3b 0a 24 74 68 69 73 2d 3e 70 72 6f n['uid']].=.$aliased;.$this->pro
36d00 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d viders[$name][$version['uid'].'-
36d20 61 6c 69 61 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 alias'].=.$package;....$this->pr
36d40 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 ovidersByUid[$version['uid']].=.
36d60 24 70 61 63 6b 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 $package;.}.else.{.$this->provid
36d80 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 ers[$name][$version['uid']].=.$p
36da0 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 ackage;.$this->providersByUid[$v
36dc0 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 20 ersion['uid']].=.$package;.}....
36de0 75 6e 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 unset($rootAliasData);..if.(isse
36e00 74 28 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 t($this->rootAliases[$name][$pac
36e20 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 kage->getVersion()])).{.$rootAli
36e40 61 73 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d asData.=.$this->rootAliases[$nam
36e60 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 7d 20 65 6c e][$package->getVersion()];.}.el
36e80 73 65 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 seif.($package.instanceof.AliasP
36ea0 61 63 6b 61 67 65 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 ackage.&&.isset($this->rootAlias
36ec0 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 es[$name][$package->getAliasOf()
36ee0 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 ->getVersion()])).{.$rootAliasDa
36f00 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 ta.=.$this->rootAliases[$name][$
36f20 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 56 65 72 73 69 6f package->getAliasOf()->getVersio
36f40 6e 28 29 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 n()];.}..if.(isset($rootAliasDat
36f60 61 29 29 20 7b 0a 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 a)).{.$alias.=.$this->createAlia
36f80 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 sPackage($package,.$rootAliasDat
36fa0 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 72 6f 6f 74 41 6c 69 61 a['alias_normalized'],.$rootAlia
36fc0 73 44 61 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 2d 3e 73 65 74 52 65 70 6f sData['alias']);.$alias->setRepo
36fe0 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 sitory($this);..$this->providers
37000 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d [$name][$version['uid'].'-root']
37020 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 .=.$alias;.$this->providersByUid
37040 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 61 6c 69 [$version['uid'].'-root'].=.$ali
37060 61 73 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 as;.}.}.}.}..return.$this->provi
37080 64 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ders[$name];.}.....protected.fun
370a0 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 69 6e 69 ction.initialize().{.parent::ini
370c0 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c tialize();..$repoData.=.$this->l
370e0 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 oadDataFromServer();..foreach.($
37100 72 65 70 6f 44 61 74 61 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 repoData.as.$package).{.$this->a
37120 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 ddPackage($this->createPackage($
37140 70 61 63 6b 61 67 65 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c package,.'Composer\Package\Compl
37160 65 74 65 50 61 63 6b 61 67 65 27 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 etePackage'));.}.}..protected.fu
37180 6e 63 74 69 6f 6e 20 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 0a 7b 0a 69 66 nction.loadRootServerFile().{.if
371a0 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 29 20 7b 0a 72 65 .(null.!==.$this->rootData).{.re
371c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 turn.$this->rootData;.}..if.(!ex
371e0 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 74 tension_loaded('openssl').&&.'ht
37200 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 35 tps'.===.substr($this->url,.0,.5
37220 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 6e )).{.throw.new.\RuntimeException
37240 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 78 ('You.must.enable.the.openssl.ex
37260 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 20 tension.in.your.php.ini.to.load.
37280 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 0a information.from.'.$this->url);.
372a0 7d 0a 0a 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 }..$jsonUrlParts.=.parse_url($th
372c0 69 73 2d 3e 75 72 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6a 73 6f 6e 55 72 6c 50 61 72 is->url);..if.(isset($jsonUrlPar
372e0 74 73 5b 27 70 61 74 68 27 5d 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 ts['path']).&&.false.!==.strpos(
37300 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 68 27 5d 2c 20 27 2f 70 61 63 6b 61 67 65 $jsonUrlParts['path'],.'/package
37320 73 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 s.json')).{.$jsonUrl.=.$this->ur
37340 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 l;.}.else.{.$jsonUrl.=.$this->ur
37360 6c 20 2e 20 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d l...'/packages.json';.}..$data.=
37380 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 6a 73 6f 6e 55 72 6c 2c 20 27 70 61 63 .$this->fetchFile($jsonUrl,.'pac
373a0 6b 61 67 65 73 2e 6a 73 6f 6e 27 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b kages.json');..if.(!empty($data[
373c0 27 6e 6f 74 69 66 79 2d 62 61 74 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 'notify-batch'])).{.$this->notif
373e0 79 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 yUrl.=.$this->canonicalizeUrl($d
37400 61 74 61 5b 27 6e 6f 74 69 66 79 2d 62 61 74 63 68 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 ata['notify-batch']);.}.elseif.(
37420 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 5f 62 61 74 63 68 27 5d 29 29 20 7b !empty($data['notify_batch'])).{
37440 0a 0a 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e ...$this->notifyUrl.=.$this->can
37460 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 5f 62 61 74 63 68 onicalizeUrl($data['notify_batch
37480 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 ']);.}.elseif.(!empty($data['not
374a0 69 66 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 ify'])).{.$this->notifyUrl.=.$th
374c0 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 is->canonicalizeUrl($data['notif
374e0 79 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 73 65 61 72 63 y']);.}..if.(!empty($data['searc
37500 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 3d 20 24 74 68 69 73 h'])).{.$this->searchUrl.=.$this
37520 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 73 65 61 72 63 68 27 ->canonicalizeUrl($data['search'
37540 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 ]);.}..if.($this->allowSslDowngr
37560 61 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 ade).{.$this->url.=.str_replace(
37580 27 68 74 74 70 73 3a 2f 2f 27 2c 20 27 68 74 74 70 3a 2f 2f 27 2c 20 24 74 68 69 73 2d 3e 75 72 'https://',.'http://',.$this->ur
375a0 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 l);.}..if.(!empty($data['provide
375c0 72 73 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c rs-url'])).{.$this->providersUrl
375e0 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b .=.$this->canonicalizeUrl($data[
37600 27 70 72 6f 76 69 64 65 72 73 2d 75 72 6c 27 5d 29 3b 0a 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 'providers-url']);.$this->hasPro
37620 76 69 64 65 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 viders.=.true;.}..if.(!empty($da
37640 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 ta['providers']).||.!empty($data
37660 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 ['providers-includes'])).{.$this
37680 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ->hasProviders.=.true;.}..return
376a0 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 6f .$this->rootData.=.$data;.}..pro
376c0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 tected.function.canonicalizeUrl(
376e0 24 75 72 6c 29 0a 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 75 72 6c 5b 30 5d 29 20 7b 0a 72 $url).{.if.('/'.===.$url[0]).{.r
37700 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 5b eturn.preg_replace('{(https?://[
37720 5e 2f 5d 2b 29 2e 2a 7d 69 27 2c 20 27 24 31 27 20 2e 20 24 75 72 6c 2c 20 24 74 68 69 73 2d 3e ^/]+).*}i',.'$1'...$url,.$this->
37740 75 72 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 url);.}..return.$url;.}..protect
37760 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 ed.function.loadDataFromServer()
37780 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 .{.$data.=.$this->loadRootServer
377a0 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 File();..return.$this->loadInclu
377c0 64 65 73 28 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 des($data);.}..protected.functio
377e0 6e 20 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 64 61 74 61 29 0a 7b 0a n.loadProviderListings($data).{.
37800 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 29 20 7b if.(isset($data['providers'])).{
37820 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 .if.(!is_array($this->providerLi
37840 73 74 69 6e 67 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 sting)).{.$this->providerListing
37860 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 .=.array();.}.$this->providerLis
37880 74 69 6e 67 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 ting.=.array_merge($this->provid
378a0 65 72 4c 69 73 74 69 6e 67 2c 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 3b 0a erListing,.$data['providers']);.
378c0 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 20 26 26 20 69 73 }..if.($this->providersUrl.&&.is
378e0 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 set($data['provider-includes']))
37900 20 7b 0a 24 69 6e 63 6c 75 64 65 73 20 3d 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 2d 69 .{.$includes.=.$data['provider-i
37920 6e 63 6c 75 64 65 73 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 73 20 61 73 ncludes'];.foreach.($includes.as
37940 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 24 75 72 6c 20 3d .$include.=>.$metadata).{.$url.=
37960 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 73 74 72 5f 72 65 70 6c .$this->baseUrl...'/'...str_repl
37980 61 63 65 28 27 25 68 61 73 68 25 27 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 ace('%hash%',.$metadata['sha256'
379a0 5d 2c 20 24 69 6e 63 6c 75 64 65 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 73 74 72 5f 72 65 ],.$include);.$cacheKey.=.str_re
379c0 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 68 61 73 68 25 27 2c 27 24 27 29 2c 20 27 27 2c 20 24 place(array('%hash%','$'),.'',.$
379e0 69 6e 63 6c 75 64 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 include);.if.($this->cache->sha2
37a00 35 36 28 24 63 61 63 68 65 4b 65 79 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 56($cacheKey).===.$metadata['sha
37a20 32 35 36 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 256']).{.$includedData.=.json_de
37a40 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 code($this->cache->read($cacheKe
37a60 79 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 y),.true);.}.else.{.$includedDat
37a80 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 75 72 6c 2c 20 24 63 61 63 68 a.=.$this->fetchFile($url,.$cach
37aa0 65 4b 65 79 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 eKey,.$metadata['sha256']);.}..$
37ac0 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 69 6e 63 6c this->loadProviderListings($incl
37ae0 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 udedData);.}.}.elseif.(isset($da
37b00 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 0a 20 24 ta['providers-includes'])).{...$
37b20 69 6e 63 6c 75 64 65 73 20 3d 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c includes.=.$data['providers-incl
37b40 75 64 65 73 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 73 20 61 73 20 24 69 udes'];.foreach.($includes.as.$i
37b60 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 68 69 73 nclude.=>.$metadata).{.if.($this
37b80 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d ->cache->sha256($include).===.$m
37ba0 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 etadata['sha256']).{.$includedDa
37bc0 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 68 65 2d 3e 72 ta.=.json_decode($this->cache->r
37be0 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 65 20 7b 0a 24 ead($include),.true);.}.else.{.$
37c00 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 includedData.=.$this->fetchFile(
37c20 24 69 6e 63 6c 75 64 65 2c 20 6e 75 6c 6c 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 $include,.null,.$metadata['sha25
37c40 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 6']);.}..$this->loadProviderList
37c60 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 ings($includedData);.}.}.}..prot
37c80 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 61 74 ected.function.loadIncludes($dat
37ca0 61 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 a).{.$packages.=.array();....if.
37cc0 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 21 69 (!isset($data['packages']).&&.!i
37ce0 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 sset($data['includes'])).{.forea
37d00 63 68 20 28 24 64 61 74 61 20 61 73 20 24 70 6b 67 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 ch.($data.as.$pkg).{.foreach.($p
37d20 6b 67 5b 27 76 65 72 73 69 6f 6e 73 27 5d 20 61 73 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 kg['versions'].as.$metadata).{.$
37d40 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 0a 72 65 74 packages[].=.$metadata;.}.}..ret
37d60 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 urn.$packages;.}..if.(isset($dat
37d80 61 5b 27 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 a['packages'])).{.foreach.($data
37da0 5b 27 70 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 ['packages'].as.$package.=>.$ver
37dc0 73 69 6f 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 sions).{.foreach.($versions.as.$
37de0 76 65 72 73 69 6f 6e 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 version.=>.$metadata).{.$package
37e00 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 s[].=.$metadata;.}.}.}..if.(isse
37e20 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 t($data['includes'])).{.foreach.
37e40 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d ($data['includes'].as.$include.=
37e60 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d >.$metadata).{.if.($this->cache-
37e80 3e 73 68 61 31 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 >sha1($include).===.$metadata['s
37ea0 68 61 31 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 ha1']).{.$includedData.=.json_de
37ec0 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 code($this->cache->read($include
37ee0 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 ),.true);.}.else.{.$includedData
37f00 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 29 3b 0a 7d .=.$this->fetchFile($include);.}
37f20 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 61 67 .$packages.=.array_merge($packag
37f40 65 73 2c 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 69 6e 63 6c 75 64 65 es,.$this->loadIncludes($include
37f60 64 44 61 74 61 29 29 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 dData));.}.}..return.$packages;.
37f80 7d 0a 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 50 61 63 6b }..protected.function.createPack
37fa0 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 63 6c 61 73 73 29 0a 7b 0a 74 72 79 20 7b age(array.$data,.$class).{.try.{
37fc0 0a 24 64 61 74 61 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 20 3d 20 24 74 68 .$data['notification-url'].=.$th
37fe0 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f is->notifyUrl;..return.$this->lo
38000 61 64 65 72 2d 3e 6c 6f 61 64 28 24 64 61 74 61 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b ader->load($data,.'Composer\Pack
38020 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 age\CompletePackage');.}.catch.(
38040 5c 45 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 \Exception.$e).{.throw.new.\Runt
38060 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 70 61 63 imeException('Could.not.load.pac
38080 6b 61 67 65 20 27 2e 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 29 20 3f 20 24 kage.'.(isset($data['name']).?.$
380a0 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 data['name'].:.json_encode($data
380c0 29 29 2e 27 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3a 20 5b 27 2e 67 65 74 5f 63 )).'.in.'.$this->url.':.['.get_c
380e0 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 lass($e).'].'.$e->getMessage(),.
38100 30 2c 20 24 65 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 0,.$e);.}.}..protected.function.
38120 66 65 74 63 68 46 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 63 61 63 68 65 4b 65 79 20 3d fetchFile($filename,.$cacheKey.=
38140 20 6e 75 6c 6c 2c 20 24 73 68 61 32 35 36 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 63 .null,.$sha256.=.null).{.if.(!$c
38160 61 63 68 65 4b 65 79 29 20 7b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 24 66 69 6c 65 6e 61 6d 65 acheKey).{.$cacheKey.=.$filename
38180 3b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2e 27 2f 27 ;.$filename.=.$this->baseUrl.'/'
381a0 2e 24 66 69 6c 65 6e 61 6d 65 3b 0a 7d 0a 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 .$filename;.}..$retries.=.3;.whi
381c0 6c 65 20 28 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 le.($retries--).{.try.{.$json.=.
381e0 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 66 69 6c 65 6e 61 6d $this->rfs->getContents($filenam
38200 65 2c 20 24 66 69 6c 65 6e 61 6d 65 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 73 68 61 32 35 e,.$filename,.false);.if.($sha25
38220 36 20 26 26 20 24 73 68 61 32 35 36 20 21 3d 3d 20 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 20 6.&&.$sha256.!==.hash('sha256',.
38240 24 6a 73 6f 6e 29 29 20 7b 0a 69 66 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 $json)).{.if.($retries).{.usleep
38260 28 31 30 30 30 30 30 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 74 68 72 6f 77 20 (100000);..continue;.}....throw.
38280 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 28 new.RepositorySecurityException(
382a0 27 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 27 2e 24 66 69 6c 65 6e 61 6d 65 2e 27 20 64 'The.contents.of.'.$filename.'.d
382c0 6f 20 6e 6f 74 20 6d 61 74 63 68 20 69 74 73 20 73 69 67 6e 61 74 75 72 65 2e 20 54 68 69 73 20 o.not.match.its.signature..This.
382e0 73 68 6f 75 6c 64 20 69 6e 64 69 63 61 74 65 20 61 20 6d 61 6e 2d 69 6e 2d 74 68 65 2d 6d 69 64 should.indicate.a.man-in-the-mid
38300 64 6c 65 20 61 74 74 61 63 6b 2e 20 54 72 79 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 72 dle.attack..Try.running.composer
38320 20 61 67 61 69 6e 20 61 6e 64 20 72 65 70 6f 72 74 20 74 68 69 73 20 69 66 20 79 6f 75 20 74 68 .again.and.report.this.if.you.th
38340 69 6e 6b 20 69 74 20 69 73 20 61 20 6d 69 73 74 61 6b 65 2e 27 29 3b 0a 7d 0a 24 64 61 74 61 20 ink.it.is.a.mistake.');.}.$data.
38360 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 2c 20 24 66 69 =.JsonFile::parseJson($json,.$fi
38380 6c 65 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 63 61 lename);.$this->cache->write($ca
383a0 63 68 65 4b 65 79 2c 20 24 6a 73 6f 6e 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 cheKey,.$json);..break;.}.catch.
383c0 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 74 72 69 65 73 29 20 (\Exception.$e).{.if.($retries).
383e0 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 30 30 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 {.usleep(100000);.continue;.}..i
38400 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 f.($e.instanceof.RepositorySecur
38420 69 74 79 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 ityException).{.throw.$e;.}..if.
38440 28 24 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 ($contents.=.$this->cache->read(
38460 24 63 61 63 68 65 4b 65 79 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 67 72 61 64 $cacheKey)).{.if.(!$this->degrad
38480 65 64 4d 6f 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 edMode).{.$this->io->write('<war
384a0 6e 69 6e 67 3e 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 ning>'.$e->getMessage().'</warni
384c0 6e 67 3e 27 29 3b 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 ng>');.$this->io->write('<warnin
384e0 67 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 75 g>'.$this->url.'.could.not.be.fu
38500 6c 6c 79 20 6c 6f 61 64 65 64 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 lly.loaded,.package.information.
38520 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 61 63 68 65 20 was.loaded.from.the.local.cache.
38540 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 6e 69 6e 67 3e and.may.be.out.of.date</warning>
38560 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 74 72 75 65 ');.}.$this->degradedMode.=.true
38580 3b 0a 24 64 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 63 ;.$data.=.JsonFile::parseJson($c
385a0 6f 6e 74 65 6e 74 73 2c 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 65 74 52 6f 6f 74 28 29 ontents,.$this->cache->getRoot()
385c0 2e 24 63 61 63 68 65 4b 65 79 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 .$cacheKey);..break;.}..throw.$e
385e0 3b 0a 7d 0a 7d 0a 0a 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 ;.}.}..return.$data;.}.}.<?php..
38600 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
38620 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 64 ository\Pear;.......class.Depend
38640 65 6e 63 79 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 encyInfo.{.private.$requires;.pr
38660 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ivate.$optionals;......public.fu
38680 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 71 75 69 72 65 73 2c 20 24 6f nction.__construct($requires,.$o
386a0 70 74 69 6f 6e 61 6c 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 ptionals).{.$this->requires.=.$r
386c0 65 71 75 69 72 65 73 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 24 6f 70 74 equires;.$this->optionals.=.$opt
386e0 69 6f 6e 61 6c 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 ionals;.}.....public.function.ge
38700 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
38720 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 4f ires;.}.....public.function.getO
38740 70 74 69 6f 6e 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f ptionals().{.return.$this->optio
38760 6e 61 6c 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 nals;.}.}.<?php............names
38780 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;..
387a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 .....class.PackageDependencyPars
387c0 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 er.{.......public.function.build
387e0 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 69 66 20 28 DependencyInfo($depArray).{.if.(
38800 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e !is_array($depArray)).{.return.n
38820 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 ew.DependencyInfo(array(),.array
38840 28 29 29 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 41 72 ());.}.if.(!$this->isHash($depAr
38860 72 61 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 ray)).{.return.new.DependencyInf
38880 6f 28 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 o($this->buildDependency10Info($
388a0 64 65 70 41 72 72 61 79 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 depArray),.array());.}..return.$
388c0 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 this->buildDependency20Info($dep
388e0 41 72 72 61 79 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 Array);.}..............private.f
38900 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 unction.buildDependency10Info($d
38920 65 70 41 72 72 61 79 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 epArray).{.static.$dep10toOperat
38940 6f 72 4d 61 70 20 3d 20 61 72 72 61 79 28 27 68 61 73 27 3d 3e 27 3d 3d 27 2c 20 27 65 71 27 20 orMap.=.array('has'=>'==',.'eq'.
38960 3d 3e 20 27 3d 3d 27 2c 20 27 67 65 27 20 3d 3e 20 27 3e 3d 27 2c 20 27 67 74 27 20 3d 3e 20 27 =>.'==',.'ge'.=>.'>=',.'gt'.=>.'
38980 3e 27 2c 20 27 6c 65 27 20 3d 3e 20 27 3c 3d 27 2c 20 27 6c 74 27 20 3d 3e 20 27 3c 27 2c 20 27 >',.'le'.=>.'<=',.'lt'.=>.'<',.'
389a0 6e 6f 74 27 20 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 not'.=>.'!=');..$result.=.array(
389c0 29 3b 0a 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 49 74 );..foreach.($depArray.as.$depIt
389e0 65 6d 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 em).{.if.(empty($depItem['rel'])
38a00 20 7c 7c 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 64 65 70 49 74 65 6d 5b 27 .||.!array_key_exists($depItem['
38a20 72 65 6c 27 5d 2c 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 29 20 7b 0a 0a rel'],.$dep10toOperatorMap)).{..
38a40 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 70 54 79 70 65 20 3d 20 21 65 6d 70 74 79 28 .continue;.}..$depType.=.!empty(
38a60 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 6c 27 5d 29 20 26 26 20 27 79 65 73 27 20 3d $depItem['optional']).&&.'yes'.=
38a80 3d 20 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 6c 27 5d 0a 3f 20 27 6f 70 74 69 6f 6e =.$depItem['optional'].?.'option
38aa0 61 6c 27 0a 3a 20 27 72 65 71 75 69 72 65 64 27 3b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 6e 6f al'.:.'required';.$depType.=.'no
38ac0 74 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 0a 3f 20 27 63 6f 6e 66 6c 69 63 t'.==.$depItem['rel'].?.'conflic
38ae0 74 73 27 0a 3a 20 24 64 65 70 54 79 70 65 3b 0a 0a 24 64 65 70 56 65 72 73 69 6f 6e 20 3d 20 21 ts'.:.$depType;..$depVersion.=.!
38b00 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 74 68 empty($depItem['version']).?.$th
38b20 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 is->parseVersion($depItem['versi
38b40 6f 6e 27 5d 29 20 3a 20 27 2a 27 3b 0a 0a 0a 20 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 on']).:.'*';....$depVersionConst
38b60 72 61 69 6e 74 20 3d 20 28 27 68 61 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 raint.=.('has'.==.$depItem['rel'
38b80 5d 20 7c 7c 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 26 ].||.'not'.==.$depItem['rel']).&
38ba0 26 20 27 2a 27 20 3d 3d 20 24 64 65 70 56 65 72 73 69 6f 6e 0a 3f 20 27 2a 27 0a 3a 20 24 64 65 &.'*'.==.$depVersion.?.'*'.:.$de
38bc0 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d p10toOperatorMap[$depItem['rel']
38be0 5d 20 2e 20 24 64 65 70 56 65 72 73 69 6f 6e 3b 0a 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 ]...$depVersion;..switch.($depIt
38c00 65 6d 5b 27 74 79 70 65 27 5d 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 64 65 70 43 68 em['type']).{.case.'php':.$depCh
38c20 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 70 68 70 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 annelName.=.'php';.$depPackageNa
38c40 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 6b 67 27 3a 0a 24 64 65 70 me.=.'';.break;.case.'pkg':.$dep
38c60 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 63 ChannelName.=.!empty($depItem['c
38c80 68 61 6e 6e 65 6c 27 5d 29 20 3f 20 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 hannel']).?.$depItem['channel'].
38ca0 3a 20 27 70 65 61 72 2e 70 68 70 2e 6e 65 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d :.'pear.php.net';.$depPackageNam
38cc0 65 20 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 e.=.$depItem['name'];.break;.cas
38ce0 65 20 27 65 78 74 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 e.'ext':.$depChannelName.=.'ext'
38d00 3b 0a 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 ;.$depPackageName.=.$depItem['na
38d20 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 73 61 me'];.break;.case.'os':.case.'sa
38d40 70 69 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 pi':.$depChannelName.=.'';.$depP
38d60 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a ackageName.=.'';.break;.default:
38d80 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 .$depChannelName.=.'';.$depPacka
38da0 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d geName.=.'';.break;.}..if.(''.!=
38dc0 20 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 .$depChannelName).{.$result[].=.
38de0 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 54 79 new.DependencyConstraint(.$depTy
38e00 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 pe,.$depVersionConstraint,.$depC
38e20 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d hannelName,.$depPackageName.);.}
38e40 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 0a 0a 0a 70 72 69 .}..return.$result;.}........pri
38e60 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 vate.function.buildDependency20I
38e80 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 nfo($depArray).{.$result.=.array
38ea0 28 29 3b 0a 24 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 65 66 61 75 ();.$optionals.=.array();.$defau
38ec0 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 ltOptionals.=.array();.foreach.(
38ee0 24 64 65 70 41 72 72 61 79 20 61 73 20 24 64 65 70 54 79 70 65 20 3d 3e 20 24 64 65 70 54 79 70 $depArray.as.$depType.=>.$depTyp
38f00 65 47 72 6f 75 70 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 54 79 70 65 eGroup).{.if.(!is_array($depType
38f20 47 72 6f 75 70 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 27 72 65 71 75 69 Group)).{.continue;.}.if.('requi
38f40 72 65 64 27 20 3d 3d 20 24 64 65 70 54 79 70 65 20 7c 7c 20 27 6f 70 74 69 6f 6e 61 6c 27 20 3d red'.==.$depType.||.'optional'.=
38f60 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 =.$depType).{.foreach.($depTypeG
38f80 72 6f 75 70 20 61 73 20 24 64 65 70 49 74 65 6d 54 79 70 65 20 3d 3e 20 24 64 65 70 49 74 65 6d roup.as.$depItemType.=>.$depItem
38fa0 29 20 7b 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 54 79 70 65 29 20 7b 0a 63 61 73 65 ).{.switch.($depItemType).{.case
38fc0 20 27 70 68 70 27 3a 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 .'php':.$result[].=.new.Dependen
38fe0 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 74 68 69 73 2d 3e 70 cyConstraint(.$depType,.$this->p
39000 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 64 65 70 49 74 65 6d arse20VersionConstraint($depItem
39020 29 2c 0a 27 70 68 70 27 2c 0a 27 27 0a 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 61 63 ),.'php',.''.);.break;.case.'pac
39040 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 kage':.$deps.=.$this->buildDepPa
39060 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 ckageConstraints($depItem,.$depT
39080 79 70 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 ype);.$result.=.array_merge($res
390a0 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 65 6e 73 ult,.$deps);.break;.case.'extens
390c0 69 6f 6e 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 45 78 74 ion':.$deps.=.$this->buildDepExt
390e0 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 ensionConstraints($depItem,.$dep
39100 54 79 70 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 Type);.$result.=.array_merge($re
39120 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 75 62 70 61 sult,.$deps);.break;.case.'subpa
39140 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 ckage':.$deps.=.$this->buildDepP
39160 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 27 72 65 70 ackageConstraints($depItem,.'rep
39180 6c 61 63 65 73 27 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 2b 3d 20 24 64 laces');.$defaultOptionals.+=.$d
391a0 65 70 73 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 70 65 61 eps;.break;.case.'os':.case.'pea
391c0 72 69 6e 73 74 61 6c 6c 65 72 27 3a 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 rinstaller':.break;.default:.bre
391e0 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 67 72 6f 75 70 27 20 3d 3d 20 24 64 65 ak;.}.}.}.elseif.('group'.==.$de
39200 70 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 54 pType).{.if.($this->isHash($depT
39220 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 3d 20 61 72 72 ypeGroup)).{.$depTypeGroup.=.arr
39240 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 ay($depTypeGroup);.}..foreach.($
39260 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 24 67 72 6f depTypeGroup.as.$depItem).{.$gro
39280 75 70 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 61 74 74 72 69 62 73 27 5d 5b 27 6e 61 upName.=.$depItem['attribs']['na
392a0 6d 65 27 5d 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f me'];.if.(!isset($optionals[$gro
392c0 75 70 4e 61 6d 65 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d upName])).{.$optionals[$groupNam
392e0 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 70 49 e].=.array();.}..if.(isset($depI
39300 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 tem['subpackage'])).{.$optionals
39320 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 2b 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 [$groupName].+=.$this->buildDepP
39340 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 ackageConstraints($depItem['subp
39360 61 63 6b 61 67 65 27 5d 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ackage'],.'replaces');.}.else.{.
39380 24 72 65 73 75 6c 74 20 2b 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 $result.+=.$this->buildDepPackag
393a0 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 5b 27 70 61 63 6b 61 67 65 27 5d eConstraints($depItem['package']
393c0 2c 20 27 6f 70 74 69 6f 6e 61 6c 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e ,.'optional');.}.}.}.}..if.(coun
393e0 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 29 20 3e 20 30 29 20 7b 0a 24 6f 70 74 t($defaultOptionals).>.0).{.$opt
39400 69 6f 6e 61 6c 73 5b 27 2a 27 5d 20 3d 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 3b ionals['*'].=.$defaultOptionals;
39420 0a 7d 0a 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 24 72 .}..return.new.DependencyInfo($r
39440 65 73 75 6c 74 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 esult,.$optionals);.}.........pr
39460 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e ivate.function.buildDepExtension
39480 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a Constraints($depItem,.$depType).
394a0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b {.if.($this->isHash($depItem)).{
394c0 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a .$depItem.=.array($depItem);.}..
394e0 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 64 65 70 $result.=.array();.foreach.($dep
39500 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e Item.as.$subDepItem).{.$depChann
39520 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.
39540 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 56 65 72 73 69 =.$subDepItem['name'];.$depVersi
39560 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 32 30 56 65 72 onConstraint.=.$this->parse20Ver
39580 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 3b 0a 0a 24 72 sionConstraint($subDepItem);..$r
395a0 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 74 72 61 69 esult[].=.new.DependencyConstrai
395c0 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 73 74 72 61 nt(.$depType,.$depVersionConstra
395e0 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 63 6b 61 67 int,.$depChannelName,.$depPackag
39600 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 3b 0a 7d 0a 0a 0a eName.);.}..return.$result;.}...
39620 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 64 44 65 70 50 ......private.function.buildDepP
39640 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 ackageConstraints($depItem,.$dep
39660 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 Type).{.if.($this->isHash($depIt
39680 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 72 61 79 28 24 64 65 70 49 74 65 6d em)).{.$depItem.=.array($depItem
396a0 29 3b 0a 7d 0a 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 );.}..$result.=.array();.foreach
396c0 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 .($depItem.as.$subDepItem).{.$de
396e0 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 68 61 6e pChannelName.=.$subDepItem['chan
39700 6e 65 6c 27 5d 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 nel'];.$depPackageName.=.$subDep
39720 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 Item['name'];.$depVersionConstra
39740 69 6e 74 20 3d 20 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 int.=.$this->parse20VersionConst
39760 72 61 69 6e 74 28 24 73 75 62 44 65 70 49 74 65 6d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 raint($subDepItem);.if.(isset($s
39780 75 62 44 65 70 49 74 65 6d 5b 27 63 6f 6e 66 6c 69 63 74 73 27 5d 29 29 20 7b 0a 24 64 65 70 54 ubDepItem['conflicts'])).{.$depT
397a0 79 70 65 20 3d 20 27 63 6f 6e 66 6c 69 63 74 73 27 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 ype.=.'conflicts';.}..$result[].
397c0 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
397e0 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 Type,.$depVersionConstraint,.$de
39800 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b pChannelName,.$depPackageName.);
39820 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 0a 0a 0a 70 72 69 .}..return.$result;.}........pri
39840 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 vate.function.parse20VersionCons
39860 74 72 61 69 6e 74 28 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 traint(array.$data).{.static.$de
39880 70 32 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 27 3d 3e p20toOperatorMap.=.array('has'=>
398a0 27 3d 3d 27 2c 20 27 6d 69 6e 27 20 3d 3e 20 27 3e 3d 27 2c 20 27 6d 61 78 27 20 3d 3e 20 27 3c '==',.'min'.=>.'>=',.'max'.=>.'<
398c0 3d 27 2c 20 27 65 78 63 6c 75 64 65 27 20 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 76 65 72 73 69 6f =',.'exclude'.=>.'!=');..$versio
398e0 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 5f 69 6e ns.=.array();.$values.=.array_in
39900 74 65 72 73 65 63 74 5f 6b 65 79 28 24 64 61 74 61 2c 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 tersect_key($data,.$dep20toOpera
39920 74 6f 72 4d 61 70 29 3b 0a 69 66 20 28 30 20 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 torMap);.if.(0.==.count($values)
39940 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 27 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 6c ).{.return.'*';.}.if.(isset($val
39960 75 65 73 5b 27 6d 69 6e 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 ues['min']).&&.isset($values['ex
39980 63 6c 75 64 65 27 5d 29 20 26 26 20 24 64 61 74 61 5b 27 6d 69 6e 27 5d 20 3d 3d 20 24 64 61 74 clude']).&&.$data['min'].==.$dat
399a0 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3e a['exclude']).{.$versions[].=.'>
399c0 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b '...$this->parseVersion($values[
399e0 27 6d 69 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 'min']);.}.elseif.(isset($values
39a00 5b 27 6d 61 78 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 ['max']).&&.isset($values['exclu
39a20 64 65 27 5d 29 20 26 26 20 24 64 61 74 61 5b 27 6d 61 78 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 de']).&&.$data['max'].==.$data['
39a40 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3c 27 20 2e exclude']).{.$versions[].=.'<'..
39a60 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 61 .$this->parseVersion($values['ma
39a80 78 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 x']);.}.else.{.foreach.($values.
39aa0 61 73 20 24 6f 70 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 27 65 78 63 6c 75 as.$op.=>.$version).{.if.('exclu
39ac0 64 65 27 20 3d 3d 20 24 6f 70 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 76 65 72 73 69 6f 6e 29 de'.==.$op.&&.is_array($version)
39ae0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 20 61 73 20 24 76 65 72 73 69 6f ).{.foreach.($version.as.$versio
39b00 6e 50 61 72 74 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f nPart).{.$versions[].=.$dep20toO
39b20 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 72 73 65 56 65 peratorMap[$op]...$this->parseVe
39b40 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 50 61 72 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a rsion($versionPart);.}.}.else.{.
39b60 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 $versions[].=.$dep20toOperatorMa
39b80 70 5b 24 6f 70 5d 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 p[$op]...$this->parseVersion($ve
39ba0 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c rsion);.}.}.}..return.implode(',
39bc0 27 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ',.$versions);.}........private.
39be0 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a function.parseVersion($version).
39c00 7b 0a 69 66 20 28 70 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 {.if.(preg_match('{^v?(\d{1,3})(
39c20 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 7d 69 27 2c 20 24 76 65 72 \.\d+)?(\.\d+)?(\.\d+)?}i',.$ver
39c40 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d sion,.$matches)).{.$version.=.$m
39c60 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 atches[1]..(!empty($matches[2]).
39c80 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 ?.$matches[2].:.'.0')..(!empty($
39ca0 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 matches[3]).?.$matches[3].:.'.0'
39cc0 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 )..(!empty($matches[4]).?.$match
39ce0 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b es[4].:.'.0');..return.$version;
39d00 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 .}..return.null;.}........privat
39d20 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 48 61 73 68 28 61 72 72 61 79 20 24 61 72 72 61 79 29 0a e.function.isHash(array.$array).
39d40 7b 0a 72 65 74 75 72 6e 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 31 2c 20 24 61 {.return.!array_key_exists(1,.$a
39d60 72 72 61 79 29 20 26 26 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 30 2c 20 24 61 rray).&&.!array_key_exists(0,.$a
39d80 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 0a 6e 61 6d 65 rray);.}.}.<?php............name
39da0 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;.
39dc0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 ......class.ChannelInfo.{.privat
39de0 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 3b 0a 70 72 69 76 61 74 65 e.$name;.private.$alias;.private
39e00 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$packages;.......public.functio
39e20 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 61 6c 69 61 73 2c 20 61 72 72 n.__construct($name,.$alias,.arr
39e40 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e ay.$packages).{.$this->name.=.$n
39e60 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 ame;.$this->alias.=.$alias;.$thi
39e80 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a s->packages.=.$packages;.}......
39ea0 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
39ec0 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.
39ee0 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 24 74 68 function.getAlias().{.return.$th
39f00 69 73 2d 3e 61 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 is->alias;.}.......public.functi
39f20 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d on.getPackages().{.return.$this-
39f40 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a >packages;.}.}.<?php............
39f60 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 50 65 namespace.Composer\Repository\Pe
39f80 61 72 3b 0a 0a 75 73 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 ar;..use.Composer\Util\RemoteFil
39fa0 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 esystem;.........class.ChannelRe
39fc0 61 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 ader.extends.BaseChannelReader.{
39fe0 0a 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 65 72 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 ..private.$readerMap;..public.fu
3a000 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 65 73 79 73 nction.__construct(RemoteFilesys
3a020 74 65 6d 20 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 tem.$rfs).{.parent::__construct(
3a040 24 72 66 73 29 3b 0a 0a 24 72 65 73 74 31 30 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e $rfs);..$rest10reader.=.new.Chan
3a060 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 28 24 72 66 73 29 3b 0a 24 72 65 73 74 31 31 72 65 nelRest10Reader($rfs);.$rest11re
3a080 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 28 24 ader.=.new.ChannelRest11Reader($
3a0a0 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 61 64 65 72 4d 61 70 20 3d 20 61 72 72 61 79 28 rfs);..$this->readerMap.=.array(
3a0c0 0a 27 52 45 53 54 31 2e 33 27 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 .'REST1.3'.=>.$rest11reader,.'RE
3a0e0 53 54 31 2e 32 27 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e ST1.2'.=>.$rest11reader,.'REST1.
3a100 31 27 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 30 27 20 3d 1'.=>.$rest11reader,.'REST1.0'.=
3a120 3e 20 24 72 65 73 74 31 30 72 65 61 64 65 72 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 >.$rest10reader,.);.}........pub
3a140 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 75 72 6c 29 0a 7b 0a 24 78 6d 6c 20 3d lic.function.read($url).{.$xml.=
3a160 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 75 72 6c 2c 20 22 2f 63 68 61 6e 6e .$this->requestXml($url,."/chann
3a180 65 6c 2e 78 6d 6c 22 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 el.xml");..$channelName.=.(strin
3a1a0 67 29 20 24 78 6d 6c 2d 3e 6e 61 6d 65 3b 0a 24 63 68 61 6e 6e 65 6c 53 75 6d 6d 61 72 79 20 3d g).$xml->name;.$channelSummary.=
3a1c0 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 75 6d 6d 61 72 79 3b 0a 24 63 68 61 6e 6e 65 .(string).$xml->summary;.$channe
3a1e0 6c 41 6c 69 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 75 67 67 65 73 74 65 lAlias.=.(string).$xml->suggeste
3a200 64 61 6c 69 61 73 3b 0a 0a 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 20 3d 20 61 72 dalias;..$supportedVersions.=.ar
3a220 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 72 65 61 64 65 72 4d 61 70 29 3b 0a 24 73 65 6c ray_keys($this->readerMap);.$sel
3a240 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 ectedRestVersion.=.$this->select
3a260 52 65 73 74 56 65 72 73 69 6f 6e 28 24 78 6d 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 RestVersion($xml,.$supportedVers
3a280 69 6f 6e 73 29 3b 0a 69 66 20 28 21 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e ions);.if.(!$selectedRestVersion
3a2a0 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
3a2c0 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 ception(sprintf('PEAR.repository
3a2e0 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 73 20 61 6e 79 20 6f 66 20 25 73 20 .%s.does.not.supports.any.of.%s.
3a300 70 72 6f 74 6f 63 6f 6c 73 2e 27 2c 20 24 75 72 6c 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c protocols.',.$url,.implode(',.',
3a320 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 29 29 3b 0a 7d 0a 0a 24 72 65 61 64 .$supportedVersions)));.}..$read
3a340 65 72 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 65 72 4d 61 70 5b 24 73 65 6c 65 63 74 65 64 52 er.=.$this->readerMap[$selectedR
3a360 65 73 74 56 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 5d 3b 0a 24 70 61 63 6b 61 67 65 estVersion['version']];.$package
3a380 44 65 66 69 6e 69 74 69 6f 6e 73 20 3d 20 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 73 65 6c Definitions.=.$reader->read($sel
3a3a0 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 5b 27 62 61 73 65 55 72 6c 27 5d 29 3b 0a 0a 72 ectedRestVersion['baseUrl']);..r
3a3c0 65 74 75 72 6e 20 6e 65 77 20 43 68 61 6e 6e 65 6c 49 6e 66 6f 28 24 63 68 61 6e 6e 65 6c 4e 61 eturn.new.ChannelInfo($channelNa
3a3e0 6d 65 2c 20 24 63 68 61 6e 6e 65 6c 41 6c 69 61 73 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e me,.$channelAlias,.$packageDefin
3a400 69 74 69 6f 6e 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 itions);.}.........private.funct
3a420 69 6f 6e 20 73 65 6c 65 63 74 52 65 73 74 56 65 72 73 69 6f 6e 28 24 63 68 61 6e 6e 65 6c 58 6d ion.selectRestVersion($channelXm
3a440 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 0a 7b 0a 24 63 68 61 6e 6e 65 l,.$supportedVersions).{.$channe
3a460 6c 58 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 6e 73 lXml->registerXPathNamespace('ns
3a480 27 2c 20 73 65 6c 66 3a 3a 43 48 41 4e 4e 45 4c 5f 4e 53 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 ',.self::CHANNEL_NS);..foreach.(
3a4a0 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 $supportedVersions.as.$version).
3a4c0 7b 0a 24 78 70 61 74 68 54 65 73 74 20 3d 20 22 6e 73 3a 73 65 72 76 65 72 73 2f 6e 73 3a 70 72 {.$xpathTest.=."ns:servers/ns:pr
3a4e0 69 6d 61 72 79 2f 6e 73 3a 72 65 73 74 2f 6e 73 3a 62 61 73 65 75 72 6c 5b 40 74 79 70 65 3d 27 imary/ns:rest/ns:baseurl[@type='
3a500 7b 24 76 65 72 73 69 6f 6e 7d 27 5d 22 3b 0a 24 74 65 73 74 52 65 73 75 6c 74 20 3d 20 24 63 68 {$version}']";.$testResult.=.$ch
3a520 61 6e 6e 65 6c 58 6d 6c 2d 3e 78 70 61 74 68 28 24 78 70 61 74 68 54 65 73 74 29 3b 0a 69 66 20 annelXml->xpath($xpathTest);.if.
3a540 28 63 6f 75 6e 74 28 24 74 65 73 74 52 65 73 75 6c 74 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 (count($testResult).>.0).{.retur
3a560 6e 20 61 72 72 61 79 28 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 20 27 n.array('version'.=>.$version,.'
3a580 62 61 73 65 55 72 6c 27 20 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 65 73 74 52 65 73 75 6c 74 baseUrl'.=>.(string).$testResult
3a5a0 5b 30 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 [0]);.}.}..return.null;.}.}.<?ph
3a5c0 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\
3a5e0 52 65 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 50 61 63 Repository\Pear;.......class.Pac
3a600 6b 61 67 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b kageInfo.{.private.$channelName;
3a620 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 .private.$packageName;.private.$
3a640 6c 69 63 65 6e 73 65 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 license;.private.$shortDescripti
3a660 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 on;.private.$description;.privat
3a680 65 20 24 72 65 6c 65 61 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e e.$releases;..........public.fun
3a6a0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 ction.__construct($channelName,.
3a6c0 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6c 69 63 65 6e 73 65 2c 20 24 73 68 6f 72 74 44 65 $packageName,.$license,.$shortDe
3a6e0 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 72 65 6c 65 61 73 scription,.$description,.$releas
3a700 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e es).{.$this->channelName.=.$chan
3a720 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 6d 65 20 3d 20 24 70 nelName;.$this->packageName.=.$p
3a740 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 ackageName;.$this->license.=.$li
3a760 63 65 6e 73 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d cense;.$this->shortDescription.=
3a780 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 .$shortDescription;.$this->descr
3a7a0 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 72 65 iption.=.$description;.$this->re
3a7c0 6c 65 61 73 65 73 20 3d 20 24 72 65 6c 65 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 leases.=.$releases;.}.....public
3a7e0 20 66 75 6e 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 .function.getChannelName().{.ret
3a800 75 72 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 urn.$this->channelName;.}.....pu
3a820 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b blic.function.getPackageName().{
3a840 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a .return.$this->packageName;.}...
3a860 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 69 6f 6e ..public.function.getDescription
3a880 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 6e 3b 0a ().{.return.$this->description;.
3a8a0 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 68 6f 72 74 44 65 }.....public.function.getShortDe
3a8c0 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 73 68 6f 72 scription().{.return.$this->shor
3a8e0 74 44 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 tDescription;.}.....public.funct
3a900 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 20 24 74 68 69 73 2d ion.getLicense().{.return.$this-
3a920 3e 6c 69 63 65 6e 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 20 >license;.}.....public.function.
3a940 67 65 74 52 65 6c 65 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 getReleases().{.return.$this->re
3a960 6c 65 61 73 65 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 leases;.}.}.<?php............nam
3a980 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 50 65 61 72 3b espace.Composer\Repository\Pear;
3a9a0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e .......class.DependencyConstrain
3a9c0 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 79 70 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 73 t.{.private.$type;.private.$cons
3a9e0 74 72 61 69 6e 74 3b 0a 70 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 traint;.private.$channelName;.pr
3aa00 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ivate.$packageName;........publi
3aa20 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 79 70 65 2c 20 24 63 c.function.__construct($type,.$c
3aa40 6f 6e 73 74 72 61 69 6e 74 2c 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 onstraint,.$channelName,.$packag
3aa60 65 4e 61 6d 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 24 74 eName).{.$this->type.=.$type;.$t
3aa80 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 0a 24 his->constraint.=.$constraint;.$
3aaa0 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 this->channelName.=.$channelName
3aac0 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e ;.$this->packageName.=.$packageN
3aae0 61 6d 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 43 68 61 6e 6e ame;.}..public.function.getChann
3ab00 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
3ab20 4e 61 6d 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 43 6f 6e 73 Name;.}..public.function.getCons
3ab40 74 72 61 69 6e 74 28 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 traint().{.return.$this->constra
3ab60 69 6e 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 50 61 63 6b 61 int;.}..public.function.getPacka
3ab80 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 6b 61 67 65 geName().{.return.$this->package
3aba0 4e 61 6d 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 79 70 65 Name;.}..public.function.getType
3abc0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 7d 0a 3c 3f 70 ().{.return.$this->type;.}.}.<?p
3abe0 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
3ac00 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 \Repository\Pear;...........clas
3ac20 73 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 s.ChannelRest11Reader.extends.Ba
3ac40 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e seChannelReader.{.private.$depen
3ac60 64 65 6e 63 79 52 65 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 dencyReader;..public.function.__
3ac80 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 construct($rfs).{.parent::__cons
3aca0 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 truct($rfs);..$this->dependencyR
3acc0 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 6e 63 79 50 61 72 eader.=.new.PackageDependencyPar
3ace0 73 65 72 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 6f 6e ser();.}.........public.function
3ad00 20 72 65 61 64 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .read($baseUrl).{.return.$this->
3ad20 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d readChannelPackages($baseUrl);.}
3ad40 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 43 68 .........private.function.readCh
3ad60 61 6e 6e 65 6c 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 annelPackages($baseUrl).{.$resul
3ad80 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 t.=.array();..$xml.=.$this->requ
3ada0 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 22 2f 63 2f 63 61 74 65 67 6f 72 69 65 73 2e estXml($baseUrl,."/c/categories.
3adc0 78 6d 6c 22 29 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 xml");.$xml->registerXPathNamesp
3ade0 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e ace('ns',.self::ALL_CATEGORIES_N
3ae00 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 63 27 29 S);.foreach.($xml->xpath('ns:c')
3ae20 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 20 3d 20 28 73 74 .as.$node).{.$categoryName.=.(st
3ae40 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 20 3d ring).$node;.$categoryPackages.=
3ae60 20 24 74 68 69 73 2d 3e 72 65 61 64 43 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 .$this->readCategoryPackages($ba
3ae80 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d seUrl,.$categoryName);.$result.=
3aea0 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 63 61 74 65 67 6f 72 79 50 .array_merge($result,.$categoryP
3aec0 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a ackages);.}..return.$result;.}..
3aee0 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 43 61 74 ........private.function.readCat
3af00 65 67 6f 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 egoryPackages($baseUrl,.$categor
3af20 79 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 0a 24 63 61 yName).{.$result.=.array();..$ca
3af40 74 65 67 6f 72 79 50 61 74 68 20 3d 20 27 2f 63 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 63 61 tegoryPath.=.'/c/'.urlencode($ca
3af60 74 65 67 6f 72 79 4e 61 6d 65 29 2e 27 2f 70 61 63 6b 61 67 65 73 69 6e 66 6f 2e 78 6d 6c 27 3b tegoryName).'/packagesinfo.xml';
3af80 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 24 62 61 73 65 55 .$xml.=.$this->requestXml($baseU
3afa0 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 rl,.$categoryPath);.$xml->regist
3afc0 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 43 41 54 erXPathNamespace('ns',.self::CAT
3afe0 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 EGORY_PACKAGES_INFO_NS);.foreach
3b000 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 69 27 29 20 61 73 20 24 6e 6f 64 65 29 .($xml->xpath('ns:pi').as.$node)
3b020 20 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 .{.$packageInfo.=.$this->parsePa
3b040 63 6b 61 67 65 28 24 6e 6f 64 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 ckage($node);.$result[].=.$packa
3b060 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 7d 0a 0a 0a 0a geInfo;.}..return.$result;.}....
3b080 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 50 61 63 6b 61 67 ....private.function.parsePackag
3b0a0 65 28 24 70 61 63 6b 61 67 65 49 6e 66 6f 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e e($packageInfo).{.$packageInfo->
3b0c0 72 65 67 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 registerXPathNamespace('ns',.sel
3b0e0 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 24 f::CATEGORY_PACKAGES_INFO_NS);.$
3b100 63 68 61 6e 6e 65 6c 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 channelName.=.(string).$packageI
3b120 6e 66 6f 2d 3e 70 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 nfo->p->c;.$packageName.=.(strin
3b140 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 g).$packageInfo->p->n;.$license.
3b160 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 2d 3e 6c 3b 0a 24 =.(string).$packageInfo->p->l;.$
3b180 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 67 29 20 24 70 61 63 shortDescription.=.(string).$pac
3b1a0 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 73 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 kageInfo->p->s;.$description.=.(
3b1c0 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 64 3b 0a 0a 24 64 65 string).$packageInfo->p->d;..$de
3b1e0 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 pendencies.=.array();.foreach.($
3b200 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a 64 65 70 73 27 29 20 61 73 packageInfo->xpath('ns:deps').as
3b220 20 24 6e 6f 64 65 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 56 65 72 73 69 6f 6e 20 3d 20 28 .$node).{.$dependencyVersion.=.(
3b240 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 string).$node->v;.$dependencyArr
3b260 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d ay.=.unserialize((string).$node-
3b280 3e 64 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 64 >d);..$dependencyInfo.=.$this->d
3b2a0 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 ependencyReader->buildDependency
3b2c0 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 29 3b 0a 0a 24 64 65 70 65 6e 64 Info($dependencyArray);..$depend
3b2e0 65 6e 63 69 65 73 5b 24 64 65 70 65 6e 64 65 6e 63 79 56 65 72 73 69 6f 6e 5d 20 3d 20 24 64 65 encies[$dependencyVersion].=.$de
3b300 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a 0a 24 72 65 6c 65 61 73 65 73 20 3d 20 61 72 72 pendencyInfo;.}..$releases.=.arr
3b320 61 79 28 29 3b 0a 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 20 3d 20 24 70 61 63 6b 61 67 65 49 6e ay();.$releasesInfo.=.$packageIn
3b340 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a 61 2f 6e 73 3a 72 27 29 3b 0a 69 66 20 28 24 72 65 6c fo->xpath('ns:a/ns:r');.if.($rel
3b360 65 61 73 65 73 49 6e 66 6f 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 73 49 easesInfo).{.foreach.($releasesI
3b380 6e 66 6f 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 nfo.as.$node).{.$releaseVersion.
3b3a0 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 =.(string).$node->v;.$releaseSta
3b3c0 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 24 72 65 6c bility.=.(string).$node->s;.$rel
3b3e0 65 61 73 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c eases[$releaseVersion].=.new.Rel
3b400 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 69 73 73 easeInfo(.$releaseStability,.iss
3b420 65 74 28 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e et($dependencies[$releaseVersion
3b440 5d 29 20 3f 20 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 ]).?.$dependencies[$releaseVersi
3b460 6f 6e 5d 20 3a 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 on].:.new.DependencyInfo(array()
3b480 2c 20 61 72 72 61 79 28 29 29 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 ,.array()).);.}.}..return.new.Pa
3b4a0 63 6b 61 67 65 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 ckageInfo(.$channelName,.$packag
3b4c0 65 4e 61 6d 65 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 eName,.$license,.$shortDescripti
3b4e0 6f 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 72 65 6c 65 61 73 65 73 0a 29 3b 0a 7d on,.$description,.$releases.);.}
3b500 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
3b520 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 0a 0a 63 6c mposer\Repository\Pear;.......cl
3b540 61 73 73 20 52 65 6c 65 61 73 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 61 62 69 ass.ReleaseInfo.{.private.$stabi
3b560 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 0a lity;.private.$dependencyInfo;..
3b580 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(
3b5a0 24 73 74 61 62 69 6c 69 74 79 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 29 0a 7b 0a 24 $stability,.$dependencyInfo).{.$
3b5c0 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 24 74 this->stability.=.$stability;.$t
3b5e0 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 his->dependencyInfo.=.$dependenc
3b600 79 49 6e 66 6f 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 yInfo;.}.....public.function.get
3b620 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d DependencyInfo().{.return.$this-
3b640 3e 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 63 20 66 75 >dependencyInfo;.}.....public.fu
3b660 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.$
3b680 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a this->stability;.}.}.<?php......
3b6a0 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
3b6c0 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d ory\Pear;..use.Composer\Util\Rem
3b6e0 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 oteFilesystem;.........abstract.
3b700 63 6c 61 73 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 0a 0a 63 6f 6e class.BaseChannelReader.{....con
3b720 73 74 20 43 48 41 4e 4e 45 4c 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 st.CHANNEL_NS.=.'http://pear.php
3b740 2e 6e 65 74 2f 63 68 61 6e 6e 65 6c 2d 31 2e 30 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 43 41 54 .net/channel-1.0';.const.ALL_CAT
3b760 45 47 4f 52 49 45 53 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 EGORIES_NS.=.'http://pear.php.ne
3b780 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 63 61 74 65 67 6f 72 69 65 73 27 3b 0a 63 6f 6e 73 74 t/dtd/rest.allcategories';.const
3b7a0 20 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 68 74 .CATEGORY_PACKAGES_INFO_NS.=.'ht
3b7c0 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 63 61 74 65 67 tp://pear.php.net/dtd/rest.categ
3b7e0 6f 72 79 70 61 63 6b 61 67 65 69 6e 66 6f 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 50 41 43 4b 41 orypackageinfo';.const.ALL_PACKA
3b800 47 45 53 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 64 74 GES_NS.=.'http://pear.php.net/dt
3b820 64 2f 72 65 73 74 2e 61 6c 6c 70 61 63 6b 61 67 65 73 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 52 d/rest.allpackages';.const.ALL_R
3b840 45 4c 45 41 53 45 53 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 ELEASES_NS.=.'http://pear.php.ne
3b860 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 72 65 6c 65 61 73 65 73 27 3b 0a 63 6f 6e 73 74 20 50 t/dtd/rest.allreleases';.const.P
3b880 41 43 4b 41 47 45 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 ACKAGE_INFO_NS.=.'http://pear.ph
3b8a0 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 70 61 63 6b 61 67 65 27 3b 0a 0a 0a 70 72 69 76 61 p.net/dtd/rest.package';...priva
3b8c0 74 65 20 24 72 66 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 te.$rfs;..protected.function.__c
3b8e0 6f 6e 73 74 72 75 63 74 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a onstruct(RemoteFilesystem.$rfs).
3b900 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 {.$this->rfs.=.$rfs;.}.........p
3b920 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 rotected.function.requestContent
3b940 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 ($origin,.$path).{.$url.=.rtrim(
3b960 24 6f 72 69 67 69 6e 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 $origin,.'/')...'/'...ltrim($pat
3b980 68 2c 20 27 2f 27 29 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e h,.'/');.$content.=.$this->rfs->
3b9a0 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 getContents($origin,.$url,.false
3b9c0 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 );.if.(!$content).{.throw.new.\U
3b9e0 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 68 65 20 50 45 41 nexpectedValueException('The.PEA
3ba00 52 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 20 2e 20 24 75 72 6c 20 2e 20 27 20 64 69 64 20 6e 6f R.channel.at.'...$url...'.did.no
3ba20 74 20 72 65 73 70 6f 6e 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 t.respond.');.}..return.$content
3ba40 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 72 ;.}.........protected.function.r
3ba60 65 71 75 65 73 74 58 6d 6c 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 78 equestXml($origin,.$path).{...$x
3ba80 6d 6c 20 3d 20 73 69 6d 70 6c 65 78 6d 6c 5f 6c 6f 61 64 5f 73 74 72 69 6e 67 28 24 74 68 69 73 ml.=.simplexml_load_string($this
3baa0 2d 3e 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 ->requestContent($origin,.$path)
3bac0 2c 20 22 53 69 6d 70 6c 65 58 4d 4c 45 6c 65 6d 65 6e 74 22 2c 20 4c 49 42 58 4d 4c 5f 4e 4f 45 ,."SimpleXMLElement",.LIBXML_NOE
3bae0 52 52 4f 52 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 20 24 78 6d 6c 29 20 7b 0a 24 75 72 RROR);..if.(false.==.$xml).{.$ur
3bb00 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 27 20 2e 20 l.=.rtrim($origin,.'/')...'/'...
3bb20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 2f 27 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e ltrim($path,.'/');.throw.new.\Un
3bb40 65 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 expectedValueException(sprintf('
3bb60 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 6f 72 69 67 69 6e 20 The.PEAR.channel.at.'...$origin.
3bb80 2e 20 27 20 69 73 20 62 72 6f 6b 65 6e 2e 20 28 49 6e 76 61 6c 69 64 20 58 4d 4c 20 61 74 20 66 ..'.is.broken..(Invalid.XML.at.f
3bba0 69 6c 65 20 60 25 73 60 29 27 2c 20 24 70 61 74 68 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ile.`%s`)',.$path));.}..return.$
3bbc0 78 6d 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 xml;.}.}.<?php............namesp
3bbe0 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 75 ace.Composer\Repository\Pear;..u
3bc00 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 72 74 se.Composer\Downloader\Transport
3bc20 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 Exception;.............class.Cha
3bc40 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 nnelRest10Reader.extends.BaseCha
3bc60 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 nnelReader.{.private.$dependency
3bc80 52 65 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 6e 73 74 Reader;..public.function.__const
3bca0 72 75 63 74 28 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 ruct($rfs).{.parent::__construct
3bcc0 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 ($rfs);..$this->dependencyReader
3bce0 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 .=.new.PackageDependencyParser()
3bd00 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 72 65 61 64 ;.}.........public.function.read
3bd20 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 50 ($baseUrl).{.return.$this->readP
3bd40 61 63 6b 61 67 65 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 ackages($baseUrl);.}.........pri
3bd60 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 vate.function.readPackages($base
3bd80 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 50 Url).{.$result.=.array();..$xmlP
3bda0 61 74 68 20 3d 20 27 2f 70 2f 70 61 63 6b 61 67 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 ath.=.'/p/packages.xml';.$xml.=.
3bdc0 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 24 78 6d 6c $this->requestXml($baseUrl,.$xml
3bde0 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 6d 65 73 70 Path);.$xml->registerXPathNamesp
3be00 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 29 ace('ns',.self::ALL_PACKAGES_NS)
3be20 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 70 27 29 20 61 ;.foreach.($xml->xpath('ns:p').a
3be40 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e s.$node).{.$packageName.=.(strin
3be60 67 29 20 24 6e 6f 64 65 3b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e g).$node;.$packageInfo.=.$this->
3be80 72 65 61 64 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 readPackage($baseUrl,.$packageNa
3bea0 6d 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d me);.$result[].=.$packageInfo;.}
3bec0 0a 0a 72 65 74 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 72 69 ..return.$result;.}..........pri
3bee0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 vate.function.readPackage($baseU
3bf00 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 rl,.$packageName).{.$xmlPath.=.'
3bf20 2f 70 2f 27 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 /p/'...strtolower($packageName).
3bf40 2e 20 27 2f 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 ..'/info.xml';.$xml.=.$this->req
3bf60 75 65 73 74 58 6d 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 uestXml($baseUrl,.$xmlPath);.$xm
3bf80 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 6e 73 27 2c 20 l->registerXPathNamespace('ns',.
3bfa0 73 65 6c 66 3a 3a 50 41 43 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 0a 24 63 68 61 6e 6e 65 self::PACKAGE_INFO_NS);..$channe
3bfc0 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 63 3b 0a 24 70 61 63 6b 61 lName.=.(string).$xml->c;.$packa
3bfe0 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6e 3b 0a 24 6c 69 63 65 geName.=.(string).$xml->n;.$lice
3c000 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 nse.=.(string).$xml->l;.$shortDe
3c020 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 3b 0a 24 64 scription.=.(string).$xml->s;.$d
3c040 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 64 3b 0a 0a escription.=.(string).$xml->d;..
3c060 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 6c return.new.PackageInfo(.$channel
3c080 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 73 Name,.$packageName,.$license,.$s
3c0a0 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 24 hortDescription,.$description,.$
3c0c0 74 68 69 73 2d 3e 72 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 this->readPackageReleases($baseU
3c0e0 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rl,.$packageName).);.}..........
3c100 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 67 65 52 65 6c 65 private.function.readPackageRele
3c120 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 7b 0a 24 ases($baseUrl,.$packageName).{.$
3c140 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 78 6d 6c 50 61 74 result.=.array();..try.{.$xmlPat
3c160 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e h.=.'/r/'...strtolower($packageN
3c180 61 6d 65 29 20 2e 20 27 2f 61 6c 6c 72 65 6c 65 61 73 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 ame)...'/allreleases.xml';.$xml.
3c1a0 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 24 78 =.$this->requestXml($baseUrl,.$x
3c1c0 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 6d 65 mlPath);.$xml->registerXPathName
3c1e0 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e space('ns',.self::ALL_RELEASES_N
3c200 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 72 27 29 S);.foreach.($xml->xpath('ns:r')
3c220 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 .as.$node).{.$releaseVersion.=.(
3c240 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c string).$node->v;.$releaseStabil
3c260 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 0a 74 72 79 20 7b 0a ity.=.(string).$node->s;..try.{.
3c280 24 72 65 73 75 6c 74 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 $result[$releaseVersion].=.new.R
3c2a0 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 24 eleaseInfo(.$releaseStability,.$
3c2c0 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e this->readPackageReleaseDependen
3c2e0 63 69 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 2c 20 24 72 65 cies($baseUrl,.$packageName,.$re
3c300 6c 65 61 73 65 56 65 72 73 69 6f 6e 29 0a 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 leaseVersion).);.}.catch.(Transp
3c320 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 ortException.$exception).{.if.($
3c340 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 exception->getCode().!=.404).{.t
3c360 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 hrow.$exception;.}.}.}.}.catch.(
3c380 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b TransportException.$exception).{
3c3a0 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 .if.($exception->getCode().!=.40
3c3c0 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 4).{.throw.$exception;.}.}..retu
3c3e0 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 rn.$result;.}...........private.
3c400 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e function.readPackageReleaseDepen
3c420 64 65 6e 63 69 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 2c 20 dencies($baseUrl,.$packageName,.
3c440 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 $version).{.$dependencyReader.=.
3c460 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 0a new.PackageDependencyParser();..
3c480 24 64 65 70 74 68 50 61 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 $depthPath.=.'/r/'...strtolower(
3c4a0 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 64 65 70 73 2e 27 20 2e 20 24 76 65 72 73 $packageName)...'/deps.'...$vers
3c4c0 69 6f 6e 20 2e 20 27 2e 74 78 74 27 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e ion...'.txt';.$content.=.$this->
3c4e0 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 62 61 73 65 55 72 6c 2c 20 24 64 65 70 74 68 50 requestContent($baseUrl,.$depthP
3c500 61 74 68 29 3b 0a 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 ath);.$dependencyArray.=.unseria
3c520 6c 69 7a 65 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 64 65 70 65 6e lize($content);.$result.=.$depen
3c540 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f dencyReader->buildDependencyInfo
3c560 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 ($dependencyArray);..return.$res
3c580 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
3c5a0 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 73 65 20 43 6f ace.Composer\Repository;..use.Co
3c5c0 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 65 3b mposer\Package\PackageInterface;
3c5e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 .........interface.RepositoryInt
3c600 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 erface.extends.\Countable.{.cons
3c620 74 20 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 45 41 t.SEARCH_FULLTEXT.=.0;.const.SEA
3c640 52 43 48 5f 4e 41 4d 45 20 3d 20 31 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e RCH_NAME.=.1;.........public.fun
3c660 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 74 65 72 66 61 63 ction.hasPackage(PackageInterfac
3c680 65 20 24 70 61 63 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 e.$package);..........public.fun
3c6a0 63 74 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 ction.findPackage($name,.$versio
3c6c0 6e 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 66 69 6e n);..........public.function.fin
3c6e0 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 20 3d 20 6e 75 6c 6c dPackages($name,.$version.=.null
3c700 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 50 61 63 6b );.......public.function.getPack
3c720 61 67 65 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 6f 6e 20 ages();.........public.function.
3c740 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 3d 20 30 29 3b 0a 7d 0a 3c 3f 70 search($query,.$mode.=.0);.}.<?p
3c760 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
3c780 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 4f \Repository;..use.Composer\IO\IO
3c7a0 49 6e 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 Interface;.use.Composer\Json\Jso
3c7c0 6e 46 69 6c 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 nFile;.use.Composer\Package\Load
3c7e0 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 74 69 66 61 er\ArrayLoader;.....class.Artifa
3c800 63 74 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 ctRepository.extends.ArrayReposi
3c820 74 6f 72 79 0a 7b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 72 6f 74 tory.{..protected.$loader;..prot
3c840 65 63 74 65 64 20 24 6c 6f 6f 6b 75 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ected.$lookup;..public.function.
3c860 5f 5f 63 6f 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 __construct(array.$repoConfig,.I
3c880 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e OInterface.$io).{.if.(!extension
3c8a0 5f 6c 6f 61 64 65 64 28 27 7a 69 70 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e _loaded('zip')).{.throw.new.\Run
3c8c0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 61 72 74 69 66 61 63 74 20 72 65 70 6f timeException('The.artifact.repo
3c8e0 73 69 74 6f 72 79 20 72 65 71 75 69 72 65 73 20 50 48 50 5c 27 73 20 7a 69 70 20 65 78 74 65 6e sitory.requires.PHP\'s.zip.exten
3c900 73 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 sion');.}..$this->loader.=.new.A
3c920 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 20 3d 20 24 72 rrayLoader();.$this->lookup.=.$r
3c940 65 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 epoConfig['url'];.$this->io.=.$i
3c960 6f 3b 0a 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 o;.}..protected.function.initial
3c980 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();..$
3c9a0 74 68 69 73 2d 3e 73 63 61 6e 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 this->scanDirectory($this->looku
3c9c0 70 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 63 61 6e 44 69 72 65 p);.}..private.function.scanDire
3c9e0 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 6f 3b 0a ctory($path).{.$io.=.$this->io;.
3ca00 66 6f 72 65 61 63 68 20 28 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 foreach.(new.\RecursiveDirectory
3ca20 49 74 65 72 61 74 6f 72 28 24 70 61 74 68 29 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 0a 69 66 20 Iterator($path).as.$file).{..if.
3ca40 28 21 24 66 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 (!$file->isFile()).{.continue;.}
3ca60 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 ..$package.=.$this->getComposerI
3ca80 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 66 69 6c 65 29 3b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 nformation($file);.if.(!$package
3caa0 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 2d ).{.if.($io->isVerbose()).{.$io-
3cac0 3e 77 72 69 74 65 28 22 46 69 6c 65 20 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 66 69 6c 65 2d 3e 67 65 >write("File.<comment>{$file->ge
3cae0 74 42 61 73 65 6e 61 6d 65 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 64 6f 65 73 6e 27 74 20 73 tBasename()}</comment>.doesn't.s
3cb00 65 65 6d 20 74 6f 20 68 6f 6c 64 20 61 20 70 61 63 6b 61 67 65 22 29 3b 0a 7d 0a 63 6f 6e 74 69 eem.to.hold.a.package");.}.conti
3cb20 6e 75 65 3b 0a 7d 0a 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 nue;.}..if.($io->isVerbose()).{.
3cb40 24 74 65 6d 70 6c 61 74 65 20 3d 20 27 46 6f 75 6e 64 20 70 61 63 6b 61 67 65 20 3c 69 6e 66 6f $template.=.'Found.package.<info
3cb60 3e 25 73 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 >%s</info>.(<comment>%s</comment
3cb80 3e 29 20 69 6e 20 66 69 6c 65 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 3b 0a 24 69 6f >).in.file.<info>%s</info>';.$io
3cba0 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 24 70 61 63 6b ->write(sprintf($template,.$pack
3cbc0 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 age->getName(),.$package->getPre
3cbe0 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 66 69 6c 65 2d 3e 67 65 74 42 61 73 65 6e 61 6d 65 ttyVersion(),.$file->getBasename
3cc00 28 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b ()));.}..$this->addPackage($pack
3cc20 61 67 65 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 67 65 74 43 age);.}.}..private.function.getC
3cc40 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 omposerInformation(\SplFileInfo.
3cc60 24 66 69 6c 65 29 0a 7b 0a 24 7a 69 70 20 3d 20 6e 65 77 20 5c 5a 69 70 41 72 63 68 69 76 65 28 $file).{.$zip.=.new.\ZipArchive(
3cc80 29 3b 0a 24 7a 69 70 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 );.$zip->open($file->getPathname
3cca0 28 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 24 7a 69 70 2d 3e 6e 75 6d 46 69 6c 65 73 29 20 7b ());..if.(0.==.$zip->numFiles).{
3ccc0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 46 69 6c 65 49 6e 64 65 .return.false;.}..$foundFileInde
3cce0 78 20 3d 20 24 7a 69 70 2d 3e 6c 6f 63 61 74 65 4e 61 6d 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a x.=.$zip->locateName('composer.j
3cd00 73 6f 6e 27 2c 20 5c 5a 69 70 41 72 63 68 69 76 65 3a 3a 46 4c 5f 4e 4f 44 49 52 29 3b 0a 69 66 son',.\ZipArchive::FL_NODIR);.if
3cd20 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 66 6f 75 6e 64 46 69 6c 65 49 6e 64 65 78 29 20 7b 0a 72 .(false.===.$foundFileIndex).{.r
3cd40 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 46 69 eturn.false;.}..$configurationFi
3cd60 6c 65 4e 61 6d 65 20 3d 20 24 7a 69 70 2d 3e 67 65 74 4e 61 6d 65 49 6e 64 65 78 28 24 66 6f 75 leName.=.$zip->getNameIndex($fou
3cd80 6e 64 46 69 6c 65 49 6e 64 65 78 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 3d 20 22 ndFileIndex);..$composerFile.=."
3cda0 7a 69 70 3a 2f 2f 7b 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 7d 23 24 63 6f zip://{$file->getPathname()}#$co
3cdc0 6e 66 69 67 75 72 61 74 69 6f 6e 46 69 6c 65 4e 61 6d 65 22 3b 0a 24 6a 73 6f 6e 20 3d 20 66 69 nfigurationFileName";.$json.=.fi
3cde0 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a le_get_contents($composerFile);.
3ce00 0a 24 70 61 63 6b 61 67 65 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 .$package.=.JsonFile::parseJson(
3ce20 24 6a 73 6f 6e 2c 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a 24 70 61 63 6b 61 67 65 5b $json,.$composerFile);.$package[
3ce40 27 64 69 73 74 27 5d 20 3d 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 'dist'].=.array(.'type'.=>.'zip'
3ce60 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 2c ,.'url'.=>.$file->getRealPath(),
3ce80 0a 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 66 69 6c 65 2d 3e 67 65 74 42 61 73 65 6e 61 .'reference'.=>.$file->getBasena
3cea0 6d 65 28 29 2c 0a 27 73 68 61 73 75 6d 27 20 3d 3e 20 73 68 61 31 5f 66 69 6c 65 28 24 66 69 6c me(),.'shasum'.=>.sha1_file($fil
3cec0 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 29 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d e->getRealPath()).);..$package.=
3cee0 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a .$this->loader->load($package);.
3cf00 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .return.$package;.}.}.<?php.....
3cf20 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 69 .......namespace.Composer\Reposi
3cf40 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 4c 6f 61 64 tory;..use.Composer\Package\Load
3cf60 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 72 5c 50 61 63 er\ArrayLoader;.use.Composer\Pac
3cf80 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 kage\Loader\ValidatingArrayLoade
3cfa0 72 3b 0a 0a 0a 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 r;.......class.PackageRepository
3cfc0 20 65 78 74 65 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 .extends.ArrayRepository.{.priva
3cfe0 74 65 20 24 63 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 te.$config;.......public.functio
3d000 6e 20 5f 5f 63 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 n.__construct(array.$config).{.$
3d020 74 68 69 73 2d 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 this->config.=.$config['package'
3d040 5d 3b 0a 0a 0a 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 ];....if.(!is_numeric(key($this-
3d060 3e 63 6f 6e 66 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 >config))).{.$this->config.=.arr
3d080 61 79 28 24 74 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 ay($this->config);.}.}.....prote
3d0a0 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 72 cted.function.initialize().{.par
3d0c0 65 6e 74 3a 3a 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 ent::initialize();..$loader.=.ne
3d0e0 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 41 72 72 61 w.ValidatingArrayLoader(new.Arra
3d100 79 4c 6f 61 64 65 72 2c 20 66 61 6c 73 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d yLoader,.false);.foreach.($this-
3d120 3e 63 6f 6e 66 69 67 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 72 79 20 7b 0a 24 70 61 >config.as.$package).{.try.{.$pa
3d140 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b ckage.=.$loader->load($package);
3d160 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 74 68 72 6f 77 .}.catch.(\Exception.$e).{.throw
3d180 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 .new.InvalidRepositoryException(
3d1a0 27 41 20 72 65 70 6f 73 69 74 6f 72 79 20 6f 66 20 74 79 70 65 20 22 70 61 63 6b 61 67 65 22 20 'A.repository.of.type."package".
3d1c0 63 6f 6e 74 61 69 6e 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 64 65 66 69 contains.an.invalid.package.defi
3d1e0 6e 69 74 69 6f 6e 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 22 5c 6e 5c 6e nition:.'.$e->getMessage()."\n\n
3d200 49 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 3a 5c 6e 22 2e 6a Invalid.package.definition:\n".j
3d220 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d son_encode($package));.}..$this-
3d240 3e 61 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 7d 0a 3c 3f 70 >addPackage($package);.}.}.}.<?p
3d260 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
3d280 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6c 65 74 65 50 61 \Package;.......class.CompletePa
3d2a0 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 ckage.extends.Package.implements
3d2c0 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 .CompletePackageInterface.{.prot
3d2e0 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ected.$repositories;.protected.$
3d300 6c 69 63 65 6e 73 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6b 65 license.=.array();.protected.$ke
3d320 79 77 6f 72 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 73 3b 0a 70 72 6f 74 ywords;.protected.$authors;.prot
3d340 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 ected.$description;.protected.$h
3d360 6f 6d 65 70 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 63 72 69 70 74 73 20 3d 20 61 72 omepage;.protected.$scripts.=.ar
3d380 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 70 70 6f 72 74 20 3d 20 61 72 72 61 ray();.protected.$support.=.arra
3d3a0 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 73 65 74 53 63 72 69 y();.....public.function.setScri
3d3c0 70 74 73 28 61 72 72 61 79 20 24 73 63 72 69 70 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 72 pts(array.$scripts).{.$this->scr
3d3e0 69 70 74 73 20 3d 20 24 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ipts.=.$scripts;.}.....public.fu
3d400 6e 63 74 69 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 nction.getScripts().{.return.$th
3d420 69 73 2d 3e 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 is->scripts;.}.......public.func
3d440 74 69 6f 6e 20 73 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 tion.setRepositories($repositori
3d460 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 72 65 70 es).{.$this->repositories.=.$rep
3d480 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
3d4a0 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 20 24 74 68 69 .getRepositories().{.return.$thi
3d4c0 73 2d 3e 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 s->repositories;.}.......public.
3d4e0 66 75 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 function.setLicense(array.$licen
3d500 73 65 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 se).{.$this->license.=.$license;
3d520 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 4c 69 63 65 6e 73 .}.....public.function.getLicens
3d540 65 28 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 e().{.return.$this->license;.}..
3d560 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4b 65 79 77 6f 72 64 73 .....public.function.setKeywords
3d580 28 61 72 72 61 79 20 24 6b 65 79 77 6f 72 64 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6b 65 79 77 6f (array.$keywords).{.$this->keywo
3d5a0 72 64 73 20 3d 20 24 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rds.=.$keywords;.}.....public.fu
3d5c0 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.getKeywords().{.return.$t
3d5e0 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 his->keywords;.}.......public.fu
3d600 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 73 28 61 72 72 61 79 20 24 61 75 74 68 6f 72 73 nction.setAuthors(array.$authors
3d620 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 20 3d 20 24 61 75 74 68 6f 72 73 3b 0a 7d ).{.$this->authors.=.$authors;.}
3d640 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 72 73 28 .....public.function.getAuthors(
3d660 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a ).{.return.$this->authors;.}....
3d680 0a 0a 0a 70 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 ...public.function.setDescriptio
3d6a0 6e 28 24 64 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 n($description).{.$this->descrip
3d6c0 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 tion.=.$description;.}.....publi
3d6e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 c.function.getDescription().{.re
3d700 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a turn.$this->description;.}......
3d720 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 6f 6d 65 70 61 67 65 28 24 68 6f .public.function.setHomepage($ho
3d740 6d 65 70 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 20 3d 20 24 68 6f 6d mepage).{.$this->homepage.=.$hom
3d760 65 70 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 67 65 74 epage;.}.....public.function.get
3d780 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 6f 6d 65 70 Homepage().{.return.$this->homep
3d7a0 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 6f 6e 20 73 65 74 age;.}.......public.function.set
3d7c0 53 75 70 70 6f 72 74 28 61 72 72 61 79 20 24 73 75 70 70 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d Support(array.$support).{.$this-
3d7e0 3e 73 75 70 70 6f 72 74 20 3d 20 24 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 >support.=.$support;.}.....publi
3d800 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getSupport().{.return
3d820 20 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .$this->support;.}.}.<?php......
3d840 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 6b 61 67 65 ......namespace.Composer\Package
3d860 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 63 6b 61 67 65 5c 42 \Dumper;..use.Composer\Package\B
3d880 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 65 asePackage;.use.Composer\Package
3d8a0 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\
3d8c0 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 Package\CompletePackageInterface
3d8e0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 ;.use.Composer\Package\RootPacka
3d900 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 6b 61 67 geInterface;.use.Composer\Packag
3d920 65 5c 4c 69 6e 6b 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 44 75 6d 70 65 72 0a 7b e\Link;......class.ArrayDumper.{
3d940 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 50 61 63 6b 61 67 65 49 6e 74 .public.function.dump(PackageInt
3d960 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 erface.$package).{.$keys.=.array
3d980 28 0a 27 62 69 6e 61 72 69 65 73 27 20 3d 3e 20 27 62 69 6e 27 2c 0a 27 74 79 70 65 27 2c 0a 27 (.'binaries'.=>.'bin',.'type',.'
3d9a0 65 78 74 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 extra',.'installationSource'.=>.
3d9c0 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 2c 0a 27 61 75 74 6f 6c 6f 61 64 'installation-source',.'autoload
3d9e0 27 2c 0a 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 27 20 3d 3e 20 27 6e 6f 74 69 66 69 63 ',.'notificationUrl'.=>.'notific
3da00 61 74 69 6f 6e 2d 75 72 6c 27 2c 0a 27 69 6e 63 6c 75 64 65 50 61 74 68 73 27 20 3d 3e 20 27 69 ation-url',.'includePaths'.=>.'i
3da20 6e 63 6c 75 64 65 2d 70 61 74 68 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 nclude-path',.);..$data.=.array(
3da40 29 3b 0a 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 );.$data['name'].=.$package->get
3da60 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d PrettyName();.$data['version'].=
3da80 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 3b 0a 24 .$package->getPrettyVersion();.$
3daa0 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 61 data['version_normalized'].=.$pa
3dac0 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 ckage->getVersion();..if.($packa
3dae0 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 61 72 ge->getTargetDir()).{.$data['tar
3db00 67 65 74 2d 64 69 72 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 get-dir'].=.$package->getTargetD
3db20 69 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 ir();.}..if.($package->getSource
3db40 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 Type()).{.$data['source']['type'
3db60 5d 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 ].=.$package->getSourceType();.$
3db80 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 data['source']['url'].=.$package
3dba0 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 ->getSourceUrl();.$data['source'
3dbc0 5d 5b 27 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 ]['reference'].=.$package->getSo
3dbe0 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 urceReference();.}..if.($package
3dc00 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d ->getDistType()).{.$data['dist']
3dc20 5b 27 74 79 70 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 ['type'].=.$package->getDistType
3dc40 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b ();.$data['dist']['url'].=.$pack
3dc60 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d age->getDistUrl();.$data['dist']
3dc80 5b 27 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 44 69 73 ['reference'].=.$package->getDis
3dca0 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 tReference();.$data['dist']['sha
3dcc0 73 75 6d 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 sum'].=.$package->getDistSha1Che
3dce0 63 6b 73 75 6d 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 72 63 cksum();.}..if.($package->getArc
3dd00 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 61 72 63 68 69 76 65 hiveExcludes()).{.$data['archive
3dd20 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 72 63 ']['exclude'].=.$package->getArc
3dd40 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 hiveExcludes();.}..foreach.(Base
3dd60 50 61 63 6b 61 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 Package::$supportedLinkTypes.as.
3dd80 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 $type.=>.$opts).{.if.($links.=.$
3dda0 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 6f 70 74 73 5b 27 6d package->{'get'.ucfirst($opts['m
3ddc0 65 74 68 6f 64 27 5d 29 7d 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 ethod'])}()).{.foreach.($links.a
3dde0 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 64 61 74 61 5b 24 74 79 70 65 5d 5b 24 6c 69 6e 6b 2d 3e 67 s.$link).{.$data[$type][$link->g
3de00 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f etTarget()].=.$link->getPrettyCo
3de20 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 6b 73 6f 72 74 28 24 64 61 74 61 5b 24 74 79 70 65 5d nstraint();.}.ksort($data[$type]
3de40 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 63 6b 61 67 65 );.}.}..if.($packages.=.$package
3de60 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 ->getSuggests()).{.ksort($packag
3de80 65 73 29 3b 0a 24 64 61 74 61 5b 27 73 75 67 67 65 73 74 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 es);.$data['suggest'].=.$package
3dea0 73 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 s;.}..if.($package->getReleaseDa
3dec0 74 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 69 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 te()).{.$data['time'].=.$package
3dee0 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d ->getReleaseDate()->format('Y-m-
3df00 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 64 75 6d d.H:i:s');.}..$data.=.$this->dum
3df20 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 2c 20 24 64 61 74 61 29 3b pValues($package,.$keys,.$data);
3df40 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 43 6f 6d 70 6c 65 ..if.($package.instanceof.Comple
3df60 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6b 65 79 73 20 3d 20 61 72 tePackageInterface).{.$keys.=.ar
3df80 72 61 79 28 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 6c 69 63 65 6e 73 65 27 2c 0a 27 61 75 74 68 ray(.'scripts',.'license',.'auth
3dfa0 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 67 65 27 2c ors',.'description',.'homepage',
3dfc0 0a 27 6b 65 79 77 6f 72 64 73 27 2c 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 0a 27 73 75 .'keywords',.'repositories',.'su
3dfe0 70 70 6f 72 74 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 56 pport',.);..$data.=.$this->dumpV
3e000 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 2c 20 24 64 61 74 61 29 3b 0a 0a alues($package,.$keys,.$data);..
3e020 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 20 26 26 20 if.(isset($data['keywords']).&&.
3e040 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a 73 is_array($data['keywords'])).{.s
3e060 6f 72 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 ort($data['keywords']);.}.}..if.
3e080 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 ($package.instanceof.RootPackage
3e0a0 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d Interface).{.$minimumStability.=
3e0c0 20 24 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 69 74 79 28 29 .$package->getMinimumStability()
3e0e0 3b 0a 69 66 20 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 20 7b 0a 24 64 61 74 61 ;.if.($minimumStability).{.$data
3e100 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3d 20 24 6d 69 6e 69 6d 75 6d ['minimum-stability'].=.$minimum
3e120 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a Stability;.}.}..return.$data;.}.
3e140 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 56 61 6c 75 65 73 28 50 61 63 .private.function.dumpValues(Pac
3e160 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 6b kageInterface.$package,.array.$k
3e180 65 79 73 2c 20 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6b 65 eys,.array.$data).{.foreach.($ke
3e1a0 79 73 20 61 73 20 24 6d 65 74 68 6f 64 20 3d 3e 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 5f ys.as.$method.=>.$key).{.if.(is_
3e1c0 6e 75 6d 65 72 69 63 28 24 6d 65 74 68 6f 64 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6b numeric($method)).{.$method.=.$k
3e1e0 65 79 3b 0a 7d 0a 0a 24 67 65 74 74 65 72 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 ey;.}..$getter.=.'get'.ucfirst($
3e200 6d 65 74 68 6f 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 24 67 65 74 method);.$value.=.$package->$get
3e220 74 65 72 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 21 ter();..if.(null.!==.$value.&&.!
3e240 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 (is_array($value).&&.0.===.count
3e260 28 24 76 61 6c 75 65 29 29 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 75 ($value))).{.$data[$key].=.$valu
3e280 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a e;.}.}..return.$data;.}.}.<?php.
3e2a0 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 61 ...........namespace.Composer\Pa
3e2c0 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 50 ckage\Loader;.....class.InvalidP
3e2e0 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 ackageException.extends.\Excepti
3e300 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 77 on.{.private.$errors;.private.$w
3e320 61 72 6e 69 6e 67 73 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 61 3b 0a 0a 70 75 62 6c 69 63 20 arnings;.private.$data;..public.
3e340 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 24 65 72 72 6f function.__construct(array.$erro
3e360 72 73 2c 20 61 72 72 61 79 20 24 77 61 72 6e 69 6e 67 73 2c 20 61 72 72 61 79 20 24 64 61 74 61 rs,.array.$warnings,.array.$data
3e380 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 73 3b 0a 24 74 68 ).{.$this->errors.=.$errors;.$th
3e3a0 69 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d 20 24 77 61 72 6e 69 6e 67 73 3b 0a 24 74 68 69 73 2d is->warnings.=.$warnings;.$this-
3e3c0 3e 64 61 74 61 20 3d 20 24 64 61 74 61 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 >data.=.$data;.parent::__constru
3e3e0 63 74 28 22 49 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3a ct("Invalid.package.information:
3e400 20 5c 6e 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 .\n".implode("\n",.array_merge($
3e420 65 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 errors,.$warnings)));.}..public.
3e440 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 61 74 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 function.getData().{.return.$thi
3e460 73 2d 3e 64 61 74 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 s->data;.}..public.function.getE
3e480 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b 0a rrors().{.return.$this->errors;.
3e4a0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 61 72 6e 69 6e 67 73 28 29 }..public.function.getWarnings()
3e4c0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 3b 0a 7d 0a 7d 0a 3c .{.return.$this->warnings;.}.}.<
3e4e0 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
3e500 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 65 72 er\Package\Loader;..use.Composer
3e520 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4c 6f \Json\JsonFile;.....class.JsonLo
3e540 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 ader.{.private.$loader;..public.
3e560 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4c 6f 61 64 65 72 49 6e 74 65 72 function.__construct(LoaderInter
3e580 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 face.$loader).{.$this->loader.=.
3e5a0 24 6c 6f 61 64 65 72 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 $loader;.}......public.function.
3e5c0 6c 6f 61 64 28 24 6a 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 6a 73 6f 6e 20 69 6e 73 74 61 6e 63 65 load($json).{.if.($json.instance
3e5e0 6f 66 20 4a 73 6f 6e 46 69 6c 65 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 6a 73 6f 6e 2d 3e of.JsonFile).{.$config.=.$json->
3e600 72 65 61 64 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6a read();.}.elseif.(file_exists($j
3e620 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 son)).{.$config.=.JsonFile::pars
3e640 65 4a 73 6f 6e 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 29 2c 20 eJson(file_get_contents($json),.
3e660 24 6a 73 6f 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6a 73 6f $json);.}.elseif.(is_string($jso
3e680 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a n)).{.$config.=.JsonFile::parseJ
3e6a0 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 son($json);.}..return.$this->loa
3e6c0 64 65 72 2d 3e 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a der->load($config);.}.}.<?php...
3e6e0 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 6b .........namespace.Composer\Pack
3e700 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 6f 61 64 age\Loader;.......interface.Load
3e720 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 20 66 75 6e 63 erInterface.{........public.func
3e740 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6c 61 73 73 tion.load(array.$package,.$class
3e760 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 .=.'Composer\Package\CompletePac
3e780 6b 61 67 65 27 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 73 kage');.}.<?php............names
3e7a0 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 75 pace.Composer\Package\Loader;..u
3e7c0 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 65 se.Composer\Package;.use.Compose
3e7e0 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
3e800 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 oser\Package\RootAliasPackage;.u
3e820 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 se.Composer\Package\RootPackageI
3e840 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 56 nterface;.use.Composer\Package\V
3e860 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 63 6c 61 73 73 ersion\VersionParser;......class
3e880 20 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 49 6e .ArrayLoader.implements.LoaderIn
3e8a0 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 terface.{.protected.$versionPars
3e8c0 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 73 74 72 75 63 74 er;..public.function.__construct
3e8e0 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b (VersionParser.$parser.=.null).{
3e900 0a 69 66 20 28 21 24 70 61 72 73 65 72 29 20 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 .if.(!$parser).{.$parser.=.new.V
3e920 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 7d 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 ersionParser;.}.$this->versionPa
3e940 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rser.=.$parser;.}..public.functi
3e960 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 on.load(array.$config,.$class.=.
3e980 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 'Composer\Package\CompletePackag
3e9a0 65 27 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 65 27 5d e').{.if.(!isset($config['name']
3e9c0 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
3e9e0 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 20 6e 6f xception('Unknown.package.has.no
3ea00 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 24 63 6f .name.defined.('.json_encode($co
3ea20 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 6e 66 69 nfig).').');.}.if.(!isset($confi
3ea40 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 6e 65 78 g['version'])).{.throw.new.\Unex
3ea60 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 20 27 2e pectedValueException('Package.'.
3ea80 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 69 6f 6e $config['name'].'.has.no.version
3eaa0 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 63 6f 6e .defined.');.}....if.(isset($con
3eac0 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 0a 24 76 fig['version_normalized'])).{.$v
3eae0 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 6d 61 6c ersion.=.$config['version_normal
3eb00 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 74 68 69 ized'];.}.else.{.$version.=.$thi
3eb20 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 63 6f 6e s->versionParser->normalize($con
3eb40 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 20 6e 65 fig['version']);.}.$package.=.ne
3eb60 77 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c 20 24 76 65 72 73 69 w.$class($config['name'],.$versi
3eb80 6f 6e 2c 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 on,.$config['version']);.$packag
3eba0 65 2d 3e 73 65 74 54 79 70 65 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d e->setType(isset($config['type']
3ebc0 29 20 3f 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 ).?.strtolower($config['type']).
3ebe0 3a 20 27 6c 69 62 72 61 72 79 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 :.'library');..if.(isset($config
3ec00 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 ['target-dir'])).{.$package->set
3ec20 54 61 72 67 65 74 44 69 72 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 TargetDir($config['target-dir'])
3ec40 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 ;.}..if.(isset($config['extra'])
3ec60 20 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 29 29 20 .&&.is_array($config['extra'])).
3ec80 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 45 78 74 72 61 28 24 63 6f 6e 66 69 67 5b 27 65 78 {.$package->setExtra($config['ex
3eca0 74 72 61 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 62 69 tra']);.}..if.(isset($config['bi
3ecc0 6e 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 62 n'])).{.if.(!is_array($config['b
3ece0 69 6e 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 in'])).{.throw.new.\UnexpectedVa
3ed00 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b lueException('Package.'.$config[
3ed20 27 6e 61 6d 65 27 5d 2e 27 5c 27 73 20 62 69 6e 20 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 20 61 'name'].'\'s.bin.key.should.be.a
3ed40 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 n.array,.'.gettype($config['bin'
3ed60 5d 29 2e 27 20 67 69 76 65 6e 2e 27 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 ]).'.given.');.}.foreach.($confi
3ed80 67 5b 27 62 69 6e 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 62 69 6e 29 20 7b 0a 24 63 6f 6e g['bin'].as.$key.=>.$bin).{.$con
3eda0 66 69 67 5b 27 62 69 6e 27 5d 5b 24 6b 65 79 5d 3d 20 6c 74 72 69 6d 28 24 62 69 6e 2c 20 27 2f fig['bin'][$key]=.ltrim($bin,.'/
3edc0 27 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 42 69 6e 61 72 69 65 73 28 24 63 6f 6e ');.}.$package->setBinaries($con
3ede0 66 69 67 5b 27 62 69 6e 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 fig['bin']);.}..if.(isset($confi
3ee00 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 0a 24 70 61 g['installation-source'])).{.$pa
3ee20 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 28 24 63 6f ckage->setInstallationSource($co
3ee40 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 3b 0a 7d 0a nfig['installation-source']);.}.
3ee60 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 29 29 20 7b .if.(isset($config['source'])).{
3ee80 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 5d 5b 27 74 .if.(!isset($config['source']['t
3eea0 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 75 72 63 65 ype']).||.!isset($config['source
3eec0 27 5d 5b 27 75 72 6c 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 ']['url']).||.!isset($config['so
3eee0 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 urce']['reference'])).{.throw.ne
3ef00 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 73 70 72 69 w.\UnexpectedValueException(spri
3ef20 6e 74 66 28 0a 22 50 61 63 6b 61 67 65 20 25 73 27 73 20 73 6f 75 72 63 65 20 6b 65 79 20 73 68 ntf(."Package.%s's.source.key.sh
3ef40 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 7b 5c 22 74 79 70 65 5c 22 3a 20 ould.be.specified.as.{\"type\":.
3ef60 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 6e 63 65 5c 22 ...,.\"url\":....,.\"reference\"
3ef80 3a 20 2e 2e 2e 7d 2c 5c 6e 25 73 20 67 69 76 65 6e 2e 22 2c 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 :....},\n%s.given.",.$config['na
3efa0 6d 65 27 5d 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 me'],.json_encode($config['sourc
3efc0 65 27 5d 29 0a 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 54 79 e']).));.}.$package->setSourceTy
3efe0 70 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 29 3b 0a 24 pe($config['source']['type']);.$
3f000 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 63 6f 6e 66 69 67 5b 27 73 package->setSourceUrl($config['s
3f020 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f ource']['url']);.$package->setSo
3f040 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b urceReference($config['source'][
3f060 27 72 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 'reference']);.}..if.(isset($con
3f080 66 69 67 5b 27 64 69 73 74 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 fig['dist'])).{.if.(!isset($conf
3f0a0 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 63 ig['dist']['type']).||.!isset($c
3f0c0 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e onfig['dist']['url'])).{.throw.n
3f0e0 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 73 70 72 ew.\UnexpectedValueException(spr
3f100 69 6e 74 66 28 0a 22 50 61 63 6b 61 67 65 20 25 73 27 73 20 64 69 73 74 20 6b 65 79 20 73 68 6f intf(."Package.%s's.dist.key.sho
3f120 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 65 5c uld.be.specified.as.".."{\"type\
3f140 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 6e 63 ":....,.\"url\":....,.\"referenc
3f160 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 73 20 e\":....,.\"shasum\":....},\n%s.
3f180 67 69 76 65 6e 2e 22 2c 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c 0a 6a 73 6f 6e 5f 65 given.",.$config['name'],.json_e
3f1a0 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 61 ncode($config['dist']).));.}.$pa
3f1c0 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 54 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 ckage->setDistType($config['dist
3f1e0 27 5d 5b 27 74 79 70 65 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 55 72 ']['type']);.$package->setDistUr
3f200 6c 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 3b 0a 24 70 61 63 6b l($config['dist']['url']);.$pack
3f220 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 69 73 73 65 74 28 24 63 6f 6e age->setDistReference(isset($con
3f240 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 20 3f 20 24 63 6f 6e fig['dist']['reference']).?.$con
3f260 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3a 20 6e 75 6c 6c 29 fig['dist']['reference'].:.null)
3f280 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 ;.$package->setDistSha1Checksum(
3f2a0 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 29 isset($config['dist']['shasum'])
3f2c0 20 3f 20 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 20 3a 20 6e .?.$config['dist']['shasum'].:.n
3f2e0 75 6c 6c 29 3b 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 ull);.}..foreach.(Package\BasePa
3f300 63 6b 61 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 ckage::$supportedLinkTypes.as.$t
3f320 79 70 65 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 ype.=>.$opts).{.if.(isset($confi
3f340 67 5b 24 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 g[$type])).{.$method.=.'set'.ucf
3f360 69 72 73 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 irst($opts['method']);.$package-
3f380 3e 7b 24 6d 65 74 68 6f 64 7d 28 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 >{$method}(.$this->versionParser
3f3a0 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 ->parseLinks(.$package->getName(
3f3c0 29 2c 0a 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 ),.$package->getPrettyVersion(),
3f3e0 0a 24 6f 70 74 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 2c 0a 24 63 6f 6e 66 69 67 5b 24 .$opts['description'],.$config[$
3f400 74 79 70 65 5d 0a 29 0a 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 type].).);.}.}..if.(isset($confi
3f420 67 5b 27 73 75 67 67 65 73 74 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 g['suggest']).&&.is_array($confi
3f440 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 g['suggest'])).{.foreach.($confi
3f460 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 72 65 61 73 g['suggest'].as.$target.=>.$reas
3f480 6f 6e 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 74 72 69 on).{.if.('self.version'.===.tri
3f4a0 6d 28 24 72 65 61 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d m($reason)).{.$config['suggest']
3f4c0 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 [$target].=.$package->getPrettyV
3f4e0 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 67 67 65 ersion();.}.}.$package->setSugge
3f500 73 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 sts($config['suggest']);.}..if.(
3f520 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 29 20 7b 0a 24 70 isset($config['autoload'])).{.$p
3f540 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 ackage->setAutoload($config['aut
3f560 6f 6c 6f 61 64 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 oload']);.}..if.(isset($config['
3f580 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 include-path'])).{.$package->set
3f5a0 49 6e 63 6c 75 64 65 50 61 74 68 73 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 IncludePaths($config['include-pa
3f5c0 74 68 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 27 74 69 th']);.}..if.(!empty($config['ti
3f5e0 6d 65 27 5d 29 29 20 7b 0a 24 74 69 6d 65 20 3d 20 63 74 79 70 65 5f 64 69 67 69 74 28 24 63 6f me'])).{.$time.=.ctype_digit($co
3f600 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 20 3f 20 27 40 27 2e 24 63 6f 6e 66 69 67 5b 27 74 69 6d nfig['time']).?.'@'.$config['tim
3f620 65 27 5d 20 3a 20 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 3b 0a 0a 74 72 79 20 7b 0a 24 64 e'].:.$config['time'];..try.{.$d
3f640 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 69 6d 65 2c 20 6e 65 77 20 5c ate.=.new.\DateTime($time,.new.\
3f660 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e DateTimeZone('UTC'));.$package->
3f680 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 24 64 61 74 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 setReleaseDate($date);.}.catch.(
3f6a0 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 \Exception.$e).{.}.}..if.(!empty
3f6c0 28 24 63 6f 6e 66 69 67 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 29 20 7b ($config['notification-url'])).{
3f6e0 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 24 63 .$package->setNotificationUrl($c
3f700 6f 6e 66 69 67 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 69 onfig['notification-url']);.}..i
3f720 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 f.(!empty($config['archive']['ex
3f740 63 6c 75 64 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 72 63 68 69 76 65 clude'])).{.$package->setArchive
3f760 45 78 63 6c 75 64 65 73 28 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 Excludes($config['archive']['exc
3f780 6c 75 64 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 lude']);.}..if.($package.instanc
3f7a0 65 6f 66 20 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 eof.Package\CompletePackageInter
3f7c0 66 61 63 65 29 20 7b 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 face).{.if.(isset($config['scrip
3f7e0 74 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 73 63 72 69 70 ts']).&&.is_array($config['scrip
3f800 74 73 27 5d 29 29 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 ts'])).{.foreach.($config['scrip
3f820 74 73 27 5d 20 61 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 ts'].as.$event.=>.$listeners).{.
3f840 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e 74 5d 20 3d 20 28 61 72 $config['scripts'][$event].=.(ar
3f860 72 61 79 29 20 24 6c 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 ray).$listeners;.}.$package->set
3f880 53 63 72 69 70 74 73 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 Scripts($config['scripts']);.}..
3f8a0 69 66 20 28 21 65 6d 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 if.(!empty($config['description'
3f8c0 5d 29 20 26 26 20 69 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 ]).&&.is_string($config['descrip
3f8e0 74 69 6f 6e 27 5d 29 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 tion'])).{.$package->setDescript
3f900 69 6f 6e 28 24 63 6f 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 ion($config['description']);.}..
3f920 69 66 20 28 21 65 6d 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 if.(!empty($config['homepage']).
3f940 26 26 20 69 73 5f 73 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 &&.is_string($config['homepage']
3f960 29 29 20 7b 0a 24 70 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 )).{.$package->setHomepage($conf
3f980 69 67 5b 27 68 6f 6d 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 ig['homepage']);.}..if.(!empty($
3f9a0 63 6f 6e 66 69 67 5b 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 config['keywords']).&&.is_array(
3f9c0 24 63 6f 6e 66 69 67 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 $config['keywords'])).{.$package
3f9e0 2d 3e 73 65 74 4b 65 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 ->setKeywords($config['keywords'
3fa00 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 6c 69 63 65 6e ]);.}..if.(!empty($config['licen
3fa20 73 65 27 5d 29 29 20 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 se'])).{.$package->setLicense(is
3fa40 5f 61 72 72 61 79 28 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 _array($config['license']).?.$co
3fa60 6e 66 69 67 5b 27 6c 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 nfig['license'].:.array($config[
3fa80 27 6c 69 63 65 6e 73 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 'license']));.}..if.(!empty($con
3faa0 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e fig['authors']).&&.is_array($con
3fac0 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 fig['authors'])).{.$package->set
3fae0 41 75 74 68 6f 72 73 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 0a Authors($config['authors']);.}..
3fb00 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b if.(isset($config['support'])).{
3fb20 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 70 70 6f 72 74 28 24 63 6f 6e 66 69 67 5b 27 73 .$package->setSupport($config['s
3fb40 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c upport']);.}.}..if.($aliasNormal
3fb60 69 7a 65 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 24 63 6f ized.=.$this->getBranchAlias($co
3fb80 6e 66 69 67 29 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 nfig)).{.if.($package.instanceof
3fba0 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 70 61 63 6b 61 67 .RootPackageInterface).{.$packag
3fbc0 65 20 3d 20 6e 65 77 20 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 e.=.new.RootAliasPackage($packag
3fbe0 65 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 70 72 65 67 5f 72 65 70 6c 61 63 e,.$aliasNormalized,.preg_replac
3fc00 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 e('{(\.9{7})+}',.'.x',.$aliasNor
3fc20 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e malized));.}.else.{.$package.=.n
3fc40 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 73 ew.AliasPackage($package,.$alias
3fc60 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b Normalized,.preg_replace('{(\.9{
3fc80 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 29 7})+}',.'.x',.$aliasNormalized))
3fca0 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ;.}.}..return.$package;.}.......
3fcc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 .public.function.getBranchAlias(
3fce0 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 27 64 65 76 2d 27 20 21 3d 3d 20 array.$config).{.if.('dev-'.!==.
3fd00 73 75 62 73 74 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 30 2c 20 34 29 substr($config['version'],.0,.4)
3fd20 0a 7c 7c 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 .||.!isset($config['extra']['bra
3fd40 6e 63 68 2d 61 6c 69 61 73 27 5d 29 0a 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 nch-alias']).||.!is_array($confi
3fd60 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 0a 29 20 7b 0a g['extra']['branch-alias']).).{.
3fd80 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 return;.}..foreach.($config['ext
3fda0 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 6f 75 72 63 65 42 ra']['branch-alias'].as.$sourceB
3fdc0 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 0a 20 69 66 20 28 ranch.=>.$targetBranch).{...if.(
3fde0 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 72 61 6e 63 68 2c '-dev'.!==.substr($targetBranch,
3fe00 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 61 6c 69 64 61 74 65 .-4)).{.continue;.}....$validate
3fe20 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 6f 6e 50 61 dTargetBranch.=.$this->versionPa
3fe40 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 28 24 74 61 rser->normalizeBranch(substr($ta
3fe60 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 65 76 27 20 rgetBranch,.0,.-4));.if.('-dev'.
3fe80 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 72 61 6e 63 !==.substr($validatedTargetBranc
3fea0 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 20 28 73 74 72 h,.-4)).{.continue;.}....if.(str
3fec0 74 6f 6c 6f 77 65 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 21 3d 3d 20 tolower($config['version']).!==.
3fee0 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 20 7b 0a 63 6f 6e strtolower($sourceBranch)).{.con
3ff00 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 tinue;.}..return.$validatedTarge
3ff20 74 42 72 61 6e 63 68 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 tBranch;.}.}.}.<?php............
3ff40 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
3ff60 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
3ff80 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 0a 75 73 65 20 mposer\Package\BasePackage;.use.
3ffa0 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 73 69 6f 6e Composer\Package\Version\Version
3ffc0 50 61 72 73 65 72 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 Parser;.....class.ValidatingArra
3ffe0 79 4c 6f 61 64 65 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 yLoader.implements.LoaderInterfa
40000 63 65 0a 7b 0a 70 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 ce.{.private.$loader;.private.$v
40020 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 73 3b 0a 70 ersionParser;.private.$errors;.p
40040 72 69 76 61 74 65 20 24 77 61 72 6e 69 6e 67 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 rivate.$warnings;.private.$confi
40060 67 3b 0a 70 72 69 76 61 74 65 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 0a 70 75 62 6c 69 63 20 g;.private.$strictName;..public.
40080 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4c 6f 61 64 65 72 49 6e 74 65 72 function.__construct(LoaderInter
400a0 66 61 63 65 20 24 6c 6f 61 64 65 72 2c 20 24 73 74 72 69 63 74 4e 61 6d 65 20 3d 20 74 72 75 65 face.$loader,.$strictName.=.true
400c0 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 29 0a ,.VersionParser.$parser.=.null).
400e0 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 24 74 68 69 73 {.$this->loader.=.$loader;.$this
40100 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 20 3f 3a 20 6e 65 77 ->versionParser.=.$parser.?:.new
40120 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 72 69 63 74 4e .VersionParser();.$this->strictN
40140 61 6d 65 20 3d 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ame.=.$strictName;.}..public.fun
40160 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 ction.load(array.$config,.$class
40180 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 .=.'Composer\Package\CompletePac
401a0 6b 61 67 65 27 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 28 29 kage').{.$this->errors.=.array()
401c0 3b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 ;.$this->warnings.=.array();.$th
401e0 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 69 66 20 28 24 74 68 69 73 is->config.=.$config;..if.($this
40200 2d 3e 73 74 72 69 63 74 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 ->strictName).{.$this->validateR
40220 65 67 65 78 28 27 6e 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 egex('name',.'[A-Za-z0-9][A-Za-z
40240 30 2d 39 5f 2e 2d 5d 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 0-9_.-]*/[A-Za-z0-9][A-Za-z0-9_.
40260 2d 5d 2a 27 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c -]*',.true);.}.else.{.$this->val
40280 69 64 61 74 65 53 74 72 69 6e 67 28 27 6e 61 6d 65 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 idateString('name',.true);.}..if
402a0 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 .(!empty($this->config['version'
402c0 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 73 65 72 ])).{.try.{.$this->versionParser
402e0 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 ->normalize($this->config['versi
40300 6f 6e 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 7b on']);.}.catch.(\Exception.$e).{
40320 0a 75 6e 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 .unset($this->config['version'])
40340 3b 0a 24 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 ;.$this->errors[].=.'version.:.i
40360 6e 76 61 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 76 nvalid.value.('.$this->config['v
40380 65 72 73 69 6f 6e 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 ersion'].'):.'.$e->getMessage();
403a0 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 74 79 70 65 .}.}..$this->validateRegex('type
403c0 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 2d 5d 2b 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 ',.'[A-Za-z0-9-]+');.$this->vali
403e0 64 61 74 65 53 74 72 69 6e 67 28 27 74 61 72 67 65 74 2d 64 69 72 27 29 3b 0a 24 74 68 69 73 2d dateString('target-dir');.$this-
40400 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 65 78 74 72 61 27 29 3b 0a 24 74 68 69 73 2d 3e >validateArray('extra');.$this->
40420 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 62 69 6e 27 29 3b 0a 24 74 68 69 73 2d validateFlatArray('bin');.$this-
40440 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 63 72 69 70 74 73 27 29 3b 20 0a 20 24 74 68 >validateArray('scripts');...$th
40460 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 is->validateString('description'
40480 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 55 72 6c 28 27 68 6f 6d 65 70 61 67 65 27 );.$this->validateUrl('homepage'
404a0 29 3b 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 6b 65 79 );.$this->validateFlatArray('key
404c0 77 6f 72 64 73 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 20 2e 5f 2d 5d 2b 27 29 3b 0a 0a 69 66 words',.'[A-Za-z0-9.._-]+');..if
404e0 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d .(isset($this->config['license']
40500 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 )).{.if.(is_string($this->config
40520 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 69 64 61 74 65 52 ['license'])).{.$this->validateR
40540 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 39 2b 2e 20 28 29 egex('license',.'[A-Za-z0-9+..()
40560 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 69 64 61 74 65 46 -]+');.}.else.{.$this->validateF
40580 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 2d 7a 30 2d 39 2b latArray('license',.'[A-Za-z0-9+
405a0 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 69 64 61 74 65 53 ..()-]+');.}.}..$this->validateS
405c0 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 24 74 68 69 73 2d tring('time');.if.(!empty($this-
405e0 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 24 64 61 74 65 20 >config['time'])).{.try.{.$date.
40600 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 =.new.\DateTime($this->config['t
40620 69 6d 65 27 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 ime'],.new.\DateTimeZone('UTC'))
40640 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 24 74 68 69 ;.}.catch.(\Exception.$e).{.$thi
40660 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 6c 69 64 20 76 61 s->errors[].=.'time.:.invalid.va
40680 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 27 5d 2e 27 29 3a lue.('.$this->config['time'].'):
406a0 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 28 24 74 68 69 73 .'.$e->getMessage();.unset($this
406c0 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 ->config['time']);.}.}..if.($thi
406e0 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 20 26 26 20 21 s->validateArray('authors').&&.!
40700 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 27 5d 29 29 empty($this->config['authors']))
40720 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 75 74 68 6f .{.foreach.($this->config['autho
40740 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 66 20 28 21 rs'].as.$key.=>.$author).{.if.(!
40760 69 73 5f 61 72 72 61 79 28 24 61 75 74 68 6f 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f is_array($author)).{.$this->erro
40780 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 73 68 6f 75 6c rs[].=.'authors.'.$key.'.:.shoul
407a0 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 61 75 74 68 6f 72 d.be.an.array,.'.gettype($author
407c0 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 69 67 5b ).'.given';.unset($this->config[
407e0 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 66 'authors'][$key]);.continue;.}.f
40800 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 65 6d 61 69 6c oreach.(array('homepage',.'email
40820 27 2c 20 27 6e 61 6d 65 27 2c 20 27 72 6f 6c 65 27 29 20 61 73 20 24 61 75 74 68 6f 72 44 61 74 ',.'name',.'role').as.$authorDat
40840 61 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 24 61 75 74 68 6f 72 44 61 a).{.if.(isset($author[$authorDa
40860 74 61 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 61 75 74 68 6f 72 5b 24 61 75 74 68 ta]).&&.!is_string($author[$auth
40880 6f 72 44 61 74 61 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 orData])).{.$this->errors[].=.'a
408a0 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 27 2e 24 61 75 74 68 6f 72 44 61 74 61 2e 27 20 uthors.'.$key.'.'.$authorData.'.
408c0 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 74 72 69 6e :.invalid.value,.must.be.a.strin
408e0 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 68 6f 72 73 g';.unset($this->config['authors
40900 27 5d 5b 24 6b 65 79 5d 5b 24 61 75 74 68 6f 72 44 61 74 61 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 '][$key][$authorData]);.}.}.if.(
40920 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 20 21 24 isset($author['homepage']).&&.!$
40940 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 70 61 67 this->filterUrl($author['homepag
40960 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 61 75 74 e'])).{.$this->warnings[].=.'aut
40980 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 64 hors.'.$key.'.homepage.:.invalid
409a0 20 76 61 6c 75 65 20 28 27 2e 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 2e 27 29 .value.('.$author['homepage'].')
409c0 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e ,.must.be.an.http/https.URL';.un
409e0 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 5b 24 6b 65 set($this->config['authors'][$ke
40a00 79 5d 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 y]['homepage']);.}.if.(isset($au
40a20 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 61 thor['email']).&&.!filter_var($a
40a40 75 74 68 6f 72 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 uthor['email'],.FILTER_VALIDATE_
40a60 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 61 EMAIL)).{.$this->warnings[].=.'a
40a80 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 61 6c 69 64 20 uthors.'.$key.'.email.:.invalid.
40aa0 76 61 6c 75 65 20 28 27 2e 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 2e 27 29 2c 20 6d 75 value.('.$author['email'].'),.mu
40ac0 73 74 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 st.be.a.valid.email.address';.un
40ae0 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 5b 24 6b 65 set($this->config['authors'][$ke
40b00 79 5d 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d y]['email']);.}.if.(empty($this-
40b20 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 75 6e 73 >config['authors'][$key])).{.uns
40b40 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 5b 24 6b 65 79 et($this->config['authors'][$key
40b60 5d 29 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 ]);.}.}.if.(empty($this->config[
40b80 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 'authors'])).{.unset($this->conf
40ba0 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e ig['authors']);.}.}..if.($this->
40bc0 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 75 70 70 6f 72 74 27 29 20 26 26 20 21 65 6d 70 validateArray('support').&&.!emp
40be0 74 79 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 29 29 20 7b 0a ty($this->config['support'])).{.
40c00 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 72 75 6d 27 foreach.(array('issues',.'forum'
40c20 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 65 6d 61 69 6c 27 2c 20 27 69 72 ,.'wiki',.'source',.'email',.'ir
40c40 63 27 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e c').as.$key).{.if.(isset($this->
40c60 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 69 73 5f config['support'][$key]).&&.!is_
40c80 73 74 72 69 6e 67 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 string($this->config['support'][
40ca0 24 6b 65 79 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 73 75 70 $key])).{.$this->errors[].=.'sup
40cc0 70 6f 72 74 2e 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 port.'.$key.'.:.invalid.value,.m
40ce0 75 73 74 20 62 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 ust.be.a.string';.unset($this->c
40d00 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 onfig['support'][$key]);.}.}..if
40d20 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 6f 72 74 27 5d .(isset($this->config['support']
40d40 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 74 68 69 73 2d ['email']).&&.!filter_var($this-
40d60 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 2c 20 46 49 4c >config['support']['email'],.FIL
40d80 54 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 77 61 TER_VALIDATE_EMAIL)).{.$this->wa
40da0 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 61 rnings[].=.'support.email.:.inva
40dc0 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 73 75 70 70 lid.value.('.$this->config['supp
40de0 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c ort']['email'].'),.must.be.a.val
40e00 69 64 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 id.email.address';.unset($this->
40e20 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 3b 0a 7d 0a 0a config['support']['email']);.}..
40e40 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 6f 72 74 if.(isset($this->config['support
40e60 27 5d 5b 27 69 72 63 27 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 ']['irc']).&&.!$this->filterUrl(
40e80 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 63 27 5d 2c $this->config['support']['irc'],
40ea0 20 61 72 72 61 79 28 27 69 72 63 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 .array('irc'))).{.$this->warning
40ec0 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 69 72 63 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c s[].=.'support.irc.:.invalid.val
40ee0 75 65 20 28 27 2e 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 ue.('.$this->config['support']['
40f00 69 72 63 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 69 72 63 3a 2f 2f 3c 73 65 72 76 65 irc'].'),.must.be.a.irc://<serve
40f20 72 3e 2f 3c 63 68 61 6e 6e 65 6c 3e 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e r>/<channel>.URL';.unset($this->
40f40 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 0a 7d 0a 0a 66 6f config['support']['irc']);.}..fo
40f60 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 72 75 6d 27 2c 20 reach.(array('issues',.'forum',.
40f80 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 20 7b 0a 69 66 20 'wiki',.'source').as.$key).{.if.
40fa0 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 6f 72 74 27 5d 5b (isset($this->config['support'][
40fc0 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 6c 28 24 74 68 69 $key]).&&.!$this->filterUrl($thi
40fe0 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 29 20 7b 0a 24 s->config['support'][$key])).{.$
41000 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 27 2e 24 6b this->warnings[].=.'support.'.$k
41020 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 ey.'.:.invalid.value.('.$this->c
41040 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 2e 27 29 2c 20 6d 75 73 74 20 onfig['support'][$key].'),.must.
41060 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 be.an.http/https.URL';.unset($th
41080 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 3b 0a 7d 0a is->config['support'][$key]);.}.
410a0 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 75 70 70 6f }.if.(empty($this->config['suppo
410c0 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 5b 27 73 75 rt'])).{.unset($this->config['su
410e0 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 pport']);.}.}..foreach.(array_ke
41100 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 ys(BasePackage::$supportedLinkTy
41120 70 65 73 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e pes).as.$linkType).{.if.($this->
41140 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 6c 69 6e 6b 54 79 70 65 29 20 26 26 20 69 73 73 65 validateArray($linkType).&&.isse
41160 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 29 20 7b 0a 66 t($this->config[$linkType])).{.f
41180 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d oreach.($this->config[$linkType]
411a0 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 74 29 20 7b 0a 69 .as.$package.=>.$constraint).{.i
411c0 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d f.(!preg_match('{^[A-Za-z0-9_./-
411e0 5d 2b 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 ]+$}',.$package)).{.$this->warni
41200 6e 67 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 ngs[].=.$linkType.'.'.$package.'
41220 20 3a 20 69 6e 76 61 6c 69 64 20 6b 65 79 2c 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 20 6d 75 .:.invalid.key,.package.names.mu
41240 73 74 20 62 65 20 73 74 72 69 6e 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e 6c 79 20 5b 41 st.be.strings.containing.only.[A
41260 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 27 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 -Za-z0-9_./-]';.}.if.(!is_string
41280 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d ($constraint)).{.$this->errors[]
412a0 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e .=.$linkType.'.'.$package.'.:.in
412c0 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 63 6f valid.value,.must.be.a.string.co
412e0 6e 74 61 69 6e 69 6e 67 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 27 3b 0a ntaining.a.version.constraint';.
41300 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 5b 24 unset($this->config[$linkType][$
41320 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 package]);.}.elseif.('self.versi
41340 6f 6e 27 20 21 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 on'.!==.$constraint).{.try.{.$th
41360 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 is->versionParser->parseConstrai
41380 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 nts($constraint);.}.catch.(\Exce
413a0 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6c ption.$e).{.$this->errors[].=.$l
413c0 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 inkType.'.'.$package.'.:.invalid
413e0 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 .version.constraint.('.$e->getMe
41400 73 73 61 67 65 28 29 2e 27 29 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 ssage().')';.unset($this->config
41420 5b 24 6c 69 6e 6b 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a [$linkType][$package]);.}.}.}.}.
41440 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 75 67 }..if.($this->validateArray('sug
41460 67 65 73 74 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 gest').&&.!empty($this->config['
41480 73 75 67 67 65 73 74 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 suggest'])).{.foreach.($this->co
414a0 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 nfig['suggest'].as.$package.=>.$
414c0 64 65 73 63 72 69 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 64 description).{.if.(!is_string($d
414e0 65 73 63 72 69 70 74 69 6f 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d escription)).{.$this->errors[].=
41500 20 27 73 75 67 67 65 73 74 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 .'suggest.'.$package.'.:.invalid
41520 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 62 .value,.must.be.a.string.describ
41540 69 6e 67 20 77 68 79 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 73 75 67 67 65 73 74 65 64 ing.why.the.package.is.suggested
41560 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 ';.unset($this->config['suggest'
41580 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e ][$package]);.}.}.}..if.($this->
415a0 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 validateString('minimum-stabilit
415c0 79 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e y').&&.!empty($this->config['min
415e0 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 imum-stability'])).{.if.(!isset(
41600 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 74 68 69 73 2d BasePackage::$stabilities[$this-
41620 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 5d 29 29 20 >config['minimum-stability']])).
41640 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 {.$this->errors[].=.'minimum-sta
41660 62 69 6c 69 74 79 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d bility.:.invalid.value.('.$this-
41680 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 2e 27 29 2c >config['minimum-stability'].'),
416a0 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 .must.be.one.of.'.implode(',.',.
416c0 61 72 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 array_keys(BasePackage::$stabili
416e0 74 69 65 73 29 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e ties));.unset($this->config['min
41700 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 imum-stability']);.}.}..if.($thi
41720 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 61 75 74 6f 6c 6f 61 64 27 29 20 26 26 20 s->validateArray('autoload').&&.
41740 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 6f 6c 6f 61 64 27 5d !empty($this->config['autoload']
41760 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 27 70 73 72 2d 30 27 2c 20 27 63 6c )).{.$types.=.array('psr-0',.'cl
41780 61 73 73 6d 61 70 27 2c 20 27 66 69 6c 65 73 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 assmap',.'files');.foreach.($thi
417a0 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 20 61 73 20 24 74 79 70 65 20 3d s->config['autoload'].as.$type.=
417c0 3e 20 24 74 79 70 65 43 6f 6e 66 69 67 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 >.$typeConfig).{.if.(!in_array($
417e0 74 79 70 65 2c 20 24 74 79 70 65 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d type,.$types)).{.$this->errors[]
41800 20 3d 20 27 61 75 74 6f 6c 6f 61 64 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e .=.'autoload.:.invalid.value.('.
41820 24 74 79 70 65 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 27 2e 69 6d 70 6c 6f $type.'),.must.be.one.of.'.implo
41840 64 65 28 27 2c 20 27 2c 20 24 74 79 70 65 73 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 de(',.',.$types);.unset($this->c
41860 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d onfig['autoload'][$type]);.}.}.}
41880 0a 0a 0a 20 0a 0a 0a 20 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 ..........$this->validateFlatArr
418a0 61 79 28 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 ay('include-path');....if.(isset
418c0 28 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 ($this->config['extra']['branch-
418e0 61 6c 69 61 73 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d alias'])).{.if.(!is_array($this-
41900 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 61 73 27 5d >config['extra']['branch-alias']
41920 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 )).{.$this->errors[].=.'extra.br
41940 61 6e 63 68 2d 61 6c 69 61 73 20 3a 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 anch-alias.:.must.be.an.array.of
41960 20 76 65 72 73 69 6f 6e 73 20 3d 3e 20 61 6c 69 61 73 65 73 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a .versions.=>.aliases';.}.else.{.
41980 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b foreach.($this->config['extra'][
419a0 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 'branch-alias'].as.$sourceBranch
419c0 20 3d 3e 20 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 .=>.$targetBranch).{...if.('-dev
419e0 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 '.!==.substr($targetBranch,.-4))
41a00 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 .{.$this->warnings[].=.'extra.br
41a20 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 anch-alias.'.$sourceBranch.'.:.t
41a40 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 he.target.branch.('.$targetBranc
41a60 68 2e 27 29 20 6d 75 73 74 20 65 6e 64 20 69 6e 20 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 h.').must.end.in.-dev';.unset($t
41a80 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
41aa0 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b as'][$sourceBranch]);..continue;
41ac0 0a 7d 0a 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 .}....$validatedTargetBranch.=.$
41ae0 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 72 this->versionParser->normalizeBr
41b00 61 6e 63 68 28 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 anch(substr($targetBranch,.0,.-4
41b20 29 29 3b 0a 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 ));.if.('-dev'.!==.substr($valid
41b40 61 74 65 64 54 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 3e atedTargetBranch,.-4)).{.$this->
41b60 77 61 72 6e 69 6e 67 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 warnings[].=.'extra.branch-alias
41b80 2e 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 .'.$sourceBranch.'.:.the.target.
41ba0 62 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 branch.('.$targetBranch.').must.
41bc0 62 65 20 61 20 70 61 72 73 65 61 62 6c 65 20 6e 75 6d 62 65 72 20 6c 69 6b 65 20 32 2e 30 2d 64 be.a.parseable.number.like.2.0-d
41be0 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 ev';.unset($this->config['extra'
41c00 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d ]['branch-alias'][$sourceBranch]
41c20 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 29 20 7b );.}.}.}.}..if.($this->errors).{
41c40 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 .throw.new.InvalidPackageExcepti
41c60 6f 6e 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 on($this->errors,.$this->warning
41c80 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 s,.$config);.}..$package.=.$this
41ca0 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 63 ->loader->load($this->config,.$c
41cc0 6c 61 73 73 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 lass);.$this->config.=.null;..re
41ce0 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f turn.$package;.}..public.functio
41d00 6e 20 67 65 74 57 61 72 6e 69 6e 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.getWarnings().{.return.$this->
41d20 77 61 72 6e 69 6e 67 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 warnings;.}..public.function.get
41d40 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b Errors().{.return.$this->errors;
41d60 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 52 65 67 .}..private.function.validateReg
41d80 65 78 28 24 70 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 78 2c 20 24 6d 61 6e 64 61 74 6f 72 79 ex($property,.$regex,.$mandatory
41da0 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 .=.false).{.if.(!$this->validate
41dc0 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 29 29 20 7b String($property,.$mandatory)).{
41de0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 .return.false;.}..if.(!preg_matc
41e00 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 h('{^'.$regex.'$}u',.$this->conf
41e20 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 70 72 ig[$property])).{.$message.=.$pr
41e40 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 operty.'.:.invalid.value.('.$thi
41e60 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 2e 27 29 2c 20 6d 75 73 74 20 6d 61 s->config[$property].'),.must.ma
41e80 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a tch.'.$regex;.if.($mandatory).{.
41ea0 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c $this->errors[].=.$message;.}.el
41ec0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 se.{.$this->warnings[].=.$messag
41ee0 65 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 65 72 e;.}.unset($this->config[$proper
41f00 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 20 74 ty]);..return.false;.}..return.t
41f20 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 61 74 rue;.}..private.function.validat
41f40 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 20 3d 20 eString($property,.$mandatory.=.
41f60 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 67 false).{.if.(isset($this->config
41f80 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 68 69 73 [$property]).&&.!is_string($this
41fa0 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
41fc0 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
41fe0 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 63 6f 6e e.a.string,.'.gettype($this->con
42000 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(
42020 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
42040 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
42060 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 69 73 2d onfig[$property]).||.trim($this-
42080 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 0a 69 66 >config[$property]).===.'').{.if
420a0 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 5b 5d 20 .($mandatory).{.$this->errors[].
420c0 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 6e 74 27 =.$property.'.:.must.be.present'
420e0 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 65 72 74 ;.}.unset($this->config[$propert
42100 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 20 74 72 y]);..return.false;.}..return.tr
42120 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 61 74 65 ue;.}..private.function.validate
42140 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 20 66 61 Array($property,.$mandatory.=.fa
42160 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 67 5b 24 lse).{.if.(isset($this->config[$
42180 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 2d 3e 63 property]).&&.!is_array($this->c
421a0 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 72 72 6f onfig[$property])).{.$this->erro
421c0 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 65 20 61 rs[].=.$property.'.:.should.be.a
421e0 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 66 69 67 n.array,.'.gettype($this->config
42200 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 24 74 68 [$property]).'.given';.unset($th
42220 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 72 6e 20 is->config[$property]);..return.
42240 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 6f 6e 66 false;.}..if.(!isset($this->conf
42260 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 73 2d 3e ig[$property]).||.!count($this->
42280 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 6e 64 61 config[$property])).{.if.($manda
422a0 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 6f 70 65 tory).{.$this->errors[].=.$prope
422c0 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 6f 6e 74 rty.'.:.must.be.present.and.cont
422e0 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 75 6e 73 ain.at.least.one.element';.}.uns
42300 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
42320 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 0a eturn.false;.}..return.true;.}..
42340 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 41 72 72 private.function.validateFlatArr
42360 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 24 6d 61 ay($property,.$regex.=.null,.$ma
42380 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 2d 3e 76 ndatory.=.false).{.if.(!$this->v
423a0 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 61 74 6f alidateArray($property,.$mandato
423c0 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 20 3d 20 ry)).{.return.false;.}..$pass.=.
423e0 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 24 70 72 true;.foreach.($this->config[$pr
42400 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 69 66 20 operty].as.$key.=>.$value).{.if.
42420 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 6d 65 72 (!is_string($value).&&.!is_numer
42440 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 20 3d 20 ic($value)).{.$this->errors[].=.
42460 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 65 20 61 $property.'.'.$key.'.:.must.be.a
42480 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 6c 75 65 .string.or.int,.'.gettype($value
424a0 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 69 67 5b ).'.given';.unset($this->config[
424c0 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 6c 73 65 $property][$key]);.$pass.=.false
424e0 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 20 21 70 ;..continue;.}..if.($regex.&&.!p
42500 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 24 76 61 reg_match('{^'.$regex.'$}u',.$va
42520 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 70 72 6f lue)).{.$this->warnings[].=.$pro
42540 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 65 perty.'.'.$key.'.:.invalid.value
42560 20 28 27 2e 24 76 61 6c 75 65 2e 27 29 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 2e 24 72 65 67 .('.$value.'),.must.match.'.$reg
42580 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 70 65 72 74 ex;.unset($this->config[$propert
425a0 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 y][$key]);.$pass.=.false;.}.}..r
425c0 65 74 75 72 6e 20 24 70 61 73 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e eturn.$pass;.}..private.function
425e0 20 76 61 6c 69 64 61 74 65 55 72 6c 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f .validateUrl($property,.$mandato
42600 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 ry.=.false).{.if.(!$this->valida
42620 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 29 29 teString($property,.$mandatory))
42640 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 24 74 68 69 73 2d 3e .{.return.false;.}..if.(!$this->
42660 66 69 6c 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 filterUrl($this->config[$propert
42680 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 70 72 6f 70 y])).{.$this->warnings[].=.$prop
426a0 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d erty.'.:.invalid.value.('.$this-
426c0 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 >config[$property].'),.must.be.a
426e0 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e n.http/https.URL';.unset($this->
42700 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 72 6e 20 66 61 6c 73 config[$property]);..return.fals
42720 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 e;.}..return.true;.}..private.fu
42740 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 55 72 6c 28 24 76 61 6c 75 65 2c 20 61 72 72 61 79 20 24 nction.filterUrl($value,.array.$
42760 73 63 68 65 6d 65 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 2c 20 27 68 74 74 70 73 27 29 schemes.=.array('http',.'https')
42780 29 0a 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3d 3d 3d 20 27 27 29 20 7b 0a 72 65 74 75 72 6e 20 ).{.if.($value.===.'').{.return.
427a0 74 72 75 65 3b 0a 7d 0a 0a 24 62 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 76 61 6c 75 true;.}..$bits.=.parse_url($valu
427c0 65 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 62 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 7c e);.if.(empty($bits['scheme']).|
427e0 7c 20 65 6d 70 74 79 28 24 62 69 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e |.empty($bits['host'])).{.return
42800 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 62 69 74 73 5b 27 .false;.}..if.(!in_array($bits['
42820 73 63 68 65 6d 65 27 5d 2c 20 24 73 63 68 65 6d 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 scheme'],.$schemes,.true)).{.ret
42840 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 7d 0a 3c urn.false;.}..return.true;.}.}.<
42860 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
42880 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 65 72 er\Package\Loader;..use.Composer
428a0 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 6f 73 \Package\BasePackage;.use.Compos
428c0 65 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 er\Package\AliasPackage;.use.Com
428e0 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 46 61 63 74 6f poser\Config;.use.Composer\Facto
42900 72 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 ry;.use.Composer\Package\Version
42920 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 65 70 \VersionParser;.use.Composer\Rep
42940 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 3b 0a 75 73 65 20 43 ository\RepositoryManager;.use.C
42960 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 3b omposer\Repository\Vcs\HgDriver;
42980 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 43 6f 6d .use.Composer\IO\NullIO;.use.Com
429a0 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 0a poser\Util\ProcessExecutor;.....
429c0 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 65 ....class.RootPackageLoader.exte
429e0 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 67 nds.ArrayLoader.{.private.$manag
42a00 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 72 er;.private.$config;.private.$pr
42a20 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 72 ocess;..public.function.__constr
42a40 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 20 uct(RepositoryManager.$manager,.
42a60 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 70 Config.$config,.VersionParser.$p
42a80 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 70 arser.=.null,.ProcessExecutor.$p
42aa0 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 20 rocess.=.null).{.$this->manager.
42ac0 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 6e =.$manager;.$this->config.=.$con
42ae0 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 3f fig;.$this->process.=.$process.?
42b00 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 3a :.new.ProcessExecutor();.parent:
42b20 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 63 :__construct($parser);.}..public
42b40 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 2c 20 24 63 .function.load(array.$config,.$c
42b60 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 lass.=.'Composer\Package\RootPac
42b80 6b 61 67 65 27 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 kage').{.if.(!isset($config['nam
42ba0 65 27 5d 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 5f 5f 72 6f 6f e'])).{.$config['name'].=.'__roo
42bc0 74 5f 5f 27 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 t__';.}.if.(!isset($config['vers
42be0 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 ion'])).{...if.(getenv('COMPOSER
42c00 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 67 65 _ROOT_VERSION')).{.$version.=.ge
42c20 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 3b 0a 7d tenv('COMPOSER_ROOT_VERSION');.}
42c40 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 56 .else.{.$version.=.$this->guessV
42c60 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 73 69 6f ersion($config);.}..if.(!$versio
42c80 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 0a 24 63 6f 6e n).{.$version.=.'1.0.0';.}..$con
42ca0 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 20 65 6c 73 fig['version'].=.$version;.}.els
42cc0 65 20 7b 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 27 e.{.$version.=.$config['version'
42ce0 5d 3b 0a 7d 0a 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 20 3d 20 ];.}..$realPackage.=.$package.=.
42d00 70 61 72 65 6e 74 3a 3a 6c 6f 61 64 28 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 29 3b 0a 0a parent::load($config,.$class);..
42d20 69 66 20 28 24 72 65 61 6c 50 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 if.($realPackage.instanceof.Alia
42d40 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b sPackage).{.$realPackage.=.$pack
42d60 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d age->getAliasOf();.}..$aliases.=
42d80 20 61 72 72 61 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 .array();.$stabilityFlags.=.arra
42da0 79 28 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 y();.$references.=.array();.fore
42dc0 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 27 2c 20 27 72 65 71 75 69 72 65 2d 64 ach.(array('require',.'require-d
42de0 65 76 27 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 ev').as.$linkType).{.if.(isset($
42e00 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 29 20 7b 0a 24 6c 69 6e 6b 49 6e 66 6f 20 config[$linkType])).{.$linkInfo.
42e20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 =.BasePackage::$supportedLinkTyp
42e40 65 73 5b 24 6c 69 6e 6b 54 79 70 65 5d 3b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 67 65 74 27 2e 75 es[$linkType];.$method.=.'get'.u
42e60 63 66 69 72 73 74 28 24 6c 69 6e 6b 49 6e 66 6f 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 6c 69 cfirst($linkInfo['method']);.$li
42e80 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 61 6c 50 61 63 nks.=.array();.foreach.($realPac
42ea0 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 20 7b 0a 24 6c 69 6e kage->$method().as.$link).{.$lin
42ec0 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 24 6c 69 6e 6b 2d 3e ks[$link->getTarget()].=.$link->
42ee0 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 79 53 74 72 69 6e 67 getConstraint()->getPrettyString
42f00 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 78 74 72 61 63 74 41 ();.}.$aliases.=.$this->extractA
42f20 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 0a 24 73 74 61 62 69 liases($links,.$aliases);.$stabi
42f40 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 74 53 74 61 62 69 6c lityFlags.=.$this->extractStabil
42f60 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 74 79 46 6c 61 67 73 ityFlags($links,.$stabilityFlags
42f80 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 78 74 72 61 63 74 52 );.$references.=.$this->extractR
42fa0 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 6e 63 65 73 29 3b 0a eferences($links,.$references);.
42fc0 7d 0a 7d 0a 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 24 61 }.}..$realPackage->setAliases($a
42fe0 6c 69 61 73 65 73 29 3b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 53 74 61 62 69 6c liases);.$realPackage->setStabil
43000 69 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 72 65 61 6c ityFlags($stabilityFlags);.$real
43020 50 61 63 6b 61 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 Package->setReferences($referenc
43040 65 73 29 3b 0a 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 es);..if.(isset($config['minimum
43060 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 -stability'])).{.$realPackage->s
43080 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 etMinimumStability(VersionParser
430a0 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 63 6f 6e 66 69 67 5b 27 6d 69 ::normalizeStability($config['mi
430c0 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 nimum-stability']));.}..if.(isse
430e0 74 28 24 63 6f 6e 66 69 67 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 5d 29 29 20 7b 0a 24 t($config['prefer-stable'])).{.$
43100 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 28 62 6f realPackage->setPreferStable((bo
43120 6f 6c 29 20 24 63 6f 6e 66 69 67 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 5d 29 3b 0a 7d ol).$config['prefer-stable']);.}
43140 0a 0a 24 72 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c ..$repos.=.Factory::createDefaul
43160 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 6e 75 6c 6c 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 tRepositories(null,.$this->confi
43180 67 2c 20 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 g,.$this->manager);.foreach.($re
431a0 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 2d 3e pos.as.$repo).{.$this->manager->
431c0 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 24 72 65 61 6c 50 61 63 addRepository($repo);.}.$realPac
431e0 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 63 6f 6e kage->setRepositories($this->con
43200 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e fig->getRepositories());..return
43220 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 .$package;.}..private.function.e
43240 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 xtractAliases(array.$requires,.a
43260 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 rray.$aliases).{.foreach.($requi
43280 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).
432a0 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 23 5d 2b 29 28 3f {.if.(preg_match('{^([^,\s#]+)(?
432c0 3a 23 5b 5e 20 5d 2b 29 3f 20 2b 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c 20 24 72 65 :#[^.]+)?.+as.+([^,\s]+)$}',.$re
432e0 71 56 65 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 qVersion,.$match)).{.$aliases[].
43300 3d 20 61 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 =.array(.'package'.=>.strtolower
43320 28 24 72 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 ($reqName),.'version'.=>.$this->
43340 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 6d 61 74 63 68 5b versionParser->normalize($match[
43360 31 5d 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 2c 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 6d 61 1],.$reqVersion),.'alias'.=>.$ma
43380 74 63 68 5b 32 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 74 tch[2],.'alias_normalized'.=>.$t
433a0 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 6d his->versionParser->normalize($m
433c0 61 74 63 68 5b 32 5d 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 72 atch[2],.$reqVersion),.);.}.}..r
433e0 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 6e 63 74 eturn.$aliases;.}..private.funct
43400 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 61 79 20 ion.extractStabilityFlags(array.
43420 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 61 67 73 $requires,.array.$stabilityFlags
43440 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 65 3a 3a ).{.$stabilities.=.BasePackage::
43460 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 72 65 73 $stabilities;.foreach.($requires
43480 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 7b 0a 0a .as.$reqName.=>.$reqVersion).{..
434a0 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 27 2e 69 .if.(preg_match('{^[^,\s]*?@('.i
434c0 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 6c 69 74 mplode('|',.array_keys($stabilit
434e0 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 61 74 63 ies)).')$}i',.$reqVersion,.$matc
43500 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 4e 61 6d h)).{.$name.=.strtolower($reqNam
43520 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 5b 56 65 e);.$stability.=.$stabilities[Ve
43540 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 74 79 28 rsionParser::normalizeStability(
43560 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 69 6c 69 $match[1])];..if.(isset($stabili
43580 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 46 6c 61 tyFlags[$name]).&&.$stabilityFla
435a0 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 74 69 6e gs[$name].>.$stability).{.contin
435c0 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 3d 20 24 ue;.}.$stabilityFlags[$name].=.$
435e0 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 24 72 65 71 56 stability;..continue;.}....$reqV
43600 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 5b 5e 2c 5c 73 40 ersion.=.preg_replace('{^([^,\s@
43620 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 ]+).as..+$}',.'$1',.$reqVersion)
43640 3b 0a 69 66 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 ;.if.(preg_match('{^[^,\s@]+$}',
43660 20 24 72 65 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 .$reqVersion).&&.'stable'.!==.($
43680 73 74 61 62 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 stabilityName.=.VersionParser::p
436a0 61 72 73 65 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 arseStability($reqVersion))).{.$
436c0 6e 61 6d 65 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 name.=.strtolower($reqName);.$st
436e0 61 62 69 6c 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 ability.=.$stabilities[$stabilit
43700 79 4e 61 6d 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 yName];.if.(isset($stabilityFlag
43720 73 5b 24 6e 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 s[$name]).&&.$stabilityFlags[$na
43740 6d 65 5d 20 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 me].>.$stability).{.continue;.}.
43760 24 73 74 61 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 $stabilityFlags[$name].=.$stabil
43780 69 74 79 3b 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 ity;.}.}..return.$stabilityFlags
437a0 3b 0a 7d 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 74 52 65 66 ;.}..private.function.extractRef
437c0 65 72 65 6e 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 erences(array.$requires,.array.$
437e0 72 65 66 65 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 references).{.foreach.($requires
43800 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 7b 0a 24 .as.$reqName.=>.$reqVersion).{.$
43820 72 65 71 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 5b 5e reqVersion.=.preg_replace('{^([^
43840 2c 5c 73 40 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 2c 20 24 72 65 71 56 65 72 73 ,\s@]+).as..+$}',.'$1',.$reqVers
43860 69 6f 6e 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b ion);.if.(preg_match('{^[^,\s@]+
43880 3f 23 28 5b 61 2d 66 30 2d 39 5d 2b 29 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 ?#([a-f0-9]+)$}',.$reqVersion,.$
438a0 6d 61 74 63 68 29 20 26 26 20 27 64 65 76 27 20 3d 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e match).&&.'dev'.===.($stabilityN
438c0 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 53 74 61 62 69 6c ame.=.VersionParser::parseStabil
438e0 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 20 3d 20 73 74 72 ity($reqVersion))).{.$name.=.str
43900 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 tolower($reqName);.$references[$
43920 6e 61 6d 65 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 name].=.$match[1];.}.}..return.$
43940 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 references;.}..private.function.
43960 67 75 65 73 73 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 guessVersion(array.$config).{.if
43980 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 .(function_exists('proc_open')).
439a0 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 47 69 74 56 65 72 73 {.$version.=.$this->guessGitVers
439c0 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 65 72 73 ion($config);.if.(null.!==.$vers
439e0 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 ion).{.return.$version;.}..retur
43a00 6e 20 24 74 68 69 73 2d 3e 67 75 65 73 73 48 67 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 n.$this->guessHgVersion($config)
43a20 3b 0a 7d 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 47 69 74 ;.}.}..private.function.guessGit
43a40 56 65 72 73 69 6f 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 30 Version(array.$config).{...if.(0
43a60 20 3d 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 27 67 69 .===.$this->process->execute('gi
43a80 74 20 62 72 61 6e 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 t.branch.--no-color.--no-abbrev.
43aa0 2d 76 27 2c 20 24 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 -v',.$output)).{.$branches.=.arr
43ac0 61 79 28 29 3b 0a 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 ay();.$isFeatureBranch.=.false;.
43ae0 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 $version.=.null;....foreach.($th
43b00 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 29 is->process->splitLines($output)
43b20 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 26 26 20 70 72 .as.$branch).{.if.($branch.&&.pr
43b40 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 20 2a 28 5c 53 2b 7c 5c 28 6e 6f 20 62 eg_match('{^(?:\*.).*(\S+|\(no.b
43b60 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 2c 20 24 62 72 ranch\)).*([a-f0-9]+)..*$}',.$br
43b80 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 5b 31 5d 20 3d anch,.$match)).{.if.($match[1].=
43ba0 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 6e 20 3d 20 27 ==.'(no.branch)').{.$version.=.'
43bc0 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 42 72 61 6e 63 dev-'.$match[2];.$isFeatureBranc
43be0 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 20 3d 20 24 74 h.=.true;.}.else.{.$version.=.$t
43c00 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 72 61 his->versionParser->normalizeBra
43c20 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 72 61 6e 63 68 nch($match[1]);.$isFeatureBranch
43c40 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 64 65 76 2d 27 .=.0.===.strpos($version,.'dev-'
43c60 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 65 72 73 69 6f );.if.('9999999-dev'.===.$versio
43c80 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 63 68 5b 31 5d n).{.$version.=.'dev-'.$match[1]
43ca0 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 65 67 5f 6d 61 ;.}.}.}..if.($branch.&&.!preg_ma
43cc0 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 61 6e 63 68 29 tch('{^.*[^/]+/HEAD.}',.$branch)
43ce0 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 20 29 3f 20 2a ).{.if.(preg_match('{^(?:\*.)?.*
43d00 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 (\S+).*([a-f0-9]+)..*$}',.$branc
43d20 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 24 6d 61 74 h,.$match)).{.$branches[].=.$mat
43d40 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 73 46 65 61 74 75 72 65 42 72 61 ch[1];.}.}.}..if.(!$isFeatureBra
43d60 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 24 76 65 nch).{.return.$version;.}....$ve
43d80 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 46 65 61 74 75 72 65 56 65 72 73 69 rsion.=.$this->guessFeatureVersi
43da0 6f 6e 28 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 62 72 61 6e 63 68 65 73 2c on($config,.$version,.$branches,
43dc0 20 27 67 69 74 20 72 65 76 2d 6c 69 73 74 20 25 63 61 6e 64 69 64 61 74 65 25 2e 2e 25 62 72 61 .'git.rev-list.%candidate%..%bra
43de0 6e 63 68 25 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 nch%');..return.$version;.}.}..p
43e00 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 48 67 56 65 72 73 69 6f 6e 28 61 rivate.function.guessHgVersion(a
43e20 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 rray.$config).{...if.(0.===.$thi
43e40 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 72 61 6e 63 68 27 2c s->process->execute('hg.branch',
43e60 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 74 72 69 6d 28 24 6f 75 74 .$output)).{.$branch.=.trim($out
43e80 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 73 69 6f 6e 50 put);.$version.=.$this->versionP
43ea0 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 3b arser->normalizeBranch($branch);
43ec0 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 .$isFeatureBranch.=.0.===.strpos
43ee0 28 24 76 65 72 73 69 6f 6e 2c 20 27 64 65 76 2d 27 29 3b 0a 0a 69 66 20 28 27 39 39 39 39 39 39 ($version,.'dev-');..if.('999999
43f00 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 9-dev'.===.$version).{.$version.
43f20 3d 20 27 64 65 76 2d 27 2e 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 73 46 65 61 =.'dev-'.$branch;.}..if.(!$isFea
43f40 74 75 72 65 42 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d tureBranch).{.return.$version;.}
43f60 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 67 65 74 ....$config.=.array('url'.=>.get
43f80 63 77 64 28 29 29 3b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 48 67 44 72 69 76 65 72 28 24 cwd());.$driver.=.new.HgDriver($
43fa0 63 6f 6e 66 69 67 2c 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e config,.new.NullIO(),.$this->con
43fc0 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 fig,.$this->process);.$branches.
43fe0 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 =.array_keys($driver->getBranche
44000 73 28 29 29 3b 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 s());....$version.=.$this->guess
44020 46 65 61 74 75 72 65 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f 6e FeatureVersion($config,.$version
44040 2c 20 24 62 72 61 6e 63 68 65 73 2c 20 27 68 67 20 6c 6f 67 20 2d 72 20 22 6e 6f 74 20 61 6e 63 ,.$branches,.'hg.log.-r."not.anc
44060 65 73 74 6f 72 73 28 5c 27 25 63 61 6e 64 69 64 61 74 65 25 5c 27 29 20 61 6e 64 20 61 6e 63 65 estors(\'%candidate%\').and.ance
44080 73 74 6f 72 73 28 5c 27 25 62 72 61 6e 63 68 25 5c 27 29 22 20 2d 2d 74 65 6d 70 6c 61 74 65 20 stors(\'%branch%\')".--template.
440a0 22 7b 6e 6f 64 65 7d 5c 5c 6e 22 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b "{node}\\n"');..return.$version;
440c0 0a 7d 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 46 65 61 74 .}.}..private.function.guessFeat
440e0 75 72 65 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 ureVersion(array.$config,.$versi
44100 6f 6e 2c 20 61 72 72 61 79 20 24 62 72 61 6e 63 68 65 73 2c 20 24 73 63 6d 43 6d 64 6c 69 6e 65 on,.array.$branches,.$scmCmdline
44120 29 0a 7b 0a 0a 20 0a 20 69 66 20 28 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 ).{.....if.((isset($config['extr
44140 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 a']['branch-alias']).&&.!isset($
44160 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 61 73 27 5d 5b config['extra']['branch-alias'][
44180 24 76 65 72 73 69 6f 6e 5d 29 29 0a 7c 7c 20 73 74 72 70 6f 73 28 6a 73 6f 6e 5f 65 6e 63 6f 64 $version])).||.strpos(json_encod
441a0 65 28 24 63 6f 6e 66 69 67 29 2c 20 27 22 73 65 6c 66 2e 76 65 72 73 69 6f 6e 22 27 29 0a 29 20 e($config),.'"self.version"').).
441c0 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 64 65 76 2d {.$branch.=.preg_replace('{^dev-
441e0 7d 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 50 48 50 }',.'',.$version);.$length.=.PHP
44200 5f 49 4e 54 5f 4d 41 58 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 _INT_MAX;.foreach.($branches.as.
44220 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 3d $candidate).{...if.($candidate.=
44240 3d 3d 20 24 62 72 61 6e 63 68 20 7c 7c 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 6d 61 ==.$branch.||.!preg_match('{^(ma
44260 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c 74 7c 64 65 76 65 6c 6f 70 7c 5c 64 2b 5c 2e ster|trunk|default|develop|\d+\.
44280 2e 2b 29 24 7d 27 2c 20 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 63 .+)$}',.$candidate,.$match)).{.c
442a0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6d 64 4c 69 6e 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 ontinue;.}..$cmdLine.=.str_repla
442c0 63 65 28 61 72 72 61 79 28 27 25 63 61 6e 64 69 64 61 74 65 25 27 2c 20 27 25 62 72 61 6e 63 68 ce(array('%candidate%',.'%branch
442e0 25 27 29 2c 20 61 72 72 61 79 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 62 72 61 6e 63 68 29 2c %'),.array($candidate,.$branch),
44300 20 24 73 63 6d 43 6d 64 6c 69 6e 65 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e .$scmCmdline);.if.(0.!==.$this->
44320 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 4c 69 6e 65 2c 20 24 6f 75 74 70 process->execute($cmdLine,.$outp
44340 75 74 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 ut)).{.continue;.}..if.(strlen($
44360 6f 75 74 70 75 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 output).<.$length).{.$length.=.s
44380 74 72 6c 65 6e 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 trlen($output);.$version.=.$this
443a0 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 72 61 6e 63 68 ->versionParser->normalizeBranch
443c0 28 24 63 61 6e 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 ($candidate);.if.('9999999-dev'.
443e0 3d 3d 3d 20 24 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 ===.$version).{.$version.=.'dev-
44400 27 2e 24 6d 61 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 '.$match[1];.}.}.}.}..return.$ve
44420 72 73 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 6e 61 6d 65 rsion;.}.}.<?php............name
44440 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
44460 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
44480 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;
444a0 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
444c0 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
444e0 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
44500 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 52 age\AliasPackage;.use.Composer\R
44520 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 epository\ArrayRepository;.use.C
44540 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 omposer\Package\Dumper\ArrayDump
44560 65 72 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 er;.use.Composer\Package\Loader\
44580 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
445a0 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 0a 0a 0a e\Version\VersionParser;........
445c0 63 6c 61 73 73 20 4c 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 class.Locker.{.private.$lockFile
445e0 3b 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 70 72 ;.private.$repositoryManager;.pr
44600 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 70 72 69 76 ivate.$installationManager;.priv
44620 61 74 65 20 24 68 61 73 68 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 ate.$hash;.private.$loader;.priv
44640 61 74 65 20 24 64 75 6d 70 65 72 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 44 61 74 61 43 61 ate.$dumper;.private.$lockDataCa
44660 63 68 65 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 che;..........public.function.__
44680 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 6c 6f 63 6b 46 69 6c 65 2c 20 52 65 construct(JsonFile.$lockFile,.Re
446a0 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 positoryManager.$repositoryManag
446c0 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 73 74 61 6c 6c er,.InstallationManager.$install
446e0 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 68 61 73 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f ationManager,.$hash).{.$this->lo
44700 63 6b 46 69 6c 65 20 3d 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 ckFile.=.$lockFile;.$this->repos
44720 69 74 6f 72 79 4d 61 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 itoryManager.=.$repositoryManage
44740 72 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 72 20 3d 20 r;.$this->installationManager.=.
44760 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 68 61 73 $installationManager;.$this->has
44780 68 20 3d 20 24 68 61 73 68 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 h.=.$hash;.$this->loader.=.new.A
447a0 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 64 75 6d 70 65 72 20 3d 20 6e 65 rrayLoader();.$this->dumper.=.ne
447c0 77 20 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 w.ArrayDumper();.}.......public.
447e0 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 6b 65 64 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 function.isLocked().{.if.(!$this
44800 2d 3e 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 ->lockFile->exists()).{.return.f
44820 61 6c 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 alse;.}..$data.=.$this->getLockD
44840 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b ata();..return.isset($data['pack
44860 61 67 65 73 27 5d 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 ages']);.}.......public.function
44880 20 69 73 46 72 65 73 68 28 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b .isFresh().{.$lock.=.$this->lock
448a0 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 File->read();..return.$this->has
448c0 68 20 3d 3d 3d 20 24 6c 6f 63 6b 5b 27 68 61 73 68 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 h.===.$lock['hash'];.}........pu
448e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 blic.function.getLockedRepositor
44900 79 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6c 6f 63 6b 44 y($withDevReqs.=.false).{.$lockD
44920 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 0a 24 70 61 63 ata.=.$this->getLockData();.$pac
44940 6b 61 67 65 73 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a kages.=.new.ArrayRepository();..
44960 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 $lockedPackages.=.$lockData['pac
44980 6b 61 67 65 73 27 5d 3b 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 69 66 20 kages'];.if.($withDevReqs).{.if.
449a0 28 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d (isset($lockData['packages-dev']
449c0 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 )).{.$lockedPackages.=.array_mer
449e0 67 65 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 2c 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 ge($lockedPackages,.$lockData['p
44a00 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e ackages-dev']);.}.else.{.throw.n
44a20 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 6c 6f 63 6b 20 66 ew.\RuntimeException('The.lock.f
44a40 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 72 65 71 75 69 72 65 2d 64 65 76 ile.does.not.contain.require-dev
44a60 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 72 75 6e 20 69 6e 73 74 61 6c 6c 20 77 69 74 68 6f 75 .information,.run.install.withou
44a80 74 20 2d 2d 64 65 76 20 6f 72 20 72 75 6e 20 75 70 64 61 74 65 20 74 6f 20 69 6e 73 74 61 6c 6c t.--dev.or.run.update.to.install
44aa0 20 74 68 6f 73 65 20 70 61 63 6b 61 67 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 .those.packages.');.}.}..if.(emp
44ac0 74 79 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 ty($lockedPackages)).{.return.$p
44ae0 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 65 64 50 61 63 ackages;.}..if.(isset($lockedPac
44b00 6b 61 67 65 73 5b 30 5d 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c kages[0]['name'])).{.foreach.($l
44b20 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 70 61 63 6b 61 ockedPackages.as.$info).{.$packa
44b40 67 65 73 2d 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 ges->addPackage($this->loader->l
44b60 6f 61 64 28 24 69 6e 66 6f 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 oad($info));.}..return.$packages
44b80 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 6e ;.}..throw.new.\RuntimeException
44ba0 28 27 59 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 77 61 73 20 63 72 65 61 74 65 64 ('Your.composer.lock.was.created
44bc0 20 62 65 66 6f 72 65 20 32 30 31 32 2d 30 39 2d 31 35 2c 20 61 6e 64 20 69 73 20 6e 6f 74 20 73 .before.2012-09-15,.and.is.not.s
44be0 75 70 70 6f 72 74 65 64 20 61 6e 79 6d 6f 72 65 2e 20 52 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 upported.anymore..Run."composer.
44c00 75 70 64 61 74 65 22 20 74 6f 20 67 65 6e 65 72 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 2e 27 29 update".to.generate.a.new.one.')
44c20 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 50 6c ;.}........public.function.getPl
44c40 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 77 69 74 68 44 65 76 52 65 71 73 20 atformRequirements($withDevReqs.
44c60 3d 20 66 61 6c 73 65 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 =.false).{.$lockData.=.$this->ge
44c80 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 tLockData();.$versionParser.=.ne
44ca0 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 w.VersionParser();.$requirements
44cc0 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f 63 6b 44 61 74 .=.array();..if.(!empty($lockDat
44ce0 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 29 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 a['platform'])).{.$requirements.
44d00 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 27 5f =.$versionParser->parseLinks(.'_
44d20 5f 52 4f 4f 54 5f 5f 27 2c 0a 27 31 2e 30 2e 30 27 2c 0a 27 72 65 71 75 69 72 65 73 27 2c 0a 69 _ROOT__',.'1.0.0',.'requires',.i
44d40 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 29 20 3f 20 24 6c sset($lockData['platform']).?.$l
44d60 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 20 3a 20 61 72 72 61 79 28 29 0a 29 3b ockData['platform'].:.array().);
44d80 0a 7d 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 20 26 26 20 21 65 6d 70 74 79 28 24 .}..if.($withDevReqs.&&.!empty($
44da0 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 29 29 20 7b 0a 24 64 65 lockData['platform-dev'])).{.$de
44dc0 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e vRequirements.=.$versionParser->
44de0 70 61 72 73 65 4c 69 6e 6b 73 28 0a 27 5f 5f 52 4f 4f 54 5f 5f 27 2c 0a 27 31 2e 30 2e 30 27 2c parseLinks(.'__ROOT__',.'1.0.0',
44e00 0a 27 72 65 71 75 69 72 65 73 27 2c 0a 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c .'requires',.isset($lockData['pl
44e20 61 74 66 6f 72 6d 2d 64 65 76 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 atform-dev']).?.$lockData['platf
44e40 6f 72 6d 2d 64 65 76 27 5d 20 3a 20 61 72 72 61 79 28 29 0a 29 3b 0a 0a 24 72 65 71 75 69 72 65 orm-dev'].:.array().);..$require
44e60 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 6d 65 6e 74 ments.=.array_merge($requirement
44e80 73 2c 20 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 s,.$devRequirements);.}..return.
44ea0 24 72 65 71 75 69 72 65 6d 65 6e 74 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $requirements;.}..public.functio
44ec0 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 6c 6f 63 6b 44 n.getMinimumStability().{.$lockD
44ee0 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 0a 0a 72 65 74 ata.=.$this->getLockData();..ret
44f00 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 6d 2d 73 74 61 urn.isset($lockData['minimum-sta
44f20 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 6d 75 6d 2d 73 bility']).?.$lockData['minimum-s
44f40 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 75 62 6c 69 63 tability'].:.'stable';.}..public
44f60 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 0a 7b 0a .function.getStabilityFlags().{.
44f80 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 29 $lockData.=.$this->getLockData()
44fa0 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 73 74 61 62 69 ;..return.isset($lockData['stabi
44fc0 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 73 74 61 62 69 lity-flags']).?.$lockData['stabi
44fe0 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 70 75 62 6c 69 lity-flags'].:.array();.}..publi
45000 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 6c 6f 63 6b 44 c.function.getAliases().{.$lockD
45020 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 0a 0a 72 65 74 ata.=.$this->getLockData();..ret
45040 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 73 27 5d 29 20 urn.isset($lockData['aliases']).
45060 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 72 61 79 28 29 ?.$lockData['aliases'].:.array()
45080 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 6b 44 61 74 61 ;.}..public.function.getLockData
450a0 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 63 6b 44 61 74 ().{.if.(null.!==.$this->lockDat
450c0 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 6b 44 61 74 61 aCache).{.return.$this->lockData
450e0 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 69 6c 65 2d 3e Cache;.}..if.(!$this->lockFile->
45100 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 63 45 78 63 65 exists()).{.throw.new.\LogicExce
45120 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 6e 61 62 6c 65 ption('No.lockfile.found..Unable
45140 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 0a 7d 0a 0a 72 .to.read.locked.packages');.}..r
45160 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 3d 20 24 74 68 eturn.$this->lockDataCache.=.$th
45180 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 0a 0a 0a 0a 0a is->lockFile->read();.}.........
451a0 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 74 ......public.function.setLockDat
451c0 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 2c a(array.$packages,.$devPackages,
451e0 20 61 72 72 61 79 20 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 2c 20 24 70 6c 61 74 66 6f 72 6d 44 .array.$platformReqs,.$platformD
45200 65 76 52 65 71 73 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 evReqs,.array.$aliases,.$minimum
45220 53 74 61 62 69 6c 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 Stability,.array.$stabilityFlags
45240 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 61 72 72 61 79 28 0a 27 5f 72 65 61 64 6d 65 27 20 3d 3e 20 ).{.$lock.=.array(.'_readme'.=>.
45260 61 72 72 61 79 28 27 54 68 69 73 20 66 69 6c 65 20 6c 6f 63 6b 73 20 74 68 65 20 64 65 70 65 6e array('This.file.locks.the.depen
45280 64 65 6e 63 69 65 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 20 74 6f 20 61 20 6b 6e 6f dencies.of.your.project.to.a.kno
452a0 77 6e 20 73 74 61 74 65 27 2c 20 27 52 65 61 64 20 6d 6f 72 65 20 61 62 6f 75 74 20 69 74 20 61 wn.state',.'Read.more.about.it.a
452c0 74 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 31 2d t.http://getcomposer.org/doc/01-
452e0 62 61 73 69 63 2d 75 73 61 67 65 2e 6d 64 23 63 6f 6d 70 6f 73 65 72 2d 6c 6f 63 6b 2d 74 68 65 basic-usage.md#composer-lock-the
45300 2d 6c 6f 63 6b 2d 66 69 6c 65 27 29 2c 0a 27 68 61 73 68 27 20 3d 3e 20 24 74 68 69 73 2d 3e 68 -lock-file'),.'hash'.=>.$this->h
45320 61 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 ash,.'packages'.=>.null,.'packag
45340 65 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 61 72 es-dev'.=>.null,.'aliases'.=>.ar
45360 72 61 79 28 29 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 ray(),.'minimum-stability'.=>.$m
45380 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
453a0 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 66 6f 72 65 61 s'.=>.$stabilityFlags,.);..forea
453c0 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 ch.($aliases.as.$package.=>.$ver
453e0 73 69 6f 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 sions).{.foreach.($versions.as.$
45400 76 65 72 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 61 6c 69 61 version.=>.$alias).{.$lock['alia
45420 73 65 73 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 61 6c 69 ses'][].=.array(.'alias'.=>.$ali
45440 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 as['alias'],.'alias_normalized'.
45460 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 0a 27 =>.$alias['alias_normalized'],.'
45480 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 0a 27 70 61 63 6b 61 67 65 27 20 version'.=>.$version,.'package'.
454a0 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 61 63 6b =>.$package,.);.}.}..$lock['pack
454c0 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 65 73 28 24 70 61 ages'].=.$this->lockPackages($pa
454e0 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 50 61 63 6b 61 67 ckages);.if.(null.!==.$devPackag
45500 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 5d 20 3d 20 24 74 es).{.$lock['packages-dev'].=.$t
45520 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 61 67 65 73 29 3b his->lockPackages($devPackages);
45540 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 .}..if.(empty($lock['packages'])
45560 20 26 26 20 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 .&&.empty($lock['packages-dev'])
45580 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 ).{.if.($this->lockFile->exists(
455a0 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 67 65 74 )).{.unlink($this->lockFile->get
455c0 50 61 74 68 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6c 6f Path());.}..return.false;.}..$lo
455e0 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 3b 0a ck['platform'].=.$platformReqs;.
45600 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 20 3d 20 24 70 6c 61 74 66 6f 72 $lock['platform-dev'].=.$platfor
45620 6d 44 65 76 52 65 71 73 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 63 6b 65 64 28 mDevReqs;..if.(!$this->isLocked(
45640 29 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 ).||.$lock.!==.$this->getLockDat
45660 61 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 a()).{.$this->lockFile->write($l
45680 6f 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 ock);.$this->lockDataCache.=.nul
456a0 6c 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 l;..return.true;.}..return.false
456c0 3b 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 ;.}..private.function.lockPackag
456e0 65 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 es(array.$packages).{.$locked.=.
45700 61 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 array();..foreach.($packages.as.
45720 24 70 61 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 $package).{.if.($package.instanc
45740 65 6f 66 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 eof.AliasPackage).{.continue;.}.
45760 0a 24 6e 61 6d 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 .$name.=.$package->getPrettyName
45780 28 29 3b 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 50 72 65 74 ();.$version.=.$package->getPret
457a0 74 79 56 65 72 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 tyVersion();..if.(!$name.||.!$ve
457c0 72 73 69 6f 6e 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 rsion).{.throw.new.\LogicExcepti
457e0 6f 6e 28 73 70 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 on(sprintf(.'Package."%s".has.no
45800 20 76 65 72 73 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 .version.or.name.and.can.not.be.
45820 6c 6f 63 6b 65 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 locked',.$package.));.}..$spec.=
45840 20 24 74 68 69 73 2d 3e 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a .$this->dumper->dump($package);.
45860 75 6e 73 65 74 28 24 73 70 65 63 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 unset($spec['version_normalized'
45880 5d 29 3b 0a 0a 0a 20 24 74 69 6d 65 20 3d 20 69 73 73 65 74 28 24 73 70 65 63 5b 27 74 69 6d 65 ]);....$time.=.isset($spec['time
458a0 27 5d 29 20 3f 20 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 75 6e 73 65 ']).?.$spec['time'].:.null;.unse
458c0 74 28 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e t($spec['time']);.if.($package->
458e0 69 73 44 65 76 28 29 29 20 7b 0a 0a 20 24 74 69 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 isDev()).{...$time.=.$this->getP
45900 61 63 6b 61 67 65 54 69 6d 65 28 24 70 61 63 6b 61 67 65 29 20 3f 3a 20 24 74 69 6d 65 3b 0a 7d ackageTime($package).?:.$time;.}
45920 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 69 6d 65 29 20 7b 0a 24 73 70 65 63 5b 27 74 69 .if.(null.!==.$time).{.$spec['ti
45940 6d 65 27 5d 20 3d 20 24 74 69 6d 65 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 73 70 65 63 5b 27 69 6e me'].=.$time;.}..unset($spec['in
45960 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 3b 0a 0a 24 6c 6f 63 6b 65 64 5b 5d stallation-source']);..$locked[]
45980 20 3d 20 24 73 70 65 63 3b 0a 7d 0a 0a 75 73 6f 72 74 28 24 6c 6f 63 6b 65 64 2c 20 66 75 6e 63 .=.$spec;.}..usort($locked,.func
459a0 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 24 63 6f 6d 70 61 72 69 73 6f 6e 20 3d 20 73 74 tion.($a,.$b).{.$comparison.=.st
459c0 72 63 6d 70 28 24 61 5b 27 6e 61 6d 65 27 5d 2c 20 24 62 5b 27 6e 61 6d 65 27 5d 29 3b 0a 0a 69 rcmp($a['name'],.$b['name']);..i
459e0 66 20 28 30 20 21 3d 3d 20 24 63 6f 6d 70 61 72 69 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 f.(0.!==.$comparison).{.return.$
45a00 63 6f 6d 70 61 72 69 73 6f 6e 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 comparison;.}....return.strcmp($
45a20 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 24 62 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 29 a['version'],.$b['version']);.})
45a40 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 63 6b 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 ;..return.$locked;.}........priv
45a60 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 54 69 6d 65 28 50 61 63 6b ate.function.getPackageTime(Pack
45a80 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 66 75 ageInterface.$package).{.if.(!fu
45aa0 6e 63 74 69 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 72 65 nction_exists('proc_open')).{.re
45ac0 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 73 turn.null;.}..$path.=.$this->ins
45ae0 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 74 68 tallationManager->getInstallPath
45b00 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 73 6f 75 72 63 65 54 79 70 65 20 3d 20 24 70 61 63 6b 61 ($package);.$sourceType.=.$packa
45b20 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 61 74 65 74 69 6d 65 20 3d ge->getSourceType();.$datetime.=
45b40 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 24 70 61 74 68 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 73 .null;..if.($path.&&.in_array($s
45b60 6f 75 72 63 65 54 79 70 65 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 67 27 29 29 29 20 ourceType,.array('git',.'hg'))).
45b80 7b 0a 24 73 6f 75 72 63 65 52 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 {.$sourceRef.=.$package->getSour
45ba0 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 3f 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 ceReference().?:.$package->getDi
45bc0 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 stReference();.$process.=.new.Pr
45be0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 73 6f 75 72 63 ocessExecutor();..switch.($sourc
45c00 65 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 67 69 74 27 3a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 eType).{.case.'git':.if.(0.===.$
45c20 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 20 2d 6e 31 20 2d 2d process->execute('git.log.-n1.--
45c40 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 72 67 28 24 73 6f 75 pretty=%ct.'.escapeshellarg($sou
45c60 72 63 65 52 65 66 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 20 26 26 20 70 72 65 67 rceRef),.$output,.$path).&&.preg
45c80 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 5c 64 2b 5c 73 2a 24 7d 27 2c 20 24 6f 75 74 70 75 74 29 _match('{^\s*\d+\s*$}',.$output)
45ca0 29 20 7b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 ).{.$datetime.=.new.\DateTime('@
45cc0 27 2e 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f '.trim($output),.new.\DateTimeZo
45ce0 6e 65 28 27 55 54 43 27 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 68 67 27 3a ne('UTC'));.}.break;..case.'hg':
45d00 0a 69 66 20 28 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 68 67 .if.(0.===.$process->execute('hg
45d20 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c 68 67 64 61 74 65 7d 22 20 .log.--template."{date|hgdate}".
45d40 2d 72 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 52 65 66 29 2c -r.'.escapeshellarg($sourceRef),
45d60 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 .$output,.$path).&&.preg_match('
45d80 7b 5e 5c 73 2a 28 5c 64 2b 29 5c 73 2a 7d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 {^\s*(\d+)\s*}',.$output,.$match
45da0 29 29 20 7b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 )).{.$datetime.=.new.\DateTime('
45dc0 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 @'.$match[1],.new.\DateTimeZone(
45de0 27 55 54 43 27 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 'UTC'));.}.break;.}.}..return.$d
45e00 61 74 65 74 69 6d 65 20 3f 20 24 64 61 74 65 74 69 6d 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d atetime.?.$datetime->format('Y-m
45e20 2d 64 20 48 3a 69 3a 73 27 29 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a -d.H:i:s').:.null;.}.}.<?php....
45e40 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 6b 61 ........namespace.Composer\Packa
45e60 67 65 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 52 65 70 ge;..use.Composer\Repository\Rep
45e80 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 ositoryInterface;.......interfac
45ea0 65 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 e.PackageInterface.{......public
45ec0 20 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 .function.getName();.......publi
45ee0 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 3b 0a 0a 0a 0a 0a c.function.getPrettyName();.....
45f00 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 73 28 29 3b .....public.function.getNames();
45f20 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 49 64 28 24 69 64 .......public.function.setId($id
45f40 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 49 64 28 29 );.......public.function.getId()
45f60 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 44 65 76 28 29 3b ;.......public.function.isDev();
45f80 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 54 79 70 65 28 29 .......public.function.getType()
45fa0 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 54 61 72 67 65 ;.......public.function.getTarge
45fc0 74 44 69 72 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 tDir();.......public.function.ge
45fe0 74 45 78 74 72 61 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 tExtra();.......public.function.
46000 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 3b 0a 0a 0a setInstallationSource($type);...
46020 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 61 74 ....public.function.getInstallat
46040 69 6f 6e 53 6f 75 72 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 ionSource();.......public.functi
46060 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 on.getSourceType();.......public
46080 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a .function.getSourceUrl();.......
460a0 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 52 65 66 65 72 65 6e public.function.getSourceReferen
460c0 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
460e0 69 73 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 74 69 6f 6e istType();.......public.function
46100 20 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .getDistUrl();.......public.func
46120 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 tion.getDistReference();.......p
46140 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
46160 75 6d 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 56 um();.......public.function.getV
46180 65 72 73 69 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 6e 20 ersion();.......public.function.
461a0 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 getPrettyVersion();.......public
461c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 0a 0a 0a 0a .function.getReleaseDate();.....
461e0 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 79 28 29 ..public.function.getStability()
46200 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 71 75 ;........public.function.getRequ
46220 69 72 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 ires();........public.function.g
46240 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e etConflicts();........public.fun
46260 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ction.getProvides();........publ
46280 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 0a 0a 0a 0a 0a ic.function.getReplaces();......
462a0 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 71 75 69 72 65 73 ..public.function.getDevRequires
462c0 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 65 74 53 75 ();........public.function.getSu
462e0 67 67 65 73 74 73 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 ggests();............public.func
46300 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tion.getAutoload();........publi
46320 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 3b 0a 0a 0a c.function.getIncludePaths();...
46340 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 70 6f 73 69 74 6f 72 ....public.function.setRepositor
46360 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 74 6f 72 y(RepositoryInterface.$repositor
46380 79 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 70 y);.......public.function.getRep
463a0 6f 73 69 74 6f 72 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 ository();.......public.function
463c0 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .getBinaries();.......public.fun
463e0 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 75 62 ction.getUniqueName();.......pub
46400 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 lic.function.getNotificationUrl(
46420 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 5f 5f 74 6f 53 74 72 );.......public.function.__toStr
46440 69 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 ing();.......public.function.get
46460 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e PrettyString();.......public.fun
46480 63 74 69 6f 6e 20 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 3c 3f ction.getArchiveExcludes();.}.<?
464a0 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
464c0 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 52 65 70 6f 73 69 74 r\Package;..use.Composer\Reposit
464e0 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 6f 6d ory\RepositoryInterface;.use.Com
46500 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 74 poser\Repository\PlatformReposit
46520 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 50 61 ory;.......abstract.class.BasePa
46540 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 61 63 ckage.implements.PackageInterfac
46560 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 6e 6b e.{.public.static.$supportedLink
46580 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 72 61 Types.=.array(.'require'.=>.arra
465a0 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 20 27 y('description'.=>.'requires',.'
465c0 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 69 63 method'.=>.'requires'),.'conflic
465e0 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 63 6f t'.=>.array('description'.=>.'co
46600 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 74 73 nflicts',.'method'.=>.'conflicts
46620 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 70 74 '),.'provide'.=>.array('descript
46640 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 3e 20 ion'.=>.'provides',.'method'.=>.
46660 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 79 28 'provides'),.'replace'.=>.array(
46680 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 6d 65 'description'.=>.'replaces',.'me
466a0 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 2d 64 thod'.=>.'replaces'),.'require-d
466c0 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 27 72 ev'.=>.array('description'.=>.'r
466e0 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 65 74 equires.(for.development)',.'met
46700 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 6e 73 hod'.=>.'devRequires'),.);..cons
46720 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 53 54 t.STABILITY_STABLE.=.0;.const.ST
46740 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 59 5f ABILITY_RC.=.5;.const.STABILITY_
46760 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 48 41 BETA.=.10;.const.STABILITY_ALPHA
46780 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 30 3b .=.15;.const.STABILITY_DEV.=.20;
467a0 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 ..public.static.$stabilities.=.a
467c0 72 72 61 79 28 0a 27 73 74 61 62 6c 65 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 rray(.'stable'.=>.self::STABILIT
467e0 59 5f 53 54 41 42 4c 45 2c 0a 27 52 43 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 Y_STABLE,.'RC'.=>.self::STABILIT
46800 59 5f 52 43 2c 0a 27 62 65 74 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f Y_RC,.'beta'.=>.self::STABILITY_
46820 42 45 54 41 2c 0a 27 61 6c 70 68 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 BETA,.'alpha'.=>.self::STABILITY
46840 5f 41 4c 50 48 41 2c 0a 27 64 65 76 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 _ALPHA,.'dev'.=>.self::STABILITY
46860 5f 44 45 56 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 3b 0a 70 72 6f 74 65 _DEV,.);..protected.$name;.prote
46880 63 74 65 64 20 24 70 72 65 74 74 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 cted.$prettyName;..protected.$re
468a0 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 0a 0a 0a 0a 0a 70 pository;.protected.$id;.......p
468c0 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 65 ublic.function.__construct($name
468e0 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 ).{.$this->prettyName.=.$name;.$
46900 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a this->name.=.strtolower($name);.
46920 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $this->id.=.-1;.}.....public.fun
46940 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 24 74 68 69 73 2d 3e ction.getName().{.return.$this->
46960 6e 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
46980 72 65 74 74 79 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 rettyName().{.return.$this->pret
469a0 74 79 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 tyName;.}.....public.function.ge
469c0 74 4e 61 6d 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 tNames().{.$names.=.array(.$this
469e0 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 ->getName().=>.true,.);..foreach
46a00 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 .($this->getProvides().as.$link)
46a20 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 20 3d 20 .{.$names[$link->getTarget()].=.
46a40 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 67 65 74 52 65 70 6c true;.}..foreach.($this->getRepl
46a60 61 63 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 6e 6b 2d aces().as.$link).{.$names[$link-
46a80 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 72 65 74 75 72 6e 20 >getTarget()].=.true;.}..return.
46aa0 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 array_keys($names);.}.....public
46ac0 20 66 75 6e 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 .function.setId($id).{.$this->id
46ae0 20 3d 20 24 69 64 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 .=.$id;.}.....public.function.ge
46b00 74 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 0a 0a 0a tId().{.return.$this->id;.}.....
46b20 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 28 52 65 public.function.setRepository(Re
46b40 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 74 6f 72 79 29 0a 7b positoryInterface.$repository).{
46b60 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 73 .if.($this->repository.&&.$repos
46b80 69 74 6f 72 79 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 74 itory.!==.$this->repository).{.t
46ba0 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 63 6b hrow.new.\LogicException('A.pack
46bc0 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 65 70 age.can.only.be.added.to.one.rep
46be0 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 20 3d ository');.}.$this->repository.=
46c00 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$repository;.}.....public.funct
46c20 69 6f 6e 20 67 65 74 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 ion.getRepository().{.return.$th
46c40 69 73 2d 3e 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 is->repository;.}.......public.f
46c60 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
46c80 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.
46ca0 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
46cc0 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
46ce0 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-
46d00 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
46d20 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
46d40 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
46d60 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.
46d80 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
46da0 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).{
46dc0 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
46de0 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
46e00 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
46e20 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
46e40 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
46e60 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
46e80 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
46ea0 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._
46ec0 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
46ee0 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ull;.$this->id.=.-1;.}.}.<?php..
46f00 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
46f20 6b 61 67 65 5c 56 65 72 73 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b kage\Version;..use.Composer\Pack
46f40 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 50 61 age\BasePackage;.use.Composer\Pa
46f60 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 43 6f 6d 70 ckage\PackageInterface;.use.Comp
46f80 6f 73 65 72 5c 50 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 oser\Package\Link;.use.Composer\
46fa0 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d 70 74 79 43 6f 6e 73 Package\LinkConstraint\EmptyCons
46fc0 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 67 65 5c 4c 69 6e traint;.use.Composer\Package\Lin
46fe0 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
47000 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
47020 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.
47040 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.$
47060 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 73 74 61 62 6c modifierRegex.=.'[._-]?(?:(stabl
47080 65 7c 62 65 74 61 7c 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 e|beta|b|RC|alpha|a|patch|pl|p)(
470a0 3f 3a 5b 2e 2d 5d 3f 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 ?:[.-]?(\d+))?)?([.-]?dev)?';...
470c0 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 70 61 72 73 .....public.static.function.pars
470e0 65 53 74 61 62 69 6c 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 eStability($version).{.$version.
47100 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 23 2e 2b 24 7d 69 27 2c 20 27 27 2c 20 24 76 =.preg_replace('{#.+$}i',.'',.$v
47120 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(
47140 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
47160 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
47180 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
471a0 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 ifierRegex.'$}i',.strtolower($ve
471c0 72 73 69 6f 6e 29 2c 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 rsion),.$match);.if.(!empty($mat
471e0 63 68 5b 33 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 21 ch[3])).{.return.'dev';.}..if.(!
47200 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b 0a 69 66 20 28 27 62 65 74 61 27 20 3d empty($match[1])).{.if.('beta'.=
47220 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 20 7c 7c 20 27 62 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 ==.$match[1].||.'b'.===.$match[1
47240 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 62 65 74 61 27 3b 0a 7d 0a 69 66 20 28 27 61 6c 70 68 61 ]).{.return.'beta';.}.if.('alpha
47260 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 20 7c 7c 20 27 61 27 20 3d 3d 3d 20 24 6d 61 74 63 '.===.$match[1].||.'a'.===.$matc
47280 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 7d 0a 69 66 20 28 27 72 h[1]).{.return.'alpha';.}.if.('r
472a0 63 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 52 43 27 3b c'.===.$match[1]).{.return.'RC';
472c0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 .}.}..return.'stable';.}..public
472e0 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c .static.function.normalizeStabil
47300 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 ity($stability).{.$stability.=.s
47320 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 trtolower($stability);..return.$
47340 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 72 63 27 20 3f 20 27 52 43 27 20 3a 20 24 73 74 61 stability.===.'rc'.?.'RC'.:.$sta
47360 62 69 6c 69 74 79 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 bility;.}..public.static.functio
47380 6e 20 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 n.formatVersion(PackageInterface
473a0 20 24 70 61 63 6b 61 67 65 2c 20 24 74 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 .$package,.$truncate.=.true).{.i
473c0 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 21 69 6e 5f 61 72 72 f.(!$package->isDev().||.!in_arr
473e0 61 79 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 2c 20 61 72 ay($package->getSourceType(),.ar
47400 72 61 79 28 27 68 67 27 2c 20 27 67 69 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 ray('hg',.'git'))).{.return.$pac
47420 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 20 69 kage->getPrettyVersion();.}....i
47440 66 20 28 24 74 72 75 6e 63 61 74 65 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d f.($truncate.&&.strlen($package-
47460 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 3d 3d 3d 20 34 30 29 20 7b >getSourceReference()).===.40).{
47480 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 56 65 72 73 69 .return.$package->getPrettyVersi
474a0 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 on()...'.'...substr($package->ge
474c0 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 0a 72 65 tSourceReference(),.0,.7);.}..re
474e0 74 75 72 6e 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 turn.$package->getPrettyVersion(
47500 29 20 2e 20 27 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 )...'.'...$package->getSourceRef
47520 65 72 65 6e 63 65 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 erence();.}.........public.funct
47540 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 2c 20 24 66 75 6c 6c 56 65 72 ion.normalize($version,.$fullVer
47560 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 74 72 69 6d 28 24 sion.=.null).{.$version.=.trim($
47580 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 66 75 6c 6c 56 65 72 73 version);.if.(null.===.$fullVers
475a0 69 6f 6e 29 20 7b 0a 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a ion).{.$fullVersion.=.$version;.
475c0 7d 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 29 }....if.(preg_match('{^([^,\s]+)
475e0 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 6d .+as.+([^,\s]+)$}',.$version,.$m
47600 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 7d atch)).{.$version.=.$match[1];.}
47620 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 28 ....if.(preg_match('{^(?:dev-)?(
47640 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 65 ?:master|trunk|default)$}i',.$ve
47660 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 0a rsion)).{.return.'9999999-dev';.
47680 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 62 }..if.('dev-'.===.strtolower(sub
476a0 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 27 str($version,.0,.4))).{.return.'
476c0 64 65 76 2d 27 2e 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 34 29 3b 0a 7d 0a 0a 0a 20 dev-'.substr($version,.4);.}....
476e0 69 66 20 28 70 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 if.(preg_match('{^v?(\d{1,3})(\.
47700 5c 64 2b 29 3f 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 \d+)?(\.\d+)?(\.\d+)?'.self::$mo
47720 64 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 difierRegex.'$}i',.$version,.$ma
47740 74 63 68 65 73 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 tches)).{.$version.=.$matches[1]
47760 0a 2e 28 21 65 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 ..(!empty($matches[2]).?.$matche
47780 73 5b 32 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 73 5b 33 s[2].:.'.0')..(!empty($matches[3
477a0 5d 29 20 3f 20 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 ]).?.$matches[3].:.'.0')..(!empt
477c0 79 28 24 6d 61 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 y($matches[4]).?.$matches[4].:.'
477e0 2e 30 27 29 3b 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 .0');.$index.=.5;.}.elseif.(preg
47800 5f 6d 61 74 63 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 _match('{^v?(\d{4}(?:[.:-]?\d{2}
47820 29 7b 31 2c 36 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 ){1,6}(?:[.:-]?\d{1,3})?)'.self:
47840 3a 24 6d 6f 64 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 :$modifierRegex.'$}i',.$version,
47860 20 24 6d 61 74 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 .$matches)).{...$version.=.preg_
47880 72 65 70 6c 61 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 replace('{\D}',.'-',.$matches[1]
478a0 29 3b 0a 24 69 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 );.$index.=.2;.}....if.(isset($i
478c0 6e 64 65 78 29 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 ndex)).{.if.(!empty($matches[$in
478e0 64 65 78 5d 29 29 20 7b 0a 69 66 20 28 27 73 74 61 62 6c 65 27 20 3d 3d 3d 20 24 6d 61 74 63 68 dex])).{.if.('stable'.===.$match
47900 65 73 5b 24 69 6e 64 65 78 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d es[$index]).{.return.$version;.}
47920 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 73 2d 3e 65 78 70 61 6e 64 .$version..=.'-'...$this->expand
47940 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 20 2e 20 28 21 Stability($matches[$index])...(!
47960 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 20 24 6d 61 74 empty($matches[$index+1]).?.$mat
47980 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 20 28 21 65 6d ches[$index+1].:.'');.}..if.(!em
479a0 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 24 76 65 72 73 pty($matches[$index+2])).{.$vers
479c0 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 65 72 73 69 6f ion..=.'-dev';.}..return.$versio
479e0 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 2a 3f 29 5b 2e n;.}....if.(preg_match('{(.*?)[.
47a00 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 68 29 29 20 7b -]?dev$}i',.$version,.$match)).{
47a20 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 69 7a 65 42 72 .try.{.return.$this->normalizeBr
47a40 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 45 78 63 65 70 anch($match[1]);.}.catch.(\Excep
47a60 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 7d 0a 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 3d 20 27 tion.$e).{}.}..$extraMessage.=.'
47a80 27 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 20 2b 61 73 20 2b 27 2e 70 72 65 67 ';.if.(preg_match('{.+as.+'.preg
47aa0 5f 71 75 6f 74 65 28 24 76 65 72 73 69 6f 6e 29 2e 27 24 7d 27 2c 20 24 66 75 6c 6c 56 65 72 73 _quote($version).'$}',.$fullVers
47ac0 69 6f 6e 29 29 20 7b 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 3d 20 27 20 69 6e 20 22 27 2e ion)).{.$extraMessage.=.'.in."'.
47ae0 24 66 75 6c 6c 56 65 72 73 69 6f 6e 2e 27 22 2c 20 74 68 65 20 61 6c 69 61 73 20 6d 75 73 74 20 $fullVersion.'",.the.alias.must.
47b00 62 65 20 61 6e 20 65 78 61 63 74 20 76 65 72 73 69 6f 6e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 be.an.exact.version';.}.elseif.(
47b20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 72 73 preg_match('{^'.preg_quote($vers
47b40 69 6f 6e 29 2e 27 20 2b 61 73 20 2b 7d 27 2c 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 29 29 20 7b ion).'.+as.+}',.$fullVersion)).{
47b60 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 3d 20 27 20 69 6e 20 22 27 2e 24 66 75 6c 6c 56 65 .$extraMessage.=.'.in."'.$fullVe
47b80 72 73 69 6f 6e 2e 27 22 2c 20 74 68 65 20 61 6c 69 61 73 20 73 6f 75 72 63 65 20 6d 75 73 74 20 rsion.'",.the.alias.source.must.
47ba0 62 65 20 61 6e 20 65 78 61 63 74 20 76 65 72 73 69 6f 6e 2c 20 69 66 20 69 74 20 69 73 20 61 20 be.an.exact.version,.if.it.is.a.
47bc0 62 72 61 6e 63 68 20 6e 61 6d 65 20 79 6f 75 20 73 68 6f 75 6c 64 20 70 72 65 66 69 78 20 69 74 branch.name.you.should.prefix.it
47be0 20 77 69 74 68 20 64 65 76 2d 27 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 .with.dev-';.}..throw.new.\Unexp
47c00 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 20 76 65 72 ectedValueException('Invalid.ver
47c20 73 69 6f 6e 20 73 74 72 69 6e 67 20 22 27 2e 24 76 65 72 73 69 6f 6e 2e 27 22 27 2e 24 65 78 74 sion.string."'.$version.'"'.$ext
47c40 72 61 4d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 raMessage);.}........public.func
47c60 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6e 61 6d 65 29 0a 7b 0a 24 6e tion.normalizeBranch($name).{.$n
47c80 61 6d 65 20 3d 20 74 72 69 6d 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 ame.=.trim($name);..if.(in_array
47ca0 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 6d 61 73 74 65 72 27 2c 20 27 74 72 75 6e 6b 27 2c ($name,.array('master',.'trunk',
47cc0 20 27 64 65 66 61 75 6c 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f .'default'))).{.return.$this->no
47ce0 72 6d 61 6c 69 7a 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 rmalize($name);.}..if.(preg_matc
47d00 68 28 27 23 5e 76 3f 28 5c 64 2b 29 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 28 5c 2e h('#^v?(\d+)(\.(?:\d+|[x*]))?(\.
47d20 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 24 (?:\d+|[x*]))?(\.(?:\d+|[x*]))?$
47d40 23 69 27 2c 20 24 6e 61 6d 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f #i',.$name,.$matches)).{.$versio
47d60 6e 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 20 35 3b 20 24 69 2b n.=.'';.for.($i.=.1;.$i.<.5;.$i+
47d80 2b 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b +).{.$version..=.isset($matches[
47da0 24 69 5d 29 20 3f 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2a 27 2c 20 27 78 27 2c 20 24 6d 61 $i]).?.str_replace('*',.'x',.$ma
47dc0 74 63 68 65 73 5b 24 69 5d 29 20 3a 20 27 2e 78 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 tches[$i]).:.'.x';.}..return.str
47de0 5f 72 65 70 6c 61 63 65 28 27 78 27 2c 20 27 39 39 39 39 39 39 39 27 2c 20 24 76 65 72 73 69 6f _replace('x',.'9999999',.$versio
47e00 6e 29 2e 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 24 6e 61 6d n).'-dev';.}..return.'dev-'.$nam
47e20 65 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 70 61 72 e;.}.........public.function.par
47e40 73 65 4c 69 6e 6b 73 28 24 73 6f 75 72 63 65 2c 20 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 2c seLinks($source,.$sourceVersion,
47e60 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 6c 69 6e 6b 73 29 0a 7b 0a 24 72 65 73 20 3d 20 .$description,.$links).{.$res.=.
47e80 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 74 61 72 array();.foreach.($links.as.$tar
47ea0 67 65 74 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 get.=>.$constraint).{.if.('self.
47ec0 76 65 72 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 version'.===.$constraint).{.$par
47ee0 73 65 64 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 43 6f 6e 73 sedConstraint.=.$this->parseCons
47f00 74 72 61 69 6e 74 73 28 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 traints($sourceVersion);.}.else.
47f20 7b 0a 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 {.$parsedConstraint.=.$this->par
47f40 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 24 72 seConstraints($constraint);.}.$r
47f60 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 3d 20 6e 65 77 20 4c 69 es[strtolower($target)].=.new.Li
47f80 6e 6b 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 72 73 65 64 43 6f 6e 73 nk($source,.$target,.$parsedCons
47fa0 74 72 61 69 6e 74 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 69 6e traint,.$description,.$constrain
47fc0 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 t);.}..return.$res;.}........pub
47fe0 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
48000 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.
48020 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(
48040 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
48060 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
48080 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
480a0 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
480c0 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.(
480e0 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@]+?|[^,
48100 5c 73 40 5d 2b 3f 5c 2e 78 2d 64 65 76 29 23 2e 2b 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 \s@]+?\.x-dev)#.+$}i',.$constrai
48120 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 6e 74 73 20 3d 20 24 nts,.$match)).{.$constraints.=.$
48140 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 70 72 match[1];.}..$orConstraints.=.pr
48160 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 7c 5c 73 2a 7d 27 2c 20 74 72 69 6d 28 24 63 6f 6e eg_split('{\s*\|\s*}',.trim($con
48180 73 74 72 61 69 6e 74 73 29 29 3b 0a 24 6f 72 47 72 6f 75 70 73 20 3d 20 61 72 72 61 79 28 29 3b straints));.$orGroups.=.array();
481a0 0a 66 6f 72 65 61 63 68 20 28 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e .foreach.($orConstraints.as.$con
481c0 73 74 72 61 69 6e 74 73 29 20 7b 0a 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 70 72 straints).{.$andConstraints.=.pr
481e0 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 2c 5c 73 2a 7d 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e eg_split('{\s*,\s*}',.$constrain
48200 74 73 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 29 ts);..if.(count($andConstraints)
48220 20 3e 20 31 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 61 72 72 .>.1).{.$constraintObjects.=.arr
48240 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 ay();.foreach.($andConstraints.a
48260 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 74 4f 62 6a 65 s.$constraint).{.$constraintObje
48280 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 6e 74 4f 62 6a cts.=.array_merge($constraintObj
482a0 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 74 28 24 63 6f ects,.$this->parseConstraint($co
482c0 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 73 74 72 61 69 nstraint));.}.}.else.{.$constrai
482e0 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 73 74 72 61 69 ntObjects.=.$this->parseConstrai
48300 6e 74 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 31 nt($andConstraints[0]);.}..if.(1
48320 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 29 20 .===.count($constraintObjects)).
48340 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 65 63 {.$constraint.=.$constraintObjec
48360 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 6e 65 ts[0];.}.else.{.$constraint.=.ne
48380 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 62 6a w.MultiConstraint($constraintObj
483a0 65 63 74 73 29 3b 0a 7d 0a 0a 24 6f 72 47 72 6f 75 70 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 ects);.}..$orGroups[].=.$constra
483c0 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 6f 72 47 72 6f 75 70 int;.}..if.(1.===.count($orGroup
483e0 73 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 6f 72 47 72 6f 75 70 73 5b 30 5d s)).{.$constraint.=.$orGroups[0]
48400 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 6e 65 77 20 4d 75 6c ;.}.else.{.$constraint.=.new.Mul
48420 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 72 47 72 6f 75 70 73 2c 20 66 61 6c 73 65 29 3b 0a tiConstraint($orGroups,.false);.
48440 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 }..$constraint->setPrettyString(
48460 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e $prettyConstraint);..return.$con
48480 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 straint;.}..private.function.par
484a0 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 69 66 20 28 seConstraint($constraint).{.if.(
484c0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 3f 29 40 28 27 2e 69 6d 70 6c preg_match('{^([^,\s]+?)@('.impl
484e0 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a ode('|',.array_keys(BasePackage:
48500 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 :$stabilities)).')$}i',.$constra
48520 69 6e 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 6d int,.$match)).{.$constraint.=.$m
48540 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 73 74 61 62 atch[1];.if.($match[2].!==.'stab
48560 6c 65 27 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 65 72 20 3d 20 24 6d 61 74 le').{.$stabilityModifier.=.$mat
48580 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 78 ch[2];.}.}..if.(preg_match('{^[x
485a0 2a 5d 28 5c 2e 5b 78 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 *](\.[x*])*$}i',.$constraint)).{
485c0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e .return.array(new.EmptyConstrain
485e0 74 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 7e 28 5c 64 2b 29 28 t);.}..if.(preg_match('{^~(\d+)(
48600 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b ?:\.(\d+))?(?:\.(\d+))?(?:\.(\d+
48620 29 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 3f 24 7d 69 27 ))?'.self::$modifierRegex.'?$}i'
48640 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 20 7b 0a 69 66 20 28 ,.$constraint,.$matches)).{.if.(
48660 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 isset($matches[4]).&&.''.!==.$ma
48680 74 63 68 65 73 5b 34 5d 29 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 tches[4]).{.$highVersion.=.$matc
486a0 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 5d 20 2e 20 27 2e 27 hes[1]...'.'...$matches[2]...'.'
486c0 20 2e 20 28 24 6d 61 74 63 68 65 73 5b 33 5d 20 2b 20 31 29 20 2e 20 27 2e 30 2d 64 65 76 27 3b ...($matches[3].+.1)...'.0-dev';
486e0 0a 24 6c 6f 77 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 .$lowVersion.=.$matches[1]...'.'
48700 20 2e 20 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 ...$matches[2]...'.'...$matches[
48720 33 5d 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 3]..'.'...$matches[4];.}.elseif.
48740 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d (isset($matches[3]).&&.''.!==.$m
48760 61 74 63 68 65 73 5b 33 5d 29 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 atches[3]).{.$highVersion.=.$mat
48780 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 74 63 68 65 73 5b 32 5d 20 2b 20 31 ches[1]...'.'...($matches[2].+.1
487a0 29 20 2e 20 27 2e 30 2e 30 2d 64 65 76 27 3b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d )...'.0.0-dev';.$lowVersion.=.$m
487c0 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 5d 20 2e 20 atches[1]...'.'...$matches[2]...
487e0 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 2e 20 27 2e 30 27 3b 0a 7d 20 65 6c 73 65 20 '.'...$matches[3]..'.0';.}.else.
48800 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 2b 20 {.$highVersion.=.($matches[1].+.
48820 31 29 20 2e 20 27 2e 30 2e 30 2e 30 2d 64 65 76 27 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 1)...'.0.0.0-dev';.if.(isset($ma
48840 74 63 68 65 73 5b 32 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 tches[2]).&&.''.!==.$matches[2])
48860 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 31 5d 20 2e 20 27 .{.$lowVersion.=.$matches[1]...'
48880 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 30 2e 30 27 3b 0a 7d 20 65 6c 73 .'...$matches[2]...'.0.0';.}.els
488a0 65 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 31 5d 20 2e 20 e.{.$lowVersion.=.$matches[1]...
488c0 27 2e 30 2e 30 2e 30 27 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 '.0.0.0';.}.}..if.(!empty($match
488e0 65 73 5b 35 5d 29 29 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 es[5])).{.$lowVersion..=.'-'...$
48900 74 68 69 73 2d 3e 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 65 73 5b 35 this->expandStability($matches[5
48920 5d 29 20 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 36 5d 29 20 3f 20 24 6d 61 74 ])...(!empty($matches[6]).?.$mat
48940 63 68 65 73 5b 36 5d 20 3a 20 27 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 ches[6].:.'');.}..if.(!empty($ma
48960 74 63 68 65 73 5b 37 5d 29 29 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 tches[7])).{.$lowVersion..=.'-de
48980 76 27 3b 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 v';.}..return.array(.new.Version
489a0 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 2c 0a 6e Constraint('>=',.$lowVersion),.n
489c0 65 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 ew.VersionConstraint('<',.$highV
489e0 65 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 ersion),.);.}....if.(preg_match(
48a00 27 7b 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 '{^(\d+)(?:\.(\d+))?(?:\.(\d+))?
48a20 5c 2e 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 \.[x*]$}',.$constraint,.$matches
48a40 29 29 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 )).{.if.(isset($matches[3])).{.$
48a60 68 69 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 highVersion.=.$matches[1]...'.'.
48a80 2e 20 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 ..$matches[2]...'.'...$matches[3
48aa0 5d 20 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 ]...'.9999999';.if.($matches[3].
48ac0 3d 3d 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 ===.'0').{.$lowVersion.=.$matche
48ae0 73 5b 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 s[1]...'.'...($matches[2].-.1)..
48b00 20 27 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 .'.9999999.9999999';.}.else.{.$l
48b20 6f 77 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 owVersion.=.$matches[1]...'.'...
48b40 24 6d 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 $matches[2]...'.'...($matches[3]
48b60 20 2d 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 .-.1)..'.9999999';.}.}.elseif.(i
48b80 73 73 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 sset($matches[2])).{.$highVersio
48ba0 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 61 74 63 68 65 73 n.=.$matches[1]...'.'...$matches
48bc0 5b 32 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 [2]...'.9999999.9999999';.if.($m
48be0 61 74 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 atches[2].===.'0').{.$lowVersion
48c00 20 3d 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 .=.($matches[1].-.1)...'.9999999
48c20 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
48c40 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 28 24 Version.=.$matches[1]...'.'...($
48c60 6d 61 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 matches[2].-.1)...'.9999999.9999
48c80 39 39 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 999';.}.}.else.{.$highVersion.=.
48ca0 24 6d 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 $matches[1]...'.9999999.9999999.
48cc0 39 39 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 9999999';.if.($matches[1].===.'0
48ce0 27 29 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 ').{.return.array(new.VersionCon
48d00 73 74 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 straint('<',.$highVersion));.}.e
48d20 6c 73 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 lse.{.$lowVersion.=.($matches[1]
48d40 20 2d 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 .-.1)...'.9999999.9999999.999999
48d60 39 27 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 9';.}.}..return.array(.new.Versi
48d80 6f 6e 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 onConstraint('>',.$lowVersion),.
48da0 6e 65 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 new.VersionConstraint('<',.$high
48dc0 56 65 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 Version),.);.}....if.(preg_match
48de0 28 27 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 ('{^(<>|!=|>=?|<=?|==?)?\s*(.*)}
48e00 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 20 7b 0a 74 72 79 ',.$constraint,.$matches)).{.try
48e20 20 7b 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 .{.$version.=.$this->normalize($
48e40 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 73 74 61 62 69 6c matches[2]);..if.(!empty($stabil
48e60 69 74 79 4d 6f 64 69 66 69 65 72 29 20 26 26 20 24 74 68 69 73 2d 3e 70 61 72 73 65 53 74 61 62 ityModifier).&&.$this->parseStab
48e80 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 20 3d 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a ility($version).===.'stable').{.
48ea0 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 $version..=.'-'...$stabilityModi
48ec0 66 69 65 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3c 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 fier;.}.elseif.('<'.===.$matches
48ee0 5b 31 5d 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 2d 73 74 61 62 6c 65 [1]).{.if.(!preg_match('/-stable
48f00 24 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 29 20 7b $/',.strtolower($matches[2]))).{
48f20 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e .$version..=.'-dev';.}.}..return
48f40 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6d 61 .array(new.VersionConstraint($ma
48f60 74 63 68 65 73 5b 31 5d 20 3f 3a 20 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d 20 63 tches[1].?:.'=',.$version));.}.c
48f80 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 20 7d 0a 7d 0a 0a 24 6d 65 73 atch.(\Exception.$e).{.}.}..$mes
48fa0 73 61 67 65 20 3d 20 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 sage.=.'Could.not.parse.version.
48fc0 63 6f 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 69 66 20 28 69 73 constraint.'.$constraint;.if.(is
48fe0 73 65 74 28 24 65 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 27 3a 20 27 2e 24 65 2d 3e set($e)).{.$message..=.':.'.$e->
49000 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 getMessage();.}..throw.new.\Unex
49020 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a pectedValueException($message);.
49040 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 61 6e 64 53 74 61 62 69 6c }..private.function.expandStabil
49060 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 ity($stability).{.$stability.=.s
49080 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 73 77 69 74 63 68 20 28 trtolower($stability);..switch.(
490a0 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 61 73 65 20 27 61 27 3a 0a 72 65 74 75 72 6e 20 27 $stability).{.case.'a':.return.'
490c0 61 6c 70 68 61 27 3b 0a 63 61 73 65 20 27 62 27 3a 0a 72 65 74 75 72 6e 20 27 62 65 74 61 27 3b alpha';.case.'b':.return.'beta';
490e0 0a 63 61 73 65 20 27 70 27 3a 0a 63 61 73 65 20 27 70 6c 27 3a 0a 72 65 74 75 72 6e 20 27 70 61 .case.'p':.case.'pl':.return.'pa
49100 74 63 68 27 3b 0a 63 61 73 65 20 27 72 63 27 3a 0a 72 65 74 75 72 6e 20 27 52 43 27 3b 0a 64 65 tch';.case.'rc':.return.'RC';.de
49120 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 0a fault:.return.$stability;.}.}...
49140 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4e 61 6d 65 56 65 .....public.function.parseNameVe
49160 72 73 69 6f 6e 50 61 69 72 73 28 61 72 72 61 79 20 24 70 61 69 72 73 29 0a 7b 0a 24 70 61 69 72 rsionPairs(array.$pairs).{.$pair
49180 73 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 70 61 69 72 73 29 3b 0a 24 72 65 73 75 6c s.=.array_values($pairs);.$resul
491a0 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 63 6f 75 6e t.=.array();..for.($i.=.0,.$coun
491c0 74 20 3d 20 63 6f 75 6e 74 28 24 70 61 69 72 73 29 3b 20 24 69 20 3c 20 24 63 6f 75 6e 74 3b 20 t.=.count($pairs);.$i.<.$count;.
491e0 24 69 2b 2b 29 20 7b 0a 24 70 61 69 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e $i++).{.$pair.=.preg_replace('{^
49200 28 5b 5e 3d 3a 20 5d 2b 29 5b 3d 3a 20 5d 28 2e 2a 29 24 7d 27 2c 20 27 24 31 20 24 32 27 2c 20 ([^=:.]+)[=:.](.*)$}',.'$1.$2',.
49220 74 72 69 6d 28 24 70 61 69 72 73 5b 24 69 5d 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d trim($pairs[$i]));.if.(false.===
49240 20 73 74 72 70 6f 73 28 24 70 61 69 72 2c 20 27 20 27 29 20 26 26 20 69 73 73 65 74 28 24 70 61 .strpos($pair,.'.').&&.isset($pa
49260 69 72 73 5b 24 69 2b 31 5d 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 irs[$i+1]).&&.false.===.strpos($
49280 70 61 69 72 73 5b 24 69 2b 31 5d 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 69 72 20 2e 3d 20 27 20 pairs[$i+1],.'/')).{.$pair..=.'.
492a0 27 2e 24 70 61 69 72 73 5b 24 69 2b 31 5d 3b 0a 24 69 2b 2b 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 '.$pairs[$i+1];.$i++;.}..if.(str
492c0 70 6f 73 28 24 70 61 69 72 2c 20 27 20 27 29 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 pos($pair,.'.')).{.list($name,.$
492e0 76 65 72 73 69 6f 6e 29 20 3d 20 65 78 70 6c 6f 64 65 28 22 20 22 2c 20 24 70 61 69 72 2c 20 32 version).=.explode(".",.$pair,.2
49300 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 );.$result[].=.array('name'.=>.$
49320 6e 61 6d 65 2c 20 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 name,.'version'.=>.$version);.}.
49340 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 else.{.$result[].=.array('name'.
49360 3d 3e 20 24 70 61 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a =>.$pair);.}.}..return.$result;.
49380 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
493a0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 omposer\Package;.......interface
493c0 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 .CompletePackageInterface.extend
493e0 73 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 s.PackageInterface.{......public
49400 20 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 0a 0a .function.getScripts();.........
49420 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 69 65 73 28 public.function.getRepositories(
49440 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 4c 69 63 65 );.......public.function.getLice
49460 6e 73 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 nse();.......public.function.get
49480 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 63 74 69 6f Keywords();.......public.functio
494a0 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 62 6c 69 63 n.getDescription();.......public
494c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a .function.getHomepage();........
494e0 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 29 3b 0a 0a .public.function.getAuthors();..
49500 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 70 70 6f 72 74 28 .....public.function.getSupport(
49520 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 73 70 61 63 65 20 );.}.<?php............namespace.
49540 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 Composer\Package;.......interfac
49560 65 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 43 e.RootPackageInterface.extends.C
49580 6f 6d 70 6c 65 74 65 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 ompletePackageInterface.{......p
495a0 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 3b 0a 0a 0a 0a ublic.function.getAliases();....
495c0 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
495e0 62 69 6c 69 74 79 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 bility();.........public.functio
49600 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 n.getStabilityFlags();.........p
49620 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 28 29 3b 0a ublic.function.getReferences();.
49640 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 72 65 66 65 72 53 ......public.function.getPreferS
49660 74 61 62 6c 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 73 table();.......public.function.s
49680 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 29 3b 0a 0a 0a 0a etRequires(array.$requires);....
496a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 ...public.function.setDevRequire
496c0 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 73 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a s(array.$devRequires);.}.<?php..
496e0 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
49700 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 20 65 78 kage;.......class.RootPackage.ex
49720 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 tends.CompletePackage.implements
49740 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 .RootPackageInterface.{.protecte
49760 64 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 3b 0a d.$minimumStability.=.'stable';.
49780 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 66 61 6c 73 65 3b protected.$preferStable.=.false;
497a0 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 20 3d 20 61 72 72 .protected.$stabilityFlags.=.arr
497c0 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 ay();.protected.$references.=.ar
497e0 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 3d 20 61 72 72 61 ray();.protected.$aliases.=.arra
49800 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 20 73 65 74 4d 69 y();.......public.function.setMi
49820 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 nimumStability($minimumStability
49840 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 6d ).{.$this->minimumStability.=.$m
49860 69 6e 69 6d 75 6d 53 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 inimumStability;.}.....public.fu
49880 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 72 nction.getMinimumStability().{.r
498a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d eturn.$this->minimumStability;.}
498c0 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 53 74 61 62 69 6c .......public.function.setStabil
498e0 69 74 79 46 6c 61 67 73 28 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 0a ityFlags(array.$stabilityFlags).
49900 7b 0a 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 {.$this->stabilityFlags.=.$stabi
49920 6c 69 74 79 46 6c 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 lityFlags;.}.....public.function
49940 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 .getStabilityFlags().{.return.$t
49960 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 his->stabilityFlags;.}.......pub
49980 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 24 70 72 lic.function.setPreferStable($pr
499a0 65 66 65 72 53 74 61 62 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c eferStable).{.$this->preferStabl
499c0 65 20 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 e.=.$preferStable;.}.....public.
499e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 0a 7b 0a 72 65 74 function.getPreferStable().{.ret
49a00 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a urn.$this->preferStable;.}......
49a20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 61 .public.function.setReferences(a
49a40 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 66 65 72 rray.$references).{.$this->refer
49a60 65 6e 63 65 73 20 3d 20 24 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ences.=.$references;.}.....publi
49a80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 c.function.getReferences().{.ret
49aa0 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 urn.$this->references;.}.......p
49ac0 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.
49ae0 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
49b00 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
49b20 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
49b40 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 61 63 s;.}.}.<?php............namespac
49b60 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 e.Composer\Package\Archiver;..us
49b80 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
49ba0 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 41 72 63 68 69 76 65 72 49 6e 74 ace;.......interface.ArchiverInt
49bc0 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 erface.{...........public.functi
49be0 6f 6e 20 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 73 2c 20 24 74 61 72 67 65 74 2c 20 24 66 on.archive($sources,.$target,.$f
49c00 6f 72 6d 61 74 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 20 3d 20 61 72 72 61 79 28 29 ormat,.array.$excludes.=.array()
49c20 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 75 70 70 );..........public.function.supp
49c40 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 73 6f 75 72 63 65 54 79 70 65 29 3b 0a 7d 0a 3c 3f orts($format,.$sourceType);.}.<?
49c60 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
49c80 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 r\Package\Archiver;.......class.
49ca0 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 ComposerExcludeFilter.extends.Ba
49cc0 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e seExcludeFilter.{.....public.fun
49ce0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 2c 20 61 ction.__construct($sourcePath,.a
49d00 72 72 61 79 20 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f rray.$excludeRules).{.parent::__
49d20 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 65 construct($sourcePath);.$this->e
49d40 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 xcludePatterns.=.$this->generate
49d60 50 61 74 74 65 72 6e 73 28 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 Patterns($excludeRules);.}.}.<?p
49d80 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
49da0 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 \Package\Archiver;..use.Composer
49dc0 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 6f 73 \Package\BasePackage;.use.Compos
49de0 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 0a 0a 0a er\Package\PackageInterface;....
49e00 0a 0a 0a 63 6c 61 73 73 20 50 68 61 72 41 72 63 68 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 ...class.PharArchiver.implements
49e20 20 41 72 63 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 73 .ArchiverInterface.{.protected.s
49e40 74 61 74 69 63 20 24 66 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a 27 7a 69 70 27 20 3d 3e tatic.$formats.=.array(.'zip'.=>
49e60 20 5c 50 68 61 72 3a 3a 5a 49 50 2c 0a 27 74 61 72 27 20 3d 3e 20 5c 50 68 61 72 3a 3a 54 41 52 .\Phar::ZIP,.'tar'.=>.\Phar::TAR
49e80 2c 0a 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 ,.);.....public.function.archive
49ea0 28 24 73 6f 75 72 63 65 73 2c 20 24 74 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 61 72 72 ($sources,.$target,.$format,.arr
49ec0 61 79 20 24 65 78 63 6c 75 64 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 6f 75 72 63 ay.$excludes.=.array()).{.$sourc
49ee0 65 73 20 3d 20 72 65 61 6c 70 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a 0a 20 69 66 20 28 es.=.realpath($sources);....if.(
49f00 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 61 72 67 65 74 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 file_exists($target)).{.unlink($
49f20 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 target);.}..try.{.$phar.=.new.\P
49f40 68 61 72 44 61 74 61 28 24 74 61 72 67 65 74 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 harData($target,.null,.null,.sta
49f60 74 69 63 3a 3a 24 66 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 24 66 69 6c 65 73 20 tic::$formats[$format]);.$files.
49f80 3d 20 6e 65 77 20 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 28 24 73 6f 75 =.new.ArchivableFilesFinder($sou
49fa0 72 63 65 73 2c 20 24 65 78 63 6c 75 64 65 73 29 3b 0a 24 70 68 61 72 2d 3e 62 75 69 6c 64 46 72 rces,.$excludes);.$phar->buildFr
49fc0 6f 6d 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 73 29 3b 0a 72 65 omIterator($files,.$sources);.re
49fe0 74 75 72 6e 20 24 74 61 72 67 65 74 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 turn.$target;.}.catch.(\Unexpect
4a000 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 edValueException.$e).{.$message.
4a020 3d 20 73 70 72 69 6e 74 66 28 22 43 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 72 63 68 =.sprintf("Could.not.create.arch
4a040 69 76 65 20 27 25 73 27 20 66 72 6f 6d 20 27 25 73 27 3a 20 25 73 22 2c 0a 24 74 61 72 67 65 74 ive.'%s'.from.'%s':.%s",.$target
4a060 2c 0a 24 73 6f 75 72 63 65 73 2c 0a 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a ,.$sources,.$e->getMessage().);.
4a080 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 24 6d 65 .throw.new.\RuntimeException($me
4a0a0 73 73 61 67 65 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a ssage,.$e->getCode(),.$e);.}.}..
4a0c0 0a 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 66 6f 72 ...public.function.supports($for
4a0e0 6d 61 74 2c 20 24 73 6f 75 72 63 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 mat,.$sourceType).{.return.isset
4a100 28 73 74 61 74 69 63 3a 3a 24 66 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 7d 0a 7d (static::$formats[$format]);.}.}
4a120 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
4a140 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 oser\Package\Archiver;..use.Symf
4a160 6f 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 61 62 73 74 72 61 ony\Component\Finder;.....abstra
4a180 63 74 20 63 6c 61 73 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a ct.class.BaseExcludeFilter.{....
4a1a0 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 50 61 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 protected.$sourcePath;.....prote
4a1c0 63 74 65 64 20 24 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 cted.$excludePatterns;.....publi
4a1e0 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 6f 75 72 63 65 50 61 c.function.__construct($sourcePa
4a200 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 50 61 74 68 20 3d 20 24 73 6f 75 72 63 th).{.$this->sourcePath.=.$sourc
4a220 65 50 61 74 68 3b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 ePath;.$this->excludePatterns.=.
4a240 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e array();.}............public.fun
4a260 63 74 69 6f 6e 20 66 69 6c 74 65 72 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 65 78 63 ction.filter($relativePath,.$exc
4a280 6c 75 64 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 lude).{.foreach.($this->excludeP
4a2a0 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 44 61 74 61 29 20 7b 0a 6c 69 73 74 28 atterns.as.$patternData).{.list(
4a2c0 24 70 61 74 74 65 72 6e 2c 20 24 6e 65 67 61 74 65 2c 20 24 73 74 72 69 70 4c 65 61 64 69 6e 67 $pattern,.$negate,.$stripLeading
4a2e0 53 6c 61 73 68 29 20 3d 20 24 70 61 74 74 65 72 6e 44 61 74 61 3b 0a 0a 69 66 20 28 24 73 74 72 Slash).=.$patternData;..if.($str
4a300 69 70 4c 65 61 64 69 6e 67 53 6c 61 73 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 ipLeadingSlash).{.$path.=.substr
4a320 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 ($relativePath,.1);.}.else.{.$pa
4a340 74 68 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f th.=.$relativePath;.}..if.(preg_
4a360 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 24 65 78 63 6c 75 match($pattern,.$path)).{.$exclu
4a380 64 65 20 3d 20 21 24 6e 65 67 61 74 65 3b 0a 7d 0a 7d 0a 72 65 74 75 72 6e 20 24 65 78 63 6c 75 de.=.!$negate;.}.}.return.$exclu
4a3a0 64 65 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 de;.}..........protected.functio
4a3c0 6e 20 70 61 72 73 65 4c 69 6e 65 73 28 61 72 72 61 79 20 24 6c 69 6e 65 73 2c 20 24 6c 69 6e 65 n.parseLines(array.$lines,.$line
4a3e0 50 61 72 73 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 0a 61 Parser).{.return.array_filter(.a
4a400 72 72 61 79 5f 6d 61 70 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 75 73 65 20 28 rray_map(.function.($line).use.(
4a420 24 6c 69 6e 65 50 61 72 73 65 72 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e $lineParser).{.$line.=.trim($lin
4a440 65 29 3b 0a 0a 24 63 6f 6d 6d 65 6e 74 48 61 73 68 20 3d 20 73 74 72 70 6f 73 28 24 6c 69 6e 65 e);..$commentHash.=.strpos($line
4a460 2c 20 27 23 27 29 3b 0a 69 66 20 28 24 63 6f 6d 6d 65 6e 74 48 61 73 68 20 21 3d 3d 20 66 61 6c ,.'#');.if.($commentHash.!==.fal
4a480 73 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 73 75 62 73 74 72 28 24 6c 69 6e 65 2c 20 30 2c 20 24 se).{.$line.=.substr($line,.0,.$
4a4a0 63 6f 6d 6d 65 6e 74 48 61 73 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 commentHash);.}..if.($line).{.re
4a4c0 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 6c 69 6e 65 50 61 72 73 65 72 2c turn.call_user_func($lineParser,
4a4e0 20 24 6c 69 6e 65 29 3b 0a 7d 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 2c 20 24 6c 69 6e 65 .$line);.}.return.null;.},.$line
4a500 73 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 74 74 65 72 6e 29 20 7b 0a 72 65 74 75 72 6e s),.function.($pattern).{.return
4a520 20 24 70 61 74 74 65 72 6e 20 21 3d 3d 20 6e 75 6c 6c 3b 0a 7d 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a .$pattern.!==.null;.}.);.}......
4a540 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 74 65 50 61 ...protected.function.generatePa
4a560 74 74 65 72 6e 73 28 24 72 75 6c 65 73 29 0a 7b 0a 24 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 tterns($rules).{.$patterns.=.arr
4a580 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 ay();.foreach.($rules.as.$rule).
4a5a0 7b 0a 24 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 {.$patterns[].=.$this->generateP
4a5c0 61 74 74 65 72 6e 28 24 72 75 6c 65 29 3b 0a 7d 0a 72 65 74 75 72 6e 20 24 70 61 74 74 65 72 6e attern($rule);.}.return.$pattern
4a5e0 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.
4a600 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 72 75 6c 65 29 0a 7b 0a 24 6e 65 67 61 74 65 generatePattern($rule).{.$negate
4a620 20 3d 20 66 61 6c 73 65 3b 0a 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 3b 0a 0a 69 66 20 28 73 .=.false;.$pattern.=.'#';..if.(s
4a640 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 26 26 20 24 72 75 6c 65 5b 30 5d 20 3d 3d 3d 20 27 21 27 trlen($rule).&&.$rule[0].===.'!'
4a660 29 20 7b 0a 24 6e 65 67 61 74 65 20 3d 20 74 72 75 65 3b 0a 24 72 75 6c 65 20 3d 20 73 75 62 73 ).{.$negate.=.true;.$rule.=.subs
4a680 74 72 28 24 72 75 6c 65 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 72 75 6c tr($rule,.1);.}..if.(strlen($rul
4a6a0 65 29 20 26 26 20 24 72 75 6c 65 5b 30 5d 20 3d 3d 3d 20 27 2f 27 29 20 7b 0a 24 70 61 74 74 65 e).&&.$rule[0].===.'/').{.$patte
4a6c0 72 6e 20 2e 3d 20 27 5e 2f 27 3b 0a 24 72 75 6c 65 20 3d 20 73 75 62 73 74 72 28 24 72 75 6c 65 rn..=.'^/';.$rule.=.substr($rule
4a6e0 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 ,.1);.}.elseif.(false.===.strpos
4a700 28 24 72 75 6c 65 2c 20 27 2f 27 29 20 7c 7c 20 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 2d 20 ($rule,.'/').||.strlen($rule).-.
4a720 31 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 75 6c 65 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 74 1.===.strpos($rule,.'/')).{.$pat
4a740 74 65 72 6e 20 2e 3d 20 27 2f 27 3b 0a 7d 0a 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 73 75 62 73 tern..=.'/';.}..$pattern..=.subs
4a760 74 72 28 46 69 6e 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 72 75 6c 65 29 2c 20 tr(Finder\Glob::toRegex($rule),.
4a780 32 2c 20 2d 32 29 3b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 20 2e 20 2,.-2);.return.array($pattern...
4a7a0 27 23 27 2c 20 24 6e 65 67 61 74 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a '#',.$negate,.false);.}.}.<?php.
4a7c0 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 61 ...........namespace.Composer\Pa
4a7e0 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 ckage\Archiver;.........class.Gi
4a800 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 tExcludeFilter.extends.BaseExclu
4a820 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 deFilter.{......public.function.
4a840 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 72 65 6e __construct($sourcePath).{.paren
4a860 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 69 66 t::__construct($sourcePath);..if
4a880 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 .(file_exists($sourcePath.'/.git
4a8a0 69 67 6e 6f 72 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 ignore')).{.$this->excludePatter
4a8c0 6e 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f ns.=.$this->parseLines(.file($so
4a8e0 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 79 28 24 urcePath.'/.gitignore'),.array($
4a900 74 68 69 73 2c 20 27 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 3b 0a 7d this,.'parseGitIgnoreLine').);.}
4a920 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e .if.(file_exists($sourcePath.'/.
4a940 67 69 74 61 74 74 72 69 62 75 74 65 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 gitattributes')).{.$this->exclud
4a960 65 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e ePatterns.=.array_merge(.$this->
4a980 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e excludePatterns,.$this->parseLin
4a9a0 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 74 74 72 69 es(.file($sourcePath.'/.gitattri
4a9c0 62 75 74 65 73 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 47 69 74 41 butes'),.array($this,.'parseGitA
4a9e0 74 74 72 69 62 75 74 65 73 4c 69 6e 65 27 29 0a 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ttributesLine').));.}.}.........
4aa00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 public.function.parseGitIgnoreLi
4aa20 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 ne($line).{.return.$this->genera
4aa40 74 65 50 61 74 74 65 72 6e 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c tePattern($line);.}.........publ
4aa60 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 41 74 74 72 69 62 75 74 65 73 4c 69 ic.function.parseGitAttributesLi
4aa80 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 ne($line).{.$parts.=.preg_split(
4aaa0 27 23 5c 73 2b 23 27 2c 20 24 6c 69 6e 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 70 61 72 '#\s+#',.$line);..if.(count($par
4aac0 74 73 29 20 21 3d 20 32 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 ts).!=.2).{.return.null;.}..if.(
4aae0 24 70 61 72 74 73 5b 31 5d 20 3d 3d 3d 20 27 65 78 70 6f 72 74 2d 69 67 6e 6f 72 65 27 29 20 7b $parts[1].===.'export-ignore').{
4ab00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 .return.$this->generatePattern($
4ab20 70 61 72 74 73 5b 30 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a parts[0]);.}.}.}.<?php..........
4ab40 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 41 72 63 ..namespace.Composer\Package\Arc
4ab60 68 69 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 42 61 73 hiver;..use.Composer\Package\Bas
4ab80 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 65 5c 50 ePackage;.use.Composer\Package\P
4aba0 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
4abc0 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 il\Filesystem;..use.Symfony\Comp
4abe0 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 onent\Finder;..........class.Arc
4ac00 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 hivableFilesFinder.extends.\Filt
4ac20 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6e 64 65 erIterator.{....protected.$finde
4ac40 72 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 r;........public.function.__cons
4ac60 74 72 75 63 74 28 24 73 6f 75 72 63 65 73 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 29 truct($sources,.array.$excludes)
4ac80 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 0a 24 73 6f 75 .{.$fs.=.new.Filesystem();..$sou
4aca0 72 63 65 73 20 3d 20 24 66 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 73 6f 75 72 63 rces.=.$fs->normalizePath($sourc
4acc0 65 73 29 3b 0a 0a 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 0a 6e 65 77 20 48 67 45 78 es);..$filters.=.array(.new.HgEx
4ace0 63 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 72 63 65 73 29 2c 0a 6e 65 77 20 47 69 74 45 78 cludeFilter($sources),.new.GitEx
4ad00 63 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 72 63 65 73 29 2c 0a 6e 65 77 20 43 6f 6d 70 6f cludeFilter($sources),.new.Compo
4ad20 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 72 63 65 73 2c 20 24 65 78 63 6c serExcludeFilter($sources,.$excl
4ad40 75 64 65 73 29 2c 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 udes),.);..$this->finder.=.new.F
4ad60 69 6e 64 65 72 5c 46 69 6e 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 0a 2d 3e inder\Finder();.$this->finder.->
4ad80 69 6e 28 24 73 6f 75 72 63 65 73 29 0a 2d 3e 66 69 6c 74 65 72 28 66 75 6e 63 74 69 6f 6e 20 28 in($sources).->filter(function.(
4ada0 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 24 66 69 6c 65 29 20 75 73 65 20 28 24 73 6f 75 72 63 65 \SplFileInfo.$file).use.($source
4adc0 73 2c 20 24 66 69 6c 74 65 72 73 2c 20 24 66 73 29 20 7b 0a 24 72 65 6c 61 74 69 76 65 50 61 74 s,.$filters,.$fs).{.$relativePat
4ade0 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5e 27 2e 70 72 65 67 5f 71 75 6f 74 h.=.preg_replace(.'#^'.preg_quot
4ae00 65 28 24 73 6f 75 72 63 65 73 2c 20 27 23 27 29 2e 27 23 27 2c 0a 27 27 2c 0a 24 66 73 2d 3e 6e e($sources,.'#').'#',.'',.$fs->n
4ae20 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 ormalizePath($file->getRealPath(
4ae40 29 29 0a 29 3b 0a 0a 24 65 78 63 6c 75 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 )).);..$exclude.=.false;.foreach
4ae60 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 24 65 78 63 6c 75 64 .($filters.as.$filter).{.$exclud
4ae80 65 20 3d 20 24 66 69 6c 74 65 72 2d 3e 66 69 6c 74 65 72 28 24 72 65 6c 61 74 69 76 65 50 61 74 e.=.$filter->filter($relativePat
4aea0 68 2c 20 24 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 72 65 74 75 72 6e 20 21 24 65 78 63 6c 75 64 65 h,.$exclude);.}.return.!$exclude
4aec0 3b 0a 7d 29 0a 2d 3e 69 67 6e 6f 72 65 56 43 53 28 74 72 75 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 ;.}).->ignoreVCS(true).->ignoreD
4aee0 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 otFiles(false);..parent::__const
4af00 72 75 63 74 28 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 ruct($this->finder->getIterator(
4af20 29 29 3b 0a 7d 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 ));.}..public.function.accept().
4af40 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f {.return.!$this->getInnerIterato
4af60 72 28 29 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 69 73 44 69 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 r()->current()->isDir();.}.}.<?p
4af80 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
4afa0 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 \Package\Archiver;..use.Composer
4afc0 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 3b 0a 75 73 65 \Downloader\DownloadManager;.use
4afe0 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 5c .Composer\Factory;.use.Composer\
4b000 49 4f 5c 4e 75 6c 6c 49 4f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c IO\NullIO;.use.Composer\Package\
4b020 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 50 PackageInterface;.use.Composer\P
4b040 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ackage\RootPackage;.use.Composer
4b060 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 \Util\Filesystem;......class.Arc
4b080 68 69 76 65 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 hiveManager.{.protected.$downloa
4b0a0 64 4d 61 6e 61 67 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 63 68 69 76 65 72 73 20 dManager;..protected.$archivers.
4b0c0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 76 65 72 77 72 =.array();.....protected.$overwr
4b0e0 69 74 65 46 69 6c 65 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 iteFiles.=.true;.....public.func
4b100 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 tion.__construct(DownloadManager
4b120 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e .$downloadManager).{.$this->down
4b140 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a loadManager.=.$downloadManager;.
4b160 7d 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 63 68 69 76 65 }.....public.function.addArchive
4b180 72 28 41 72 63 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 72 63 68 69 76 65 72 29 0a 7b r(ArchiverInterface.$archiver).{
4b1a0 0a 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 72 73 5b 5d 20 3d 20 24 61 72 63 68 69 76 65 72 3b .$this->archivers[].=.$archiver;
4b1c0 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 4f 76 .}.........public.function.setOv
4b1e0 65 72 77 72 69 74 65 46 69 6c 65 73 28 24 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 29 0a 7b 0a erwriteFiles($overwriteFiles).{.
4b200 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 3d 20 24 6f 76 65 72 77 72 69 $this->overwriteFiles.=.$overwri
4b220 74 65 46 69 6c 65 73 3b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a teFiles;.return.$this;.}........
4b240 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 46 69 6c 65 6e .public.function.getPackageFilen
4b260 61 6d 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 ame(PackageInterface.$package).{
4b280 0a 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 28 70 72 65 67 5f 72 65 70 6c 61 63 65 .$nameParts.=.array(preg_replace
4b2a0 28 27 23 5b 5e 61 2d 7a 30 2d 39 2d 5f 2e 5d 23 69 27 2c 20 27 2d 27 2c 20 24 70 61 63 6b 61 67 ('#[^a-z0-9-_.]#i',.'-',.$packag
4b2c0 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 e->getName()));..if.(preg_match(
4b2e0 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 '{^[a-f0-9]{40}$}',.$package->ge
4b300 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a 24 6e 61 6d 65 50 61 72 74 73 20 tDistReference())).{.$nameParts.
4b320 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 61 72 72 61 79 28 =.array_merge($nameParts,.array(
4b340 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 2c 20 24 70 $package->getDistReference(),.$p
4b360 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 ackage->getDistType()));.}.else.
4b380 7b 0a 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 {.$nameParts.=.array_merge($name
4b3a0 50 61 72 74 73 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 Parts,.array($package->getPretty
4b3c0 56 65 72 73 69 6f 6e 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 Version(),.$package->getDistRefe
4b3e0 72 65 6e 63 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 rence()));.}..if.($package->getS
4b400 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 6e 61 6d 65 50 61 72 74 73 5b 5d ourceReference()).{.$nameParts[]
4b420 20 3d 20 73 75 62 73 74 72 28 73 68 61 31 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 .=.substr(sha1($package->getSour
4b440 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 2c 20 30 2c 20 36 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ceReference()),.0,.6);.}..return
4b460 20 69 6d 70 6c 6f 64 65 28 27 2d 27 2c 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6e 61 6d 65 .implode('-',.array_filter($name
4b480 50 61 72 74 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 0a 72 65 74 75 72 6e 20 21 65 Parts,.function.($p).{.return.!e
4b4a0 6d 70 74 79 28 24 70 29 3b 0a 7d 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 mpty($p);.}));.}...........publi
4b4c0 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 c.function.archive(PackageInterf
4b4e0 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 24 74 61 72 67 65 74 44 69 ace.$package,.$format,.$targetDi
4b500 72 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 66 6f 72 6d 61 74 29 29 20 7b 0a 74 68 72 6f 77 r).{.if.(empty($format)).{.throw
4b520 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('
4b540 46 6f 72 6d 61 74 20 6d 75 73 74 20 62 65 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 0a Format.must.be.specified');.}...
4b560 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 66 6f 72 65 61 63 68 .$usableArchiver.=.null;.foreach
4b580 20 28 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 72 73 20 61 73 20 24 61 72 63 68 69 76 65 72 29 .($this->archivers.as.$archiver)
4b5a0 20 7b 0a 69 66 20 28 24 61 72 63 68 69 76 65 72 2d 3e 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d .{.if.($archiver->supports($form
4b5c0 61 74 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 29 29 20 at,.$package->getSourceType())).
4b5e0 7b 0a 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 20 3d 20 24 61 72 63 68 69 76 65 72 3b 0a 62 {.$usableArchiver.=.$archiver;.b
4b600 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 75 73 61 62 6c reak;.}.}....if.(null.===.$usabl
4b620 65 41 72 63 68 69 76 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 eArchiver).{.throw.new.\RuntimeE
4b640 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4e 6f 20 61 72 63 68 69 76 65 72 20 66 6f xception(sprintf('No.archiver.fo
4b660 75 6e 64 20 74 6f 20 73 75 70 70 6f 72 74 20 25 73 20 66 6f 72 6d 61 74 27 2c 20 24 66 6f 72 6d und.to.support.%s.format',.$form
4b680 61 74 29 29 3b 0a 7d 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 at));.}..$filesystem.=.new.Files
4b6a0 79 73 74 65 6d 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 ystem();.$packageName.=.$this->g
4b6c0 65 74 50 61 63 6b 61 67 65 46 69 6c 65 6e 61 6d 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 etPackageFilename($package);....
4b6e0 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 79 45 78 69 73 $filesystem->ensureDirectoryExis
4b700 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 72 65 61 6c 70 61 ts($targetDir);.$target.=.realpa
4b720 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e th($targetDir).'/'.$packageName.
4b740 27 2e 27 2e 24 66 6f 72 6d 61 74 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 '.'.$format;.$filesystem->ensure
4b760 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 61 72 67 65 74 29 DirectoryExists(dirname($target)
4b780 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 26 );..if.(!$this->overwriteFiles.&
4b7a0 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 61 72 67 65 74 29 29 20 7b 0a 72 65 74 75 72 6e &.file_exists($target)).{.return
4b7c0 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e .$target;.}..if.($package.instan
4b7e0 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 29 20 7b 0a 24 73 6f 75 72 63 65 50 61 74 68 20 ceof.RootPackage).{.$sourcePath.
4b800 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 73 6f 75 =.realpath('.');.}.else.{...$sou
4b820 72 63 65 50 61 74 68 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 63 rcePath.=.sys_get_temp_dir().'/c
4b840 6f 6d 70 6f 73 65 72 5f 61 72 63 68 69 76 65 72 2f 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b omposer_archiver/'.$packageName;
4b860 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 79 45 78 69 .$filesystem->ensureDirectoryExi
4b880 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 77 6e sts($sourcePath);....$this->down
4b8a0 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 loadManager->download($package,.
4b8c0 24 73 6f 75 72 63 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 $sourcePath,.true);.}....return.
4b8e0 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 2d 3e 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 $usableArchiver->archive($source
4b900 50 61 74 68 2c 20 24 74 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 Path,.$target,.$format,.$package
4b920 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 ->getArchiveExcludes());.}.}.<?p
4b940 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
4b960 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c \Package\Archiver;..use.Symfony\
4b980 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 Component\Finder;.......class.Hg
4b9a0 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 64 ExcludeFilter.extends.BaseExclud
4b9c0 65 46 69 6c 74 65 72 0a 7b 0a 63 6f 6e 73 74 20 48 47 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 20 eFilter.{.const.HG_IGNORE_REGEX.
4b9e0 3d 20 31 3b 0a 63 6f 6e 73 74 20 48 47 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 20 3d 20 32 3b 0a 0a =.1;.const.HG_IGNORE_GLOB.=.2;..
4ba00 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 74 74 65 72 6e 4d 6f 64 65 3b 0a 0a 0a 0a 0a ....protected.$patternMode;.....
4ba20 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 73 ..public.function.__construct($s
4ba40 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 ourcePath).{.parent::__construct
4ba60 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f ($sourcePath);..$this->patternMo
4ba80 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 3b 0a 0a 69 66 20 de.=.self::HG_IGNORE_REGEX;..if.
4baa0 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 68 67 69 67 (file_exists($sourcePath.'/.hgig
4bac0 6e 6f 72 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 nore')).{.$this->excludePatterns
4bae0 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 .=.$this->parseLines(.file($sour
4bb00 63 65 50 61 74 68 2e 27 2f 2e 68 67 69 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 cePath.'/.hgignore'),.array($thi
4bb20 73 2c 20 27 70 61 72 73 65 48 67 49 67 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 3b 0a 7d 0a 7d 0a 0a s,.'parseHgIgnoreLine').);.}.}..
4bb40 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 48 67 49 67 .......public.function.parseHgIg
4bb60 6e 6f 72 65 4c 69 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 noreLine($line).{.if.(preg_match
4bb80 28 27 23 5e 73 79 6e 74 61 78 5c 73 2a 3a 5c 73 2a 28 67 6c 6f 62 7c 72 65 67 65 78 70 29 24 23 ('#^syntax\s*:\s*(glob|regexp)$#
4bba0 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 ',.$line,.$matches)).{.if.($matc
4bbc0 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 67 6c 6f 62 27 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 hes[1].===.'glob').{.$this->patt
4bbe0 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 3b 0a ernMode.=.self::HG_IGNORE_GLOB;.
4bc00 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 }.else.{.$this->patternMode.=.se
4bc20 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 3b 0a 7d 0a 72 65 74 75 72 6e 20 6e 75 lf::HG_IGNORE_REGEX;.}.return.nu
4bc40 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 3d ll;.}..if.($this->patternMode.==
4bc60 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 29 20 7b 0a 72 65 74 75 72 6e 20 .self::HG_IGNORE_GLOB).{.return.
4bc80 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 46 72 6f 6d 47 6c 6f 62 28 24 6c 69 6e 65 29 3b 0a 7d $this->patternFromGlob($line);.}
4bca0 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 46 72 6f .else.{.return.$this->patternFro
4bcc0 6d 52 65 67 65 78 28 24 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 mRegex($line);.}.}.........prote
4bce0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 74 74 65 72 6e 46 72 6f 6d 47 6c 6f 62 28 24 6c cted.function.patternFromGlob($l
4bd00 69 6e 65 29 0a 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 2e 73 75 62 73 74 72 28 46 69 6e ine).{.$pattern.=.'#'.substr(Fin
4bd20 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 6c 69 6e 65 29 2c 20 32 2c 20 2d 31 29 der\Glob::toRegex($line),.2,.-1)
4bd40 2e 27 23 27 3b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5b 5e .'#';.$pattern.=.str_replace('[^
4bd60 2f 5d 2a 27 2c 20 27 2e 2a 27 2c 20 24 70 61 74 74 65 72 6e 29 3b 0a 72 65 74 75 72 6e 20 61 72 /]*',.'.*',.$pattern);.return.ar
4bd80 72 61 79 28 24 70 61 74 74 65 72 6e 2c 20 66 61 6c 73 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a ray($pattern,.false,.true);.}...
4bda0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 74 74 65 72 6e 46 72 6f ......public.function.patternFro
4bdc0 6d 52 65 67 65 78 28 24 6c 69 6e 65 29 0a 7b 0a 0a 20 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 mRegex($line).{...$pattern.=.'#'
4bde0 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 28 3f 3a 5c 5c 5c 5c 5c 5c 5c 5c 29 2a 29 28 .preg_replace('/((?:\\\\\\\\)*)(
4be00 5c 5c 5c 5c 3f 29 23 2f 27 2c 20 27 5c 31 5c 32 5c 32 5c 5c 23 27 2c 20 24 6c 69 6e 65 29 2e 27 \\\\?)#/',.'\1\2\2\\#',.$line).'
4be20 23 27 3b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 2c 20 66 61 6c 73 65 #';.return.array($pattern,.false
4be40 2c 20 74 72 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 ,.true);.}.}.<?php............na
4be60 6d 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 mespace.Composer\Package;..use.C
4be80 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 56 omposer\Package\LinkConstraint\V
4bea0 65 72 73 69 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 ersionConstraint;.use.Composer\P
4bec0 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 3b 0a 0a 0a ackage\Version\VersionParser;...
4bee0 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 ..class.RootAliasPackage.extends
4bf00 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 6f 6f 74 50 61 63 .AliasPackage.implements.RootPac
4bf20 6b 61 67 65 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 kageInterface.{.public.function.
4bf40 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 __construct(RootPackageInterface
4bf60 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 .$aliasOf,.$version,.$prettyVers
4bf80 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 6c 69 61 ion).{.parent::__construct($alia
4bfa0 73 4f 66 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 3b 0a sOf,.$version,.$prettyVersion);.
4bfc0 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 73 65 73 }.....public.function.getAliases
4bfe0 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 41 ().{.return.$this->aliasOf->getA
4c000 6c 69 61 73 65 73 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 liases();.}.....public.function.
4c020 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 getMinimumStability().{.return.$
4c040 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 this->aliasOf->getMinimumStabili
4c060 74 79 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 65 74 53 ty();.}.....public.function.getS
4c080 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e tabilityFlags().{.return.$this->
4c0a0 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 7d 0a aliasOf->getStabilityFlags();.}.
4c0c0 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 66 65 72 65 6e 63 65 ....public.function.getReference
4c0e0 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 4f 66 2d 3e 67 65 74 s().{.return.$this->aliasOf->get
4c100 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 References();.}.....public.funct
4c120 69 6f 6e 20 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ion.getPreferStable().{.return.$
4c140 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 this->aliasOf->getPreferStable()
4c160 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 52 65 71 75 69 ;.}.....public.function.setRequi
4c180 72 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 res(array.$require).{.return.$th
4c1a0 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 24 72 65 71 75 69 72 is->aliasOf->setRequires($requir
4c1c0 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 73 65 74 44 65 76 e);.}.....public.function.setDev
4c1e0 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 65 29 0a 7b 0a 72 65 Requires(array.$devRequire).{.re
4c200 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 44 65 76 52 65 71 75 69 turn.$this->aliasOf->setDevRequi
4c220 72 65 73 28 24 64 65 76 52 65 71 75 69 72 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 res($devRequire);.}..public.func
4c240 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6c 6f 6e 65 tion.__clone().{.parent::__clone
4c260 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 ();.$this->aliasOf.=.clone.$this
4c280 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ->aliasOf;.}.}.<?php............
4c2a0 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 3b 0a 0a 75 73 65 namespace.Composer\Package;..use
4c2c0 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 73 69 6f .Composer\Package\Version\Versio
4c2e0 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 20 65 78 74 nParser;.......class.Package.ext
4c300 65 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 ends.BasePackage.{.protected.$ty
4c320 70 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 pe;.protected.$targetDir;.protec
4c340 74 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 ted.$installationSource;.protect
4c360 65 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 ed.$sourceType;.protected.$sourc
4c380 65 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 eUrl;.protected.$sourceReference
4c3a0 3b 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 ;.protected.$distType;.protected
4c3c0 20 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 .$distUrl;.protected.$distRefere
4c3e0 6e 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 nce;.protected.$distSha1Checksum
4c400 3b 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 ;.protected.$version;.protected.
4c420 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 72 65 6c 65 61 $prettyVersion;.protected.$relea
4c440 73 65 44 61 74 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 74 72 61 20 3d 20 61 72 72 61 79 seDate;.protected.$extra.=.array
4c460 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 ();.protected.$binaries.=.array(
4c480 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 );.protected.$dev;.protected.$st
4c4a0 61 62 69 6c 69 74 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e ability;.protected.$notification
4c4c0 55 72 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 Url;..protected.$requires.=.arra
4c4e0 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 6c 69 63 74 73 20 3d 20 61 72 72 61 y();.protected.$conflicts.=.arra
4c500 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 20 3d 20 61 72 72 61 79 y();.protected.$provides.=.array
4c520 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 ();.protected.$replaces.=.array(
4c540 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 );.protected.$devRequires.=.arra
4c560 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 y();.protected.$suggests.=.array
4c580 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 6f 6c 6f 61 64 20 3d 20 61 72 72 61 79 28 ();.protected.$autoload.=.array(
4c5a0 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 );.protected.$includePaths.=.arr
4c5c0 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 ay();.protected.$archiveExcludes
4c5e0 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 63 20 66 75 6e 63 74 .=.array();.........public.funct
4c600 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 65 72 73 69 6f 6e 2c ion.__construct($name,.$version,
4c620 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 3a 3a 5f 5f 63 6f 6e .$prettyVersion).{.parent::__con
4c640 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 72 73 69 6f 6e 20 3d struct($name);..$this->version.=
4c660 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 65 72 73 69 6f 6e 20 .$version;.$this->prettyVersion.
4c680 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 3e 73 74 61 62 69 6c =.$prettyVersion;..$this->stabil
4c6a0 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 53 74 61 62 69 6c ity.=.VersionParser::parseStabil
4c6c0 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 3d 20 24 74 68 69 ity($version);.$this->dev.=.$thi
4c6e0 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 0a 0a 0a 0a 0a 70 75 s->stability.===.'dev';.}.....pu
4c700 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 65 74 75 72 6e 20 24 blic.function.isDev().{.return.$
4c720 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 75 6e 63 74 69 6f 6e this->dev;.}.....public.function
4c740 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 74 79 70 65 20 3d 20 .setType($type).{.$this->type.=.
4c760 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 65 74 $type;.}.....public.function.get
4c780 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 70 65 20 3f 3a 20 27 Type().{.return.$this->type.?:.'
4c7a0 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 6e 63 74 69 6f 6e 20 library';.}.....public.function.
4c7c0 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 2d 3e 73 getStability().{.return.$this->s
4c7e0 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 6f 6e 20 tability;.}.....public.function.
4c800 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 7b 0a 24 74 68 69 73 setTargetDir($targetDir).{.$this
4c820 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 0a 7d 0a 0a 0a 0a 0a ->targetDir.=.$targetDir;.}.....
4c840 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 44 69 72 28 29 0a 7b public.function.getTargetDir().{
4c860 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 29 20 .if.(null.===.$this->targetDir).
4c880 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6c 74 72 69 6d 28 70 72 65 67 5f 72 {.return;.}..return.ltrim(preg_r
4c8a0 65 70 6c 61 63 65 28 27 7b 20 28 3f 3a 5e 7c 5b 5c 5c 5c 5c 2f 5d 2b 29 20 5c 2e 5c 2e 3f 20 28 eplace('{.(?:^|[\\\\/]+).\.\.?.(
4c8c0 3f 3a 5b 5c 5c 5c 5c 2f 5d 2b 7c 24 29 20 28 3f 3a 5c 2e 5c 2e 3f 20 28 3f 3a 5b 5c 5c 5c 5c 2f ?:[\\\\/]+|$).(?:\.\.?.(?:[\\\\/
4c8e0 5d 2b 7c 24 29 20 29 2a 7d 78 27 2c 20 27 2f 27 2c 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 ]+|$).)*}x',.'/',.$this->targetD
4c900 69 72 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 6f 6e ir),.'/');.}.....public.function
4c920 20 73 65 74 45 78 74 72 61 28 61 72 72 61 79 20 24 65 78 74 72 61 29 0a 7b 0a 24 74 68 69 73 2d .setExtra(array.$extra).{.$this-
4c940 3e 65 78 74 72 61 20 3d 20 24 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 >extra.=.$extra;.}.....public.fu
4c960 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 nction.getExtra().{.return.$this
4c980 2d 3e 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 73 ->extra;.}.....public.function.s
4c9a0 65 74 42 69 6e 61 72 69 65 73 28 61 72 72 61 79 20 24 62 69 6e 61 72 69 65 73 29 0a 7b 0a 24 74 etBinaries(array.$binaries).{.$t
4c9c0 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 20 3d 20 24 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a 0a his->binaries.=.$binaries;.}....
4c9e0 0a 70 75 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 0a 7b .public.function.getBinaries().{
4ca00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 .return.$this->binaries;.}.....p
4ca20 75 62 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 ublic.function.setInstallationSo
4ca40 75 72 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 urce($type).{.$this->installatio
4ca60 6e 53 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 nSource.=.$type;.}.....public.fu
4ca80 6e 63 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 nction.getInstallationSource().{
4caa0 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 6f 6e 53 6f 75 72 63 .return.$this->installationSourc
4cac0 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 53 6f 75 72 e;.}.....public.function.setSour
4cae0 63 65 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 ceType($type).{.$this->sourceTyp
4cb00 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 69 6f 6e e.=.$type;.}.....public.function
4cb20 20 67 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 .getSourceType().{.return.$this-
4cb40 3e 73 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 >sourceType;.}.....public.functi
4cb60 6f 6e 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 on.setSourceUrl($url).{.$this->s
4cb80 6f 75 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 ourceUrl.=.$url;.}.....public.fu
4cba0 6e 63 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 nction.getSourceUrl().{.return.$
4cbc0 74 68 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 this->sourceUrl;.}.....public.fu
4cbe0 6e 63 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 nction.setSourceReference($refer
4cc00 65 6e 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 ence).{.$this->sourceReference.=
4cc20 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
4cc40 6f 6e 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 on.getSourceReference().{.return
4cc60 20 24 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 .$this->sourceReference;.}.....p
4cc80 75 62 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 ublic.function.setDistType($type
4cca0 29 0a 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 ).{.$this->distType.=.$type;.}..
4ccc0 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 54 79 70 65 28 29 ...public.function.getDistType()
4cce0 0a 7b 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 .{.return.$this->distType;.}....
4cd00 0a 70 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 .public.function.setDistUrl($url
4cd20 29 0a 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 ).{.$this->distUrl.=.$url;.}....
4cd40 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 7b 0a .public.function.getDistUrl().{.
4cd60 72 65 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 return.$this->distUrl;.}.....pub
4cd80 6c 69 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 lic.function.setDistReference($r
4cda0 65 66 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 eference).{.$this->distReference
4cdc0 20 3d 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 .=.$reference;.}.....public.func
4cde0 74 69 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 tion.getDistReference().{.return
4ce00 20 24 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 .$this->distReference;.}.....pub
4ce20 6c 69 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 lic.function.setDistSha1Checksum
4ce40 28 24 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 ($sha1checksum).{.$this->distSha
4ce60 31 43 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 1Checksum.=.$sha1checksum;.}....
4ce80 0a 70 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 .public.function.getDistSha1Chec
4cea0 6b 73 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 ksum().{.return.$this->distSha1C
4cec0 68 65 63 6b 73 75 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 hecksum;.}.....public.function.g
4cee0 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 72 73 etVersion().{.return.$this->vers
4cf00 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 50 72 ion;.}.....public.function.getPr
4cf20 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 70 72 ettyVersion().{.return.$this->pr
4cf40 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 6e 63 ettyVersion;.}.......public.func
4cf60 74 69 6f 6e 20 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 5c 44 61 74 65 54 69 6d 65 20 24 72 tion.setReleaseDate(\DateTime.$r
4cf80 65 6c 65 61 73 65 44 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 eleaseDate).{.$this->releaseDate
4cfa0 20 3d 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .=.$releaseDate;.}.....public.fu
4cfc0 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e nction.getReleaseDate().{.return
4cfe0 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 .$this->releaseDate;.}.......pub
4d000 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 72 72 61 79 20 24 lic.function.setRequires(array.$
4d020 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 73 20 3d 20 24 72 requires).{.$this->requires.=.$r
4d040 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
4d060 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 73 2d 3e 72 65 71 etRequires().{.return.$this->req
4d080 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 74 69 6f 6e 20 73 uires;.}.......public.function.s
4d0a0 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 74 73 29 0a 7b 0a etConflicts(array.$conflicts).{.
4d0c0 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 63 74 73 3b 0a 7d $this->conflicts.=.$conflicts;.}
4d0e0 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 66 6c 69 63 74 .....public.function.getConflict
4d100 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 63 74 73 3b 0a 7d s().{.return.$this->conflicts;.}
4d120 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 50 72 6f 76 69 64 .......public.function.setProvid
4d140 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 73 2d 3e 70 72 6f es(array.$provides).{.$this->pro
4d160 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 75 62 6c 69 63 20 vides.=.$provides;.}.....public.
4d180 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 65 74 75 72 6e 20 function.getProvides().{.return.
4d1a0 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 75 62 6c 69 63 20 $this->provides;.}.......public.
4d1c0 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 20 24 72 65 70 6c function.setReplaces(array.$repl
4d1e0 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 24 72 65 70 6c 61 aces).{.$this->replaces.=.$repla
4d200 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 20 67 65 74 52 65 ces;.}.....public.function.getRe
4d220 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 65 70 6c 61 63 65 places().{.return.$this->replace
4d240 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 44 65 s;.}.......public.function.setDe
4d260 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 65 73 29 0a 7b 0a vRequires(array.$devRequires).{.
4d280 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 65 71 75 69 72 65 $this->devRequires.=.$devRequire
4d2a0 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 44 65 76 52 s;.}.....public.function.getDevR
4d2c0 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 64 65 76 52 65 71 equires().{.return.$this->devReq
4d2e0 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 74 69 6f 6e 20 73 uires;.}.......public.function.s
4d300 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 29 0a 7b 0a 24 74 etSuggests(array.$suggests).{.$t
4d320 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 0a 7d 0a 0a 0a 0a his->suggests.=.$suggests;.}....
4d340 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 74 73 28 29 0a 7b .public.function.getSuggests().{
4d360 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 0a 0a 0a 0a 0a 0a .return.$this->suggests;.}......
4d380 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 61 64 28 61 72 72 .public.function.setAutoload(arr
4d3a0 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 6f 6c 6f 61 64 20 ay.$autoload).{.$this->autoload.
4d3c0 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 66 75 6e 63 74 69 =.$autoload;.}.....public.functi
4d3e0 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 24 74 68 69 73 2d on.getAutoload().{.return.$this-
4d400 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 66 75 6e 63 74 69 >autoload;.}.......public.functi
4d420 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 69 6e 63 6c 75 64 on.setIncludePaths(array.$includ
4d440 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 74 68 73 20 3d 20 ePaths).{.$this->includePaths.=.
4d460 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 63 20 66 75 6e 63 $includePaths;.}.....public.func
4d480 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 65 74 75 72 6e 20 tion.getIncludePaths().{.return.
4d4a0 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 0a 0a 0a 70 75 62 $this->includePaths;.}.......pub
4d4c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 lic.function.setNotificationUrl(
4d4e0 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 $notificationUrl).{.$this->notif
4d500 69 63 61 74 69 6f 6e 55 72 6c 20 3d 20 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 3b 0a 7d icationUrl.=.$notificationUrl;.}
4d520 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 6f 74 69 66 69 63 61 .....public.function.getNotifica
4d540 74 69 6f 6e 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 tionUrl().{.return.$this->notifi
4d560 63 61 74 69 6f 6e 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 cationUrl;.}.......public.functi
4d580 6f 6e 20 73 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 61 72 72 61 79 20 24 65 78 63 on.setArchiveExcludes(array.$exc
4d5a0 6c 75 64 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 20 ludes).{.$this->archiveExcludes.
4d5c0 3d 20 24 65 78 63 6c 75 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$excludes;.}.....public.functi
4d5e0 6f 6e 20 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e on.getArchiveExcludes().{.return
4d600 20 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 .$this->archiveExcludes;.}.}.<?p
4d620 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
4d640 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 67 65 5c \Package;..use.Composer\Package\
4d660 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 6e 74 LinkConstraint\VersionConstraint
4d680 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
4d6a0 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 6c 69 61 73 50 61 63 ersionParser;.....class.AliasPac
4d6c0 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 kage.extends.BasePackage.impleme
4d6e0 6e 74 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 nts.CompletePackageInterface.{.p
4d700 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 70 72 rotected.$version;.protected.$pr
4d720 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 3b 0a 70 72 6f ettyVersion;.protected.$dev;.pro
4d740 74 65 63 74 65 64 20 24 61 6c 69 61 73 4f 66 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 tected.$aliasOf;.protected.$root
4d760 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 PackageAlias.=.false;.protected.
4d780 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 72 65 73 $stability;..protected.$requires
4d7a0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 6c 69 63 74 73 3b 0a 70 72 6f 74 65 63 74 65 ;.protected.$conflicts;.protecte
4d7c0 64 20 24 70 72 6f 76 69 64 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6c 61 63 65 73 d.$provides;.protected.$replaces
4d7e0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 63 6f 6d 6d 65 6e 64 73 3b 0a 70 72 6f 74 65 63 74 ;.protected.$recommends;.protect
4d800 65 64 20 24 73 75 67 67 65 73 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ed.$suggests;.........public.fun
4d820 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 61 ction.__construct(PackageInterfa
4d840 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 ce.$aliasOf,.$version,.$prettyVe
4d860 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 6c rsion).{.parent::__construct($al
4d880 69 61 73 4f 66 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 iasOf->getName());..$this->versi
4d8a0 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 65 72 73 on.=.$version;.$this->prettyVers
4d8c0 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 ion.=.$prettyVersion;.$this->ali
4d8e0 61 73 4f 66 20 3d 20 24 61 6c 69 61 73 4f 66 3b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 asOf.=.$aliasOf;.$this->stabilit
4d900 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 y.=.VersionParser::parseStabilit
4d920 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 69 73 2d y($version);.$this->dev.=.$this-
4d940 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 >stability.===.'dev';....foreach
4d960 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c 20 27 64 65 76 52 65 71 75 69 72 65 73 .(array('requires',.'devRequires
4d980 27 29 20 61 73 20 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 ').as.$type).{.$links.=.$aliasOf
4d9a0 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 66 6f 72 65 ->{'get'.ucfirst($type)}();.fore
4d9c0 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 6c 69 6e 6b 29 20 ach.($links.as.$index.=>.$link).
4d9e0 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 24 6c 69 6e 6b {...if.('self.version'.===.$link
4da00 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 24 6c 69 6e 6b ->getPrettyConstraint()).{.$link
4da20 73 5b 24 69 6e 64 65 78 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 s[$index].=.new.Link($link->getS
4da40 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 65 77 ource(),.$link->getTarget(),.new
4da60 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 3e 76 .VersionConstraint('=',.$this->v
4da80 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b ersion),.$type,.$prettyVersion);
4daa0 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 0a 0a .}.}.$this->$type.=.$links;.}...
4dac0 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 70 72 .foreach.(array('conflicts',.'pr
4dae0 6f 76 69 64 65 73 27 2c 20 27 72 65 70 6c 61 63 65 73 27 29 20 61 73 20 24 74 79 70 65 29 20 7b ovides',.'replaces').as.$type).{
4db00 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 .$links.=.$aliasOf->{'get'.ucfir
4db20 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 24 6e 65 77 4c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 st($type)}();.$newLinks.=.array(
4db40 29 3b 0a 66 6f 72 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 0a );.foreach.($links.as.$link).{..
4db60 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c 69 6e 6b 2d 3e 67 .if.('self.version'.===.$link->g
4db80 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6e 65 77 4c 69 6e 6b etPrettyConstraint()).{.$newLink
4dba0 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 6f 75 72 63 65 28 s[].=.new.Link($link->getSource(
4dbc0 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e 65 77 20 56 65 72 73 69 ),.$link->getTarget(),.new.Versi
4dbe0 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e onConstraint('=',.$this->version
4dc00 29 2c 20 24 74 79 70 65 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 24 ),.$type,.$prettyVersion);.}.}.$
4dc20 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 69 6e 6b 73 this->$type.=.array_merge($links
4dc40 2c 20 24 6e 65 77 4c 69 6e 6b 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ,.$newLinks);.}.}..public.functi
4dc60 6f 6e 20 67 65 74 41 6c 69 61 73 4f 66 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getAliasOf().{.return.$this->
4dc80 61 6c 69 61 73 4f 66 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 aliasOf;.}.....public.function.g
4dca0 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 72 73 etVersion().{.return.$this->vers
4dcc0 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 53 74 ion;.}.....public.function.getSt
4dce0 61 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 73 74 61 62 69 6c ability().{.return.$this->stabil
4dd00 69 74 79 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 ity;.}.....public.function.getPr
4dd20 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 70 72 ettyVersion().{.return.$this->pr
4dd40 65 74 74 79 56 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 ettyVersion;.}.....public.functi
4dd60 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 3b 0a on.isDev().{.return.$this->dev;.
4dd80 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 71 75 69 72 65 }.....public.function.getRequire
4dda0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a s().{.return.$this->requires;.}.
4ddc0 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 66 6c 69 63 74 73 ....public.function.getConflicts
4dde0 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 63 74 73 3b 0a 7d 0a ().{.return.$this->conflicts;.}.
4de00 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 6f 76 69 64 65 73 28 ....public.function.getProvides(
4de20 29 0a 7b 0a 72 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 ).{.return.$this->provides;.}...
4de40 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 61 63 65 73 28 29 0a ..public.function.getReplaces().
4de60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a {.return.$this->replaces;.}.....
4de80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 public.function.getDevRequires()
4dea0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a .{.return.$this->devRequires;.}.
4dec0 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 6f 6f 74 50 ........public.function.setRootP
4dee0 61 63 6b 61 67 65 41 6c 69 61 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ackageAlias($value).{.return.$th
4df00 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 76 61 6c 75 65 3b 0a 7d is->rootPackageAlias.=.$value;.}
4df20 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 6f 6f 74 50 61 63 6b ......public.function.isRootPack
4df40 61 67 65 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 ageAlias().{.return.$this->rootP
4df60 61 63 6b 61 67 65 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ackageAlias;.}......public.funct
4df80 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 61 6c ion.getType().{.return.$this->al
4dfa0 69 61 73 4f 66 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 iasOf->getType();.}.public.funct
4dfc0 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ion.getTargetDir().{.return.$thi
4dfe0 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 7d 0a 70 75 s->aliasOf->getTargetDir();.}.pu
4e000 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 75 72 blic.function.getExtra().{.retur
4e020 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 7d 0a n.$this->aliasOf->getExtra();.}.
4e040 70 75 62 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 public.function.setInstallationS
4e060 6f 75 72 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 ource($type).{.$this->aliasOf->s
4e080 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 3b 0a 7d 0a 70 etInstallationSource($type);.}.p
4e0a0 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 6f ublic.function.getInstallationSo
4e0c0 75 72 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 73 4f 66 2d 3e urce().{.return.$this->aliasOf->
4e0e0 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 7d 0a 70 75 62 6c 69 getInstallationSource();.}.publi
4e100 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 0a 7b 0a 72 65 74 c.function.getSourceType().{.ret
4e120 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 63 65 54 79 70 urn.$this->aliasOf->getSourceTyp
4e140 65 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 6f 75 72 63 65 e();.}.public.function.getSource
4e160 55 72 6c 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 Url().{.return.$this->aliasOf->g
4e180 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e etSourceUrl();.}.public.function
4e1a0 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.$
4e1c0 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 this->aliasOf->getSourceReferenc
4e1e0 65 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 53 6f 75 72 63 65 e();.}.public.function.setSource
4e200 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 Reference($reference).{.return.$
4e220 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 this->aliasOf->setSourceReferenc
4e240 65 28 24 72 65 66 65 72 65 6e 63 65 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e e($reference);.}.public.function
4e260 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 .getDistType().{.return.$this->a
4e280 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 liasOf->getDistType();.}.public.
4e2a0 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 74 75 72 6e 20 24 function.getDistUrl().{.return.$
4e2c0 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 7d 0a 70 this->aliasOf->getDistUrl();.}.p
4e2e0 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 63 65 28 ublic.function.getDistReference(
4e300 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 44 69 ).{.return.$this->aliasOf->getDi
4e320 73 74 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 stReference();.}.public.function
4e340 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .getDistSha1Checksum().{.return.
4e360 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b $this->aliasOf->getDistSha1Check
4e380 73 75 6d 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 63 72 69 sum();.}.public.function.getScri
4e3a0 70 74 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 4f 66 2d 3e 67 pts().{.return.$this->aliasOf->g
4e3c0 65 74 53 63 72 69 70 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 etScripts();.}.public.function.g
4e3e0 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 etLicense().{.return.$this->alia
4e400 73 4f 66 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 sOf->getLicense();.}.public.func
4e420 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 24 74 68 69 tion.getAutoload().{.return.$thi
4e440 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 7d 0a 70 75 62 s->aliasOf->getAutoload();.}.pub
4e460 6c 69 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 lic.function.getIncludePaths().{
4e480 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 49 6e 63 6c 75 .return.$this->aliasOf->getInclu
4e4a0 64 65 50 61 74 68 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 dePaths();.}.public.function.get
4e4c0 52 65 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 61 Repositories().{.return.$this->a
4e4e0 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 liasOf->getRepositories();.}.pub
4e500 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a lic.function.getReleaseDate().{.
4e520 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 52 65 6c 65 61 73 return.$this->aliasOf->getReleas
4e540 65 44 61 74 65 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 42 69 eDate();.}.public.function.getBi
4e560 6e 61 72 69 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 4f 66 naries().{.return.$this->aliasOf
4e580 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->getBinaries();.}.public.functi
4e5a0 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d on.getKeywords().{.return.$this-
4e5c0 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 >aliasOf->getKeywords();.}.publi
4e5e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 c.function.getDescription().{.re
4e600 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 65 73 63 72 69 70 74 turn.$this->aliasOf->getDescript
4e620 69 6f 6e 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 48 6f 6d 65 ion();.}.public.function.getHome
4e640 70 61 67 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 page().{.return.$this->aliasOf->
4e660 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e getHomepage();.}.public.function
4e680 20 67 65 74 53 75 67 67 65 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 .getSuggests().{.return.$this->a
4e6a0 6c 69 61 73 4f 66 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 liasOf->getSuggests();.}.public.
4e6c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.getAuthors().{.return.$
4e6e0 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 7d 0a 70 this->aliasOf->getAuthors();.}.p
4e700 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 ublic.function.getSupport().{.re
4e720 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 75 70 70 6f 72 74 28 turn.$this->aliasOf->getSupport(
4e740 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 );.}.public.function.getNotifica
4e760 74 69 6f 6e 55 72 6c 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 tionUrl().{.return.$this->aliasO
4e780 66 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 f->getNotificationUrl();.}.publi
4e7a0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 0a c.function.getArchiveExcludes().
4e7c0 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 72 63 68 {.return.$this->aliasOf->getArch
4e7e0 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e iveExcludes();.}.public.function
4e800 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::_
4e820 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-
4e840 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().')';.}.}.
4e860 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
4e880 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
4e8a0 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
4e8c0 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\
4e8e0 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
4e900 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
4e920 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
4e940 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 72 6f 74 65 63 ;.protected.$description;.protec
4e960 74 65 64 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ted.$prettyConstraint;..........
4e980 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 73 6f .public.function.__construct($so
4e9a0 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 6e 74 urce,.$target,.LinkConstraintInt
4e9c0 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 73 63 erface.$constraint.=.null,.$desc
4e9e0 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 79 43 ription.=.'relates.to',.$prettyC
4ea00 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 72 63 onstraint.=.null).{.$this->sourc
4ea20 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 2d 3e e.=.strtolower($source);.$this->
4ea40 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 24 74 target.=.strtolower($target);.$t
4ea60 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 0a 24 his->constraint.=.$constraint;.$
4ea80 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 6f 6e this->description.=.$description
4eaa0 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 72 65 ;.$this->prettyConstraint.=.$pre
4eac0 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 69 6f ttyConstraint;.}..public.functio
4eae0 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 73 6f n.getSource().{.return.$this->so
4eb00 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 72 67 urce;.}..public.function.getTarg
4eb20 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 0a 0a et().{.return.$this->target;.}..
4eb40 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 29 0a public.function.getConstraint().
4eb60 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 0a 70 {.return.$this->constraint;.}..p
4eb80 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 61 69 ublic.function.getPrettyConstrai
4eba0 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 74 74 nt().{.if.(null.===.$this->prett
4ebc0 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 70 65 yConstraint).{.throw.new.\Unexpe
4ebe0 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 6e 6b ctedValueException(sprintf('Link
4ec00 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 20 68 .%s.has.been.misconfigured.and.h
4ec20 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 2c 20 ad.no.prettyConstraint.given.',.
4ec40 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 74 79 $this));.}..return.$this->pretty
4ec60 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 20 5f Constraint;.}..public.function._
4ec80 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 75 72 _toString().{.return.$this->sour
4eca0 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 24 74 ce.'.'.$this->description.'.'.$t
4ecc0 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 61 69 his->target.'.('.$this->constrai
4ece0 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 50 72 nt.')';.}..public.function.getPr
4ed00 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 6f 75 ettyString(PackageInterface.$sou
4ed20 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 63 6b rcePackage).{.return.$sourcePack
4ed40 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 69 73 age->getPrettyString().'.'.$this
4ed60 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 74 2e ->description.'.'.$this->target.
4ed80 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 74 79 '.'.$this->constraint->getPretty
4eda0 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 0a 0a String().'';.}.}.<?php..........
4edc0 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 69 6e ..namespace.Composer\Package\Lin
4ede0 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 45 6d 70 74 79 43 6f kConstraint;.......class.EmptyCo
4ee00 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 61 69 nstraint.implements.LinkConstrai
4ee20 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 74 79 53 ntInterface.{.protected.$prettyS
4ee40 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 65 73 28 tring;..public.function.matches(
4ee60 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 69 64 65 LinkConstraintInterface.$provide
4ee80 72 29 0a 7b 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 r).{.return.true;.}..public.func
4eea0 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
4eec0 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
4eee0 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
4ef00 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
4ef20 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
4ef40 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
4ef60 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
4ef80 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 5b 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 tring().{.return.'[]';.}.}.<?php
4efa0 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
4efc0 61 63 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 0a 63 6c ackage\LinkConstraint;........cl
4efe0 61 73 73 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c ass.MultiConstraint.implements.L
4f000 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 72 6f 74 65 63 74 inkConstraintInterface.{.protect
4f020 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 ed.$constraints;.protected.$pret
4f040 74 79 53 74 72 69 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 tyString;.protected.$conjunctive
4f060 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
4f080 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 63 6f 6e 6a 75 6e ruct(array.$constraints,.$conjun
4f0a0 63 74 69 76 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e ctive.=.true).{.$this->constrain
4f0c0 74 73 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e ts.=.$constraints;.$this->conjun
4f0e0 63 74 69 76 65 20 3d 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ctive.=.$conjunctive;.}..public.
4f100 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 72 61 69 6e 74 49 function.matches(LinkConstraintI
4f120 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 nterface.$provider).{.if.(false.
4f140 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 29 20 7b 0a 66 6f 72 65 61 63 ===.$this->conjunctive).{.foreac
4f160 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 74 72 h.($this->constraints.as.$constr
4f180 61 69 6e 74 29 20 7b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 aint).{.if.($constraint->matches
4f1a0 28 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a ($provider)).{.return.true;.}.}.
4f1c0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 .return.false;.}..foreach.($this
4f1e0 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a ->constraints.as.$constraint).{.
4f200 69 66 20 28 21 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 if.(!$constraint->matches($provi
4f220 64 65 72 29 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 der)).{.return.false;.}.}..retur
4f240 6e 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 50 72 n.true;.}..public.function.setPr
4f260 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 ettyString($prettyString).{.$thi
4f280 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b s->prettyString.=.$prettyString;
4f2a0 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 65 74 74 79 53 74 72 .}..public.function.getPrettyStr
4f2c0 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 ing().{.if.($this->prettyString)
4f2e0 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d .{.return.$this->prettyString;.}
4f300 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a ..return.$this->__toString();.}.
4f320 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 28 29 0a 7b 0a .public.function.__toString().{.
4f340 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 $constraints.=.array();.foreach.
4f360 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 74 72 61 69 ($this->constraints.as.$constrai
4f380 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 nt).{.$constraints[].=.$constrai
4f3a0 6e 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e nt->__toString();.}..return.'['.
4f3c0 69 6d 70 6c 6f 64 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3f 20 27 2c 20 implode($this->conjunctive.?.',.
4f3e0 27 20 3a 20 27 20 7c 20 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 2e 27 5d 27 3b 0a 7d 0a '.:.'.|.',.$constraints).']';.}.
4f400 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
4f420 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 3b 0a 0a 0a poser\Package\LinkConstraint;...
4f440 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 ......class.VersionConstraint.ex
4f460 74 65 6e 64 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 tends.SpecificConstraint.{.priva
4f480 74 65 20 24 6f 70 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a te.$operator;.private.$version;.
4f4a0 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
4f4c0 63 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 27 3d ct($operator,.$version).{.if.('=
4f4e0 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 6f 72 20 3d 20 27 '.===.$operator).{.$operator.=.'
4f500 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 27 3c 3e 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 ==';.}..if.('<>'.===.$operator).
4f520 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 21 3d 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 {.$operator.=.'!=';.}..$this->op
4f540 65 72 61 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 erator.=.$operator;.$this->versi
4f560 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f on.=.$version;.}..public.functio
4f580 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 n.versionCompare($a,.$b,.$operat
4f5a0 6f 72 29 0a 7b 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 61 2c 20 or).{.if.('dev-'.===.substr($a,.
4f5c0 30 2c 20 34 29 20 26 26 20 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 2c 20 30 0,.4).&&.'dev-'.===.substr($b,.0
4f5e0 2c 20 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 6f 72 20 3d 3d 20 27 3d 3d 27 ,.4)).{.return.$operator.==.'=='
4f600 20 26 26 20 24 61 20 3d 3d 3d 20 24 62 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 76 65 72 73 69 6f 6e .&&.$a.===.$b;.}..return.version
4f620 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a _compare($a,.$b,.$operator);.}..
4f640 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 53 70 65 63 69 66 69 ....public.function.matchSpecifi
4f660 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 76 69 64 65 72 29 0a 7b c(VersionConstraint.$provider).{
4f680 0a 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 .$noEqualOp.=.str_replace('=',.'
4f6a0 27 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a 24 70 72 6f 76 69 64 65 72 4e 6f ',.$this->operator);.$providerNo
4f6c0 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 24 EqualOp.=.str_replace('=',.'',.$
4f6e0 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a 0a 24 69 73 45 71 75 61 6c 4f 70 provider->operator);..$isEqualOp
4f700 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 .=.'=='.===.$this->operator;.$is
4f720 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 NonEqualOp.=.'!='.===.$this->ope
4f740 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 20 3d 20 27 3d 3d 27 rator;.$isProviderEqualOp.=.'=='
4f760 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 24 69 73 50 72 6f .===.$provider->operator;.$isPro
4f780 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d 20 24 70 72 6f 76 viderNonEqualOp.=.'!='.===.$prov
4f7a0 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 69 73 4e 6f 6e 45 ider->operator;......if.($isNonE
4f7c0 71 75 61 6c 4f 70 20 7c 7c 20 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 29 qualOp.||.$isProviderNonEqualOp)
4f7e0 20 7b 0a 72 65 74 75 72 6e 20 21 24 69 73 45 71 75 61 6c 4f 70 20 26 26 20 21 24 69 73 50 72 6f .{.return.!$isEqualOp.&&.!$isPro
4f800 76 69 64 65 72 45 71 75 61 6c 4f 70 0a 7c 7c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f viderEqualOp.||.$this->versionCo
4f820 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d mpare($provider->version,.$this-
4f840 3e 76 65 72 73 69 6f 6e 2c 20 27 21 3d 27 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 24 74 68 69 >version,.'!=');.}......if.($thi
4f860 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 27 3d 3d 27 20 26 26 20 24 6e 6f 45 71 75 61 6c 4f s->operator.!=.'=='.&&.$noEqualO
4f880 70 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 p.==.$providerNoEqualOp).{.retur
4f8a0 6e 20 74 72 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 n.true;.}..if.($this->versionCom
4f8c0 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e pare($provider->version,.$this->
4f8e0 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 29 20 7b 0a 0a 20 0a version,.$this->operator)).{....
4f900 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 20 3d 3d 20 24 74 68 69 73 .if.($provider->version.==.$this
4f920 2d 3e 76 65 72 73 69 6f 6e 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 ->version.&&.$provider->operator
4f940 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 26 26 20 24 74 68 69 73 2d .==.$providerNoEqualOp.&&.$this-
4f960 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 24 6e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 >operator.!=.$noEqualOp).{.retur
4f980 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 0a 72 65 74 75 n.false;.}..return.true;.}..retu
4f9a0 72 6e 20 66 61 6c 73 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 rn.false;.}..public.function.__t
4f9c0 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 6f 70 65 72 61 74 oString().{.return.$this->operat
4f9e0 6f 72 2e 27 20 27 2e 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 or.'.'.$this->version;.}.}.<?php
4fa00 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
4fa20 61 63 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 61 62 73 ackage\LinkConstraint;.......abs
4fa40 74 72 61 63 74 20 63 6c 61 73 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 20 69 tract.class.SpecificConstraint.i
4fa60 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 mplements.LinkConstraintInterfac
4fa80 65 0a 7b 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 0a 0a 70 75 e.{.protected.$prettyString;..pu
4faa0 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 72 blic.function.matches(LinkConstr
4fac0 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 69 66 20 28 24 aintInterface.$provider).{.if.($
4fae0 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 provider.instanceof.MultiConstra
4fb00 69 6e 74 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 2d 3e 6d 61 74 63 68 int).{...return.$provider->match
4fb20 65 73 28 24 74 68 69 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 es($this);.}.elseif.($provider.i
4fb40 6e 73 74 61 6e 63 65 6f 66 20 24 74 68 69 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nstanceof.$this).{.return.$this-
4fb60 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 70 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 0a 72 65 >matchSpecific($provider);.}..re
4fb80 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 74 69 6f 6e 20 73 65 turn.true;.}..public.function.se
4fba0 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 6e 67 29 0a 7b 0a 24 tPrettyString($prettyString).{.$
4fbc0 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 74 74 79 53 74 72 69 this->prettyString.=.$prettyStri
4fbe0 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 74 50 72 65 74 74 79 ng;.}..public.function.getPretty
4fc00 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 74 74 79 53 74 72 69 String().{.if.($this->prettyStri
4fc20 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 79 53 74 72 69 6e 67 ng).{.return.$this->prettyString
4fc40 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 72 69 6e 67 28 29 3b ;.}..return.$this->__toString();
4fc60 0a 7d 0a 0a 0a 20 0a 20 0a 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .}........}.<?php............nam
4fc80 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 6f 6e 73 espace.Composer\Package\LinkCons
4fca0 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 69 6e 6b 43 6f 6e 73 traint;.......interface.LinkCons
4fcc0 74 72 61 69 6e 74 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 traintInterface.{.public.functio
4fce0 6e 20 6d 61 74 63 68 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 n.matches(LinkConstraintInterfac
4fd00 65 20 24 70 72 6f 76 69 64 65 72 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 e.$provider);.public.function.se
4fd20 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 6e 67 29 3b 0a 70 75 tPrettyString($prettyString);.pu
4fd40 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 6e 67 28 29 3b blic.function.getPrettyString();
4fd60 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 28 29 3b 0a 7d .public.function.__toString();.}
4fd80 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
4fda0 6f 73 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 oser;..use.Composer\IO\IOInterfa
4fdc0 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 65 73 79 73 74 65 6d ce;.use.Composer\Util\Filesystem
4fde0 3b 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 65 72 5c 46 ;.use.Symfony\Component\Finder\F
4fe00 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 61 63 68 65 0a 7b 0a 70 72 69 76 61 inder;.......class.Cache.{.priva
4fe20 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 3b 0a 70 72 69 76 61 74 65 20 24 te.$io;.private.$root;.private.$
4fe40 65 6e 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 77 68 69 74 65 6c 69 enabled.=.true;.private.$whiteli
4fe60 73 74 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a st;.private.$filesystem;........
4fe80 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
4fea0 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 61 63 68 65 44 69 72 2c 20 24 77 68 69 74 65 6c 69 terface.$io,.$cacheDir,.$whiteli
4fec0 73 74 20 3d 20 27 61 2d 7a 30 2d 39 2e 27 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 st.=.'a-z0-9.',.Filesystem.$file
4fee0 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 69 6f system.=.null).{.$this->io.=.$io
4ff00 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 44 69 72 2c ;.$this->root.=.rtrim($cacheDir,
4ff20 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 20 .'/\\')...'/';.$this->whitelist.
4ff40 3d 20 24 77 68 69 74 65 6c 69 73 74 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 =.$whitelist;.$this->filesystem.
4ff60 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 79 73 74 65 6d 28 =.$filesystem.?:.new.Filesystem(
4ff80 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 29 20 7b 0a );..if.(!is_dir($this->root)).{.
4ffa0 69 66 20 28 21 40 6d 6b 64 69 72 28 24 74 68 69 73 2d 3e 72 6f 6f 74 2c 20 30 37 37 37 2c 20 74 if.(!@mkdir($this->root,.0777,.t
4ffc0 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a rue)).{.$this->enabled.=.false;.
4ffe0 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 }.}.}..public.function.isEnabled
50000 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 3b 0a 7d 0a 0a 70 ().{.return.$this->enabled;.}..p
50020 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 28 29 0a 7b 0a 72 65 74 75 72 ublic.function.getRoot().{.retur
50040 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n.$this->root;.}..public.functio
50060 6e 20 72 65 61 64 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 n.read($file).{.$file.=.preg_rep
50080 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 lace('{[^'.$this->whitelist.']}i
500a0 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c ',.'-',.$file);.if.($this->enabl
500c0 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 ed.&&.file_exists($this->root...
500e0 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e $file)).{.return.file_get_conten
50100 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 ts($this->root...$file);.}..retu
50120 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 rn.false;.}..public.function.wri
50140 74 65 28 24 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 te($file,.$contents).{.if.($this
50160 2d 3e 65 6e 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 ->enabled).{.$file.=.preg_replac
50180 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 e('{[^'.$this->whitelist.']}i',.
501a0 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 70 75 74 5f 63 6f '-',.$file);..return.file_put_co
501c0 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 65 2c 20 24 63 6f 6e ntents($this->root...$file,.$con
501e0 74 65 6e 74 73 29 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 tents);.}..return.false;.}..publ
50200 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 72 6f 6d 28 24 66 69 6c 65 2c 20 24 73 6f 75 ic.function.copyFrom($file,.$sou
50220 72 63 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a 24 66 69 rce).{.if.($this->enabled).{.$fi
50240 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 le.=.preg_replace('{[^'.$this->w
50260 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 24 74 68 hitelist.']}i',.'-',.$file);.$th
50280 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 63 74 6f 72 79 45 is->filesystem->ensureDirectoryE
502a0 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c xists(dirname($this->root...$fil
502c0 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 63 6f 70 79 28 24 73 6f 75 72 63 65 2c 20 24 74 68 69 73 e));..return.copy($source,.$this
502e0 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 ->root...$file);.}..return.false
50300 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 54 6f 28 24 66 69 6c ;.}..public.function.copyTo($fil
50320 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 e,.$target).{.$file.=.preg_repla
50340 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c ce('{[^'.$this->whitelist.']}i',
50360 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 .'-',.$file);.if.($this->enabled
50380 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 .&&.file_exists($this->root...$f
503a0 69 6c 65 29 29 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c ile)).{.touch($this->root...$fil
503c0 65 29 3b 0a 0a 72 65 74 75 72 6e 20 63 6f 70 79 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 e);..return.copy($this->root...$
503e0 66 69 6c 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b file,.$target);.}..return.false;
50400 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 .}..public.function.remove($file
50420 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 5e 27 2e 24 ).{.$file.=.preg_replace('{[^'.$
50440 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c this->whitelist.']}i',.'-',.$fil
50460 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 65 e);.if.($this->enabled.&&.file_e
50480 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 65 xists($this->root...$file)).{.re
504a0 74 75 72 6e 20 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 turn.unlink($this->root...$file)
504c0 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 20 66 75 6e ;.}..return.false;.}..public.fun
504e0 63 74 69 6f 6e 20 67 63 28 24 74 74 6c 2c 20 24 6d 61 78 53 69 7a 65 29 0a 7b 0a 24 65 78 70 69 ction.gc($ttl,.$maxSize).{.$expi
50500 72 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 29 3b 0a 24 65 78 70 69 72 65 2d 3e 6d re.=.new.\DateTime();.$expire->m
50520 6f 64 69 66 79 28 27 2d 27 2e 24 74 74 6c 2e 27 20 73 65 63 6f 6e 64 73 27 29 3b 0a 0a 24 66 69 odify('-'.$ttl.'.seconds');..$fi
50540 6e 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6e 64 65 72 28 29 2d 3e 64 61 74 65 28 nder.=.$this->getFinder()->date(
50560 27 75 6e 74 69 6c 20 27 2e 24 65 78 70 69 72 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 'until.'.$expire->format('Y-m-d.
50580 48 3a 69 3a 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 66 H:i:s'));.foreach.($finder.as.$f
505a0 69 6c 65 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 ile).{.unlink($file->getRealPath
505c0 28 29 29 3b 0a 7d 0a 0a 24 74 6f 74 61 6c 53 69 7a 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 ());.}..$totalSize.=.$this->file
505e0 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 3b 0a 69 66 20 28 24 system->size($this->root);.if.($
50600 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 78 53 69 7a 65 29 20 7b 0a 24 69 74 65 72 61 74 6f totalSize.>.$maxSize).{.$iterato
50620 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6e 64 65 72 28 29 2d 3e 73 6f 72 74 42 79 41 63 r.=.$this->getFinder()->sortByAc
50640 63 65 73 73 65 64 54 69 6d 65 28 29 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 77 68 69 cessedTime()->getIterator();.whi
50660 6c 65 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 78 53 69 7a 65 20 26 26 20 24 69 74 le.($totalSize.>.$maxSize.&&.$it
50680 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 24 66 69 6c 65 70 61 74 68 20 3d 20 24 erator->valid()).{.$filepath.=.$
506a0 69 74 65 72 61 74 6f 72 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 iterator->current()->getRealPath
506c0 28 29 3b 0a 24 74 6f 74 61 6c 53 69 7a 65 20 2d 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 ();.$totalSize.-=.$this->filesys
506e0 74 65 6d 2d 3e 73 69 7a 65 28 24 66 69 6c 65 70 61 74 68 29 3b 0a 75 6e 6c 69 6e 6b 28 24 66 69 tem->size($filepath);.unlink($fi
50700 6c 65 70 61 74 68 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 7d 0a lepath);.$iterator->next();.}.}.
50720 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 74 69 6f 6e .return.true;.}..public.function
50740 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 65 70 6c .sha1($file).{.$file.=.preg_repl
50760 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 ace('{[^'.$this->whitelist.']}i'
50780 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 ,.'-',.$file);.if.($this->enable
507a0 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 d.&&.file_exists($this->root...$
507c0 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 68 61 31 5f 66 69 6c 65 28 24 74 68 69 73 2d file)).{.return.sha1_file($this-
507e0 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b >root...$file);.}..return.false;
50800 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 32 35 36 28 24 66 69 6c 65 .}..public.function.sha256($file
50820 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 5e 27 2e 24 ).{.$file.=.preg_replace('{[^'.$
50840 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c this->whitelist.']}i',.'-',.$fil
50860 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 65 e);.if.($this->enabled.&&.file_e
50880 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 65 xists($this->root...$file)).{.re
508a0 74 75 72 6e 20 68 61 73 68 5f 66 69 6c 65 28 27 73 68 61 32 35 36 27 2c 20 24 74 68 69 73 2d 3e turn.hash_file('sha256',.$this->
508c0 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a root...$file);.}..return.false;.
508e0 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 46 69 6e 64 65 72 28 }..protected.function.getFinder(
50900 29 0a 7b 0a 72 65 74 75 72 6e 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 2d 3e 69 6e 28 ).{.return.Finder::create()->in(
50920 24 74 68 69 73 2d 3e 72 6f 6f 74 29 2d 3e 66 69 6c 65 73 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 $this->root)->files();.}.}.<?php
50940 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
50960 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 6f 73 65 72 ependencyResolver;..use.Composer
50980 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 0a 0a 0a 0a 69 \Package\PackageInterface;.....i
509a0 6e 74 65 72 66 61 63 65 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 nterface.PolicyInterface.{.publi
509c0 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 63 6b 61 67 c.function.versionCompare(Packag
509e0 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 61 63 65 20 eInterface.$a,.PackageInterface.
50a00 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $b,.$operator);.public.function.
50a20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 findUpdatePackages(Pool.$pool,.a
50a40 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 rray.$installedMap,.PackageInter
50a60 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 face.$package);.public.function.
50a80 73 65 6c 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 selectPreferedPackages(Pool.$poo
50aa0 6c 2c 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 l,.array.$installedMap,.array.$l
50ac0 69 74 65 72 61 6c 73 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 iterals);.}.<?php............nam
50ae0 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
50b00 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 er;.....class.RuleSet.implements
50b20 20 5c 49 74 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 .\IteratorAggregate,.\Countable.
50b40 7b 0a 0a 20 63 6f 6e 73 74 20 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d 20 30 3b 0a 63 6f 6e 73 {...const.TYPE_PACKAGE.=.0;.cons
50b60 74 20 54 59 50 45 5f 4a 4f 42 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4c 45 41 52 4e t.TYPE_JOB.=.1;.const.TYPE_LEARN
50b80 45 44 20 3d 20 34 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 74 79 70 65 73 ED.=.4;..protected.static.$types
50ba0 20 3d 20 61 72 72 61 79 28 0a 2d 31 20 3d 3e 20 27 55 4e 4b 4e 4f 57 4e 27 2c 0a 73 65 6c 66 3a .=.array(.-1.=>.'UNKNOWN',.self:
50bc0 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d 3e 20 27 50 41 43 4b 41 47 45 27 2c 0a 73 65 6c 66 :TYPE_PACKAGE.=>.'PACKAGE',.self
50be0 3a 3a 54 59 50 45 5f 4a 4f 42 20 3d 3e 20 27 4a 4f 42 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f ::TYPE_JOB.=>.'JOB',.self::TYPE_
50c00 4c 45 41 52 4e 45 44 20 3d 3e 20 27 4c 45 41 52 4e 45 44 27 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 LEARNED.=>.'LEARNED',.);..protec
50c20 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 42 79 49 64 3b ted.$rules;.protected.$ruleById;
50c40 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 65 78 74 52 75 6c 65 49 64 3b 0a 0a 70 72 6f 74 65 63 74 .protected.$nextRuleId;..protect
50c60 65 64 20 24 72 75 6c 65 73 42 79 48 61 73 68 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ed.$rulesByHash;..public.functio
50c80 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c n.__construct().{.$this->nextRul
50ca0 65 49 64 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 54 79 70 eId.=.0;..foreach.($this->getTyp
50cc0 65 73 28 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 es().as.$type).{.$this->rules[$t
50ce0 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 72 75 6c 65 73 42 ype].=.array();.}..$this->rulesB
50d00 79 48 61 73 68 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 yHash.=.array();.}..public.funct
50d20 69 6f 6e 20 61 64 64 28 52 75 6c 65 20 24 72 75 6c 65 2c 20 24 74 79 70 65 29 0a 7b 0a 69 66 20 ion.add(Rule.$rule,.$type).{.if.
50d40 28 21 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 74 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a (!isset(self::$types[$type])).{.
50d60 74 68 72 6f 77 20 6e 65 77 20 5c 4f 75 74 4f 66 42 6f 75 6e 64 73 45 78 63 65 70 74 69 6f 6e 28 throw.new.\OutOfBoundsException(
50d80 27 55 6e 6b 6e 6f 77 6e 20 72 75 6c 65 20 74 79 70 65 3a 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 'Unknown.rule.type:.'...$type);.
50da0 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 }..if.(!isset($this->rules[$type
50dc0 5d 29 29 20 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 ])).{.$this->rules[$type].=.arra
50de0 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 5b 5d 20 3d 20 y();.}..$this->rules[$type][].=.
50e00 24 72 75 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 42 79 49 64 5b 24 74 68 69 73 2d 3e 6e 65 $rule;.$this->ruleById[$this->ne
50e20 78 74 52 75 6c 65 49 64 5d 20 3d 20 24 72 75 6c 65 3b 0a 24 72 75 6c 65 2d 3e 73 65 74 54 79 70 xtRuleId].=.$rule;.$rule->setTyp
50e40 65 28 24 74 79 70 65 29 3b 0a 0a 24 72 75 6c 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 6e e($type);..$rule->setId($this->n
50e60 65 78 74 52 75 6c 65 49 64 29 3b 0a 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 2b 2b 3b extRuleId);.$this->nextRuleId++;
50e80 0a 0a 24 68 61 73 68 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 3b 0a 69 66 20 28 ..$hash.=.$rule->getHash();.if.(
50ea0 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d !isset($this->rulesByHash[$hash]
50ec0 29 29 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 68 5d 20 3d )).{.$this->rulesByHash[$hash].=
50ee0 20 61 72 72 61 79 28 24 72 75 6c 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 .array($rule);.}.else.{.$this->r
50f00 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 7d 0a 7d ulesByHash[$hash][].=.$rule;.}.}
50f20 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 7b 0a 72 65 74 75 ..public.function.count().{.retu
50f40 72 6e 20 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 rn.$this->nextRuleId;.}..public.
50f60 66 75 6e 63 74 69 6f 6e 20 72 75 6c 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 function.ruleById($id).{.return.
50f80 24 74 68 69 73 2d 3e 72 75 6c 65 42 79 49 64 5b 24 69 64 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 $this->ruleById[$id];.}..public.
50fa0 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 function.getRules().{.return.$th
50fc0 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 is->rules;.}..public.function.ge
50fe0 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 tIterator().{.return.new.RuleSet
51000 49 74 65 72 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 52 75 6c 65 73 28 29 29 3b 0a 7d 0a 0a Iterator($this->getRules());.}..
51020 70 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 46 6f 72 28 24 public.function.getIteratorFor($
51040 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 73 29 29 20 types).{.if.(!is_array($types)).
51060 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 61 6c {.$types.=.array($types);.}..$al
51080 6c 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c lRules.=.$this->getRules();.$rul
510a0 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 79 70 65 73 20 61 es.=.array();..foreach.($types.a
510c0 73 20 24 74 79 70 65 29 20 7b 0a 24 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 61 6c 6c 52 s.$type).{.$rules[$type].=.$allR
510e0 75 6c 65 73 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 ules[$type];.}..return.new.RuleS
51100 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 etIterator($rules);.}..public.fu
51120 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 57 69 74 68 6f 75 74 28 24 74 79 70 65 73 nction.getIteratorWithout($types
51140 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 ).{.if.(!is_array($types)).{.$ty
51160 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d pes.=.array($types);.}..$rules.=
51180 20 24 74 68 69 73 2d 3e 67 65 74 52 75 6c 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 .$this->getRules();..foreach.($t
511a0 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 75 6e 73 65 74 28 24 72 75 6c 65 73 5b 24 74 ypes.as.$type).{.unset($rules[$t
511c0 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 ype]);.}..return.new.RuleSetIter
511e0 61 74 6f 72 28 24 72 75 6c 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ator($rules);.}..public.function
51200 20 67 65 74 54 79 70 65 73 28 29 0a 7b 0a 24 74 79 70 65 73 20 3d 20 73 65 6c 66 3a 3a 24 74 79 .getTypes().{.$types.=.self::$ty
51220 70 65 73 3b 0a 75 6e 73 65 74 28 24 74 79 70 65 73 5b 2d 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 pes;.unset($types[-1]);..return.
51240 61 72 72 61 79 5f 6b 65 79 73 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 array_keys($types);.}..public.fu
51260 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 45 71 75 61 6c 28 24 72 75 6c 65 29 0a 7b 0a 69 66 nction.containsEqual($rule).{.if
51280 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 .(isset($this->rulesByHash[$rule
512a0 2d 3e 67 65 74 48 61 73 68 28 29 5d 29 29 20 7b 0a 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 ->getHash()])).{.$potentialDupli
512c0 63 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 cates.=.$this->rulesByHash[$rule
512e0 2d 3e 67 65 74 48 61 73 68 28 29 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 74 65 6e 74 69 61 ->getHash()];.foreach.($potentia
51300 6c 44 75 70 6c 69 63 61 74 65 73 20 61 73 20 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 lDuplicates.as.$potentialDuplica
51320 74 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 2d 3e 65 71 75 61 6c 73 28 24 70 6f 74 65 6e 74 69 te).{.if.($rule->equals($potenti
51340 61 6c 44 75 70 6c 69 63 61 74 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d alDuplicate)).{.return.true;.}.}
51360 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 20 66 75 6e 63 .}..return.false;.}..public.func
51380 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 73 74 72 69 6e 67 20 3d 20 22 5c tion.__toString().{.$string.=."\
513a0 6e 22 3b 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 74 79 n";.foreach.($this->rules.as.$ty
513c0 70 65 20 3d 3e 20 24 72 75 6c 65 73 29 20 7b 0a 24 73 74 72 69 6e 67 20 2e 3d 20 73 74 72 5f 70 pe.=>.$rules).{.$string..=.str_p
513e0 61 64 28 73 65 6c 66 3a 3a 24 74 79 70 65 73 5b 24 74 79 70 65 5d 2c 20 38 2c 20 27 20 27 29 20 ad(self::$types[$type],.8,.'.').
51400 2e 20 22 3a 20 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 ..":.";.foreach.($rules.as.$rule
51420 29 20 7b 0a 24 73 74 72 69 6e 67 20 2e 3d 20 24 72 75 6c 65 2e 22 5c 6e 22 3b 0a 7d 0a 24 73 74 ).{.$string..=.$rule."\n";.}.$st
51440 72 69 6e 67 20 2e 3d 20 22 5c 6e 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 72 69 6e ring..=."\n\n";.}..return.$strin
51460 67 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 g;.}.}.<?php............namespac
51480 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;..
514a0 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 ...class.SolverBugException.exte
514c0 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 75 62 6c 69 63 20 66 nds.\RuntimeException.{.public.f
514e0 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 61 67 65 29 0a 7b 0a unction.__construct($message).{.
51500 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 0a 24 6d 65 73 73 61 67 65 2e 22 5c parent::__construct(.$message."\
51520 6e 54 68 69 73 20 65 78 63 65 70 74 69 6f 6e 20 77 61 73 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 nThis.exception.was.most.likely.
51540 63 61 75 73 65 64 20 62 79 20 61 20 62 75 67 20 69 6e 20 43 6f 6d 70 6f 73 65 72 2e 5c 6e 22 2e caused.by.a.bug.in.Composer.\n".
51560 0a 22 50 6c 65 61 73 65 20 72 65 70 6f 72 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 79 6f 75 20 ."Please.report.the.command.you.
51580 72 61 6e 2c 20 74 68 65 20 65 78 61 63 74 20 65 72 72 6f 72 20 79 6f 75 20 72 65 63 65 69 76 65 ran,.the.exact.error.you.receive
515a0 64 2c 20 61 6e 64 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 6e 20 68 74 74 d,.and.your.composer.json.on.htt
515c0 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 ps://github.com/composer/compose
515e0 72 2f 69 73 73 75 65 73 20 2d 20 74 68 61 6e 6b 20 79 6f 75 21 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c r/issues.-.thank.you!\n");.}.}.<
51600 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
51620 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
51640 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
51660 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 67 65 se.Composer\Package\AliasPackage
51680 3b 0a 75 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 ;.use.Composer\Package\BasePacka
516a0 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 69 6e 6b 43 6f 6e ge;.use.Composer\Package\LinkCon
516c0 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 0a 0a 0a 0a 0a straint\VersionConstraint;......
516e0 63 6c 61 73 73 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 class.DefaultPolicy.implements.P
51700 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 olicyInterface.{.private.$prefer
51720 53 74 61 62 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 Stable;..public.function.__const
51740 72 75 63 74 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 ruct($preferStable.=.false).{.$t
51760 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c his->preferStable.=.$preferStabl
51780 65 3b 0a 7d 0a 0a 70 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 e;.}..public.function.versionCom
517a0 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 50 61 63 6b 61 67 pare(PackageInterface.$a,.Packag
517c0 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 0a 7b 0a 69 66 20 28 eInterface.$b,.$operator).{.if.(
517e0 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 26 26 20 28 24 73 74 61 62 41 20 3d $this->preferStable.&&.($stabA.=
51800 20 24 61 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 20 21 3d 3d 20 28 24 73 74 61 62 42 .$a->getStability()).!==.($stabB
51820 20 3d 20 24 62 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 29 20 7b 0a 72 65 74 75 72 6e .=.$b->getStability())).{.return
51840 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 73 5b 24 73 74 61 62 .BasePackage::$stabilities[$stab
51860 41 5d 20 3c 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 73 5b 24 A].<.BasePackage::$stabilities[$
51880 73 74 61 62 42 5d 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 stabB];.}..$constraint.=.new.Ver
518a0 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 62 2d 3e 67 65 sionConstraint($operator,.$b->ge
518c0 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 6e 65 77 20 56 65 72 73 tVersion());.$version.=.new.Vers
518e0 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 61 2d 3e 67 65 74 56 65 72 73 69 ionConstraint('==',.$a->getVersi
51900 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 on());..return.$constraint->matc
51920 68 53 70 65 63 69 66 69 63 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 hSpecific($version);.}..public.f
51940 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 unction.findUpdatePackages(Pool.
51960 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 2c 20 50 61 63 6b $pool,.array.$installedMap,.Pack
51980 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 61 63 6b 61 67 ageInterface.$package).{.$packag
519a0 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 70 6f 6f 6c 2d 3e 77 es.=.array();..foreach.($pool->w
519c0 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 28 29 29 hatProvides($package->getName())
519e0 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 .as.$candidate).{.if.($candidate
51a00 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 .!==.$package).{.$packages[].=.$
51a20 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 candidate;.}.}..return.$packages
51a40 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 69 6f 72 69 74 79 ;.}..public.function.getPriority
51a60 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 (Pool.$pool,.PackageInterface.$p
51a80 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6f 6c 2d 3e 67 65 74 50 72 69 6f 72 ackage).{.return.$pool->getPrior
51aa0 69 74 79 28 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 29 3b 0a ity($package->getRepository());.
51ac0 7d 0a 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 }..public.function.selectPrefere
51ae0 64 50 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 dPackages(Pool.$pool,.array.$ins
51b00 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 71 talledMap,.array.$literals,.$req
51b20 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 uiredPackage.=.null).{.$packages
51b40 20 3d 20 24 74 68 69 73 2d 3e 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d 65 50 72 65 .=.$this->groupLiteralsByNamePre
51b60 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 64 4d 61 ferInstalled($pool,.$installedMa
51b80 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 p,.$literals);..foreach.($packag
51ba0 65 73 20 61 73 20 26 24 6c 69 74 65 72 61 6c 73 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 es.as.&$literals).{.$policy.=.$t
51bc0 68 69 73 3b 0a 75 73 6f 72 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 his;.usort($literals,.function.(
51be0 24 61 2c 20 24 62 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 $a,.$b).use.($policy,.$pool,.$in
51c00 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 20 7b 0a stalledMap,.$requiredPackage).{.
51c20 72 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 return.$policy->compareByPriorit
51c40 79 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 yPreferInstalled($pool,.$install
51c60 65 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 edMap,.$pool->literalToPackage($
51c80 61 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 a),.$pool->literalToPackage($b),
51ca0 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 74 72 75 65 29 3b 0a 7d 29 3b 0a 7d 0a .$requiredPackage,.true);.});.}.
51cc0 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
51ce0 73 29 20 7b 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 54 6f 42 s).{.$literals.=.$this->pruneToB
51d00 65 73 74 56 65 72 73 69 6f 6e 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 estVersion($pool,.$literals);..$
51d20 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 literals.=.$this->pruneToHighest
51d40 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 PriorityOrInstalled($pool,.$inst
51d60 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 alledMap,.$literals);..$literals
51d80 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 24 70 6f .=.$this->pruneRemoteAliases($po
51da0 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 63 ol,.$literals);.}..$selected.=.c
51dc0 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 5f 6d 65 72 67 65 all_user_func_array('array_merge
51de0 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 0a 20 75 73 6f 72 74 28 24 73 65 6c 65 63 74 65 ',.$packages);....usort($selecte
51e00 64 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 6f 6c 69 63 d,.function.($a,.$b).use.($polic
51e20 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 72 65 71 75 69 72 y,.$pool,.$installedMap,.$requir
51e40 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d edPackage).{.return.$policy->com
51e60 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 28 24 70 pareByPriorityPreferInstalled($p
51e80 6f 6f 6c 2c 20 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 ool,.$installedMap,.$pool->liter
51ea0 61 6c 54 6f 50 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 alToPackage($a),.$pool->literalT
51ec0 6f 50 61 63 6b 61 67 65 28 24 62 29 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 3b oPackage($b),.$requiredPackage);
51ee0 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a 70 72 6f 74 65 .});..return.$selected;.}..prote
51f00 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d cted.function.groupLiteralsByNam
51f20 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 ePreferInstalled(Pool.$pool,.arr
51f40 61 79 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 0a 7b 0a 24 ay.$installedMap,.$literals).{.$
51f60 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 6c 69 packages.=.array();.foreach.($li
51f80 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 61 67 65 4e 61 terals.as.$literal).{.$packageNa
51fa0 6d 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 69 me.=.$pool->literalToPackage($li
51fc0 74 65 72 61 6c 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 teral)->getName();..if.(!isset($
51fe0 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 29 29 20 7b 0a 24 70 61 63 6b packages[$packageName])).{.$pack
52000 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a ages[$packageName].=.array();.}.
52020 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 61 62 73 28 24 6c 69 .if.(isset($installedMap[abs($li
52040 74 65 72 61 6c 29 5d 29 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 70 61 63 6b 61 teral)])).{.array_unshift($packa
52060 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 2c 20 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 ges[$packageName],.$literal);.}.
52080 65 6c 73 65 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 5b 5d else.{.$packages[$packageName][]
520a0 20 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 70 61 63 6b 61 67 .=.$literal;.}.}..return.$packag
520c0 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 63 6f 6d 70 61 72 es;.}.....public.function.compar
520e0 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 28 50 6f 6f 6c 20 eByPriorityPreferInstalled(Pool.
52100 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 2c 20 50 61 63 6b $pool,.array.$installedMap,.Pack
52120 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 61 63 ageInterface.$a,.PackageInterfac
52140 65 20 24 62 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 2c 20 24 e.$b,.$requiredPackage.=.null,.$
52160 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 61 2d ignoreReplace.=.false).{.if.($a-
52180 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 52 65 70 6f >getRepository().===.$b->getRepo
521a0 73 69 74 6f 72 79 28 29 29 20 7b 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 4e 61 6d 65 28 29 20 sitory()).{...if.($a->getName().
521c0 3d 3d 3d 20 24 62 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 61 41 6c 69 61 73 65 64 20 3d ===.$b->getName()).{.$aAliased.=
521e0 20 24 61 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 24 62 41 .$a.instanceof.AliasPackage;.$bA
52200 6c 69 61 73 65 64 20 3d 20 24 62 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b liased.=.$b.instanceof.AliasPack
52220 61 67 65 3b 0a 69 66 20 28 24 61 41 6c 69 61 73 65 64 20 26 26 20 21 24 62 41 6c 69 61 73 65 64 age;.if.($aAliased.&&.!$bAliased
52240 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 69 66 20 28 21 24 61 41 6c 69 61 73 65 ).{.return.-1;...}.if.(!$aAliase
52260 64 20 26 26 20 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a d.&&.$bAliased).{.return.1;...}.
52280 7d 0a 0a 69 66 20 28 21 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 29 20 7b 0a 0a 20 69 66 20 28 }..if.(!$ignoreReplace).{...if.(
522a0 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 61 2c 20 24 62 29 29 20 7b 0a 72 65 74 75 72 $this->replaces($a,.$b)).{.retur
522c0 6e 20 31 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 62 2c n.1;...}.if.($this->replaces($b,
522e0 20 24 61 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 0a 0a 20 0a 20 69 66 20 28 .$a)).{.return.-1;...}......if.(
52300 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 28 24 $requiredPackage.&&.false.!==.($
52320 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 27 pos.=.strpos($requiredPackage,.'
52340 2f 27 29 29 29 20 7b 0a 24 72 65 71 75 69 72 65 64 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 /'))).{.$requiredVendor.=.substr
52360 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 0a 24 61 ($requiredPackage,.0,.$pos);..$a
52380 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 61 2d 3e 67 65 74 4e 61 6d IsSameVendor.=.substr($a->getNam
523a0 65 28 29 2c 20 30 2c 20 24 70 6f 73 29 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 56 65 6e 64 6f e(),.0,.$pos).===.$requiredVendo
523c0 72 3b 0a 24 62 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 62 2d 3e 67 r;.$bIsSameVendor.=.substr($b->g
523e0 65 74 4e 61 6d 65 28 29 2c 20 30 2c 20 24 70 6f 73 29 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 etName(),.0,.$pos).===.$required
52400 56 65 6e 64 6f 72 3b 0a 0a 69 66 20 28 24 62 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 21 3d 3d 20 Vendor;..if.($bIsSameVendor.!==.
52420 24 61 49 73 53 61 6d 65 56 65 6e 64 6f 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 49 73 53 61 6d $aIsSameVendor).{.return.$aIsSam
52440 65 56 65 6e 64 6f 72 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 eVendor.?.-1.:.1;.}.}.}....if.($
52460 61 2d 3e 67 65 74 49 64 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 7b 0a 72 65 a->getId().===.$b->getId()).{.re
52480 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 49 64 28 29 20 3c turn.0;.}..return.($a->getId().<
524a0 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 28 69 .$b->getId()).?.-1.:.1;.}..if.(i
524c0 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 61 2d 3e 67 65 74 49 64 28 29 5d 29 sset($installedMap[$a->getId()])
524e0 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 ).{.return.-1;.}..if.(isset($ins
52500 74 61 6c 6c 65 64 4d 61 70 5b 24 62 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 talledMap[$b->getId()])).{.retur
52520 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 n.1;.}..return.($this->getPriori
52540 74 79 28 24 70 6f 6f 6c 2c 20 24 61 29 20 3e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 ty($pool,.$a).>.$this->getPriori
52560 74 79 28 24 70 6f 6f 6c 2c 20 24 62 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 0a 0a 0a 0a ty($pool,.$b)).?.-1.:.1;.}......
52580 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 72 65 70 6c 61 63 65 ......protected.function.replace
525a0 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 2c 20 50 61 63 6b s(PackageInterface.$source,.Pack
525c0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 ageInterface.$target).{.foreach.
525e0 28 24 73 6f 75 72 63 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 ($source->getReplaces().as.$link
52600 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 ).{.if.($link->getTarget().===.$
52620 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 0a 0a 20 29 20 7b 0a 72 65 74 75 72 6e 20 target->getName()....).{.return.
52640 74 72 75 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 70 72 6f 74 true;.}.}..return.false;.}..prot
52660 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f ected.function.pruneToBestVersio
52680 6e 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 62 65 73 74 n(Pool.$pool,.$literals).{.$best
526a0 4c 69 74 65 72 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 Literals.=.array($literals[0]);.
526c0 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 $bestPackage.=.$pool->literalToP
526e0 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ackage($literals[0]);.foreach.($
52700 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 69 66 literals.as.$i.=>.$literal).{.if
52720 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b .(0.===.$i).{.continue;.}..$pack
52740 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
52760 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 iteral);..if.($this->versionComp
52780 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3e 27 29 are($package,.$bestPackage,.'>')
527a0 29 20 7b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 62 65 ).{.$bestPackage.=.$package;.$be
527c0 73 74 4c 69 74 65 72 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 stLiterals.=.array($literal);.}.
527e0 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 elseif.($this->versionCompare($p
52800 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 ackage,.$bestPackage,.'==')).{.$
52820 62 65 73 74 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a bestLiterals[].=.$literal;.}.}..
52840 72 65 74 75 72 6e 20 24 62 65 73 74 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 return.$bestLiterals;.}..protect
52860 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 4e 65 77 65 73 74 50 61 63 6b 61 67 65 73 ed.function.selectNewestPackages
52880 28 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
528a0 65 72 61 6c 73 29 0a 7b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c erals).{.$maxLiterals.=.array($l
528c0 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 iterals[0]);.$maxPackage.=.$lite
528e0 72 61 6c 73 5b 30 5d 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 rals[0]->getPackage();.foreach.(
52900 24 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 69 $literals.as.$i.=>.$literal).{.i
52920 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 f.(0.===.$i).{.continue;.}..if.(
52940 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 3e $this->versionCompare($literal->
52960 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 3e 27 29 29 getPackage(),.$maxPackage,.'>'))
52980 20 7b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 .{.$maxPackage.=.$literal->getPa
529a0 63 6b 61 67 65 28 29 3b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c ckage();.$maxLiterals.=.array($l
529c0 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 73 69 6f iteral);.}.elseif.($this->versio
529e0 6e 43 6f 6d 70 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 nCompare($literal->getPackage(),
52a00 20 24 6d 61 78 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 6d 61 78 4c 69 74 65 72 .$maxPackage,.'==')).{.$maxLiter
52a20 61 6c 73 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 6e 20 24 6d als[].=.$literal;.}.}..return.$m
52a40 61 78 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 axLiterals;.}.....protected.func
52a60 74 69 6f 6e 20 70 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 tion.pruneToHighestPriorityOrIns
52a80 74 61 6c 6c 65 64 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 talled(Pool.$pool,.array.$instal
52aa0 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 73 65 6c 65 ledMap,.array.$literals).{.$sele
52ac0 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 6e 75 6c cted.=.array();..$priority.=.nul
52ae0 6c 3b 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 6c 69 74 65 72 l;..foreach.($literals.as.$liter
52b00 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 al).{.$package.=.$pool->literalT
52b20 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 69 73 73 65 74 28 24 oPackage($literal);..if.(isset($
52b40 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 29 5d 29 installedMap[$package->getId()])
52b60 29 20 7b 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 63 6f 6e 74 ).{.$selected[].=.$literal;.cont
52b80 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 inue;.}..if.(null.===.$priority)
52ba0 20 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 .{.$priority.=.$this->getPriorit
52bc0 79 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 y($pool,.$package);.}..if.($this
52be0 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 20 21 ->getPriority($pool,.$package).!
52c00 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 =.$priority).{.break;.}..$select
52c20 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 ed[].=.$literal;.}..return.$sele
52c40 63 74 65 64 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 cted;.}.......protected.function
52c60 20 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 .pruneRemoteAliases(Pool.$pool,.
52c80 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 array.$literals).{.$hasLocalAlia
52ca0 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 s.=.false;..foreach.($literals.a
52cc0 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 70 6f 6f 6c 2d 3e s.$literal).{.$package.=.$pool->
52ce0 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 66 20 literalToPackage($literal);..if.
52d00 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 67 ($package.instanceof.AliasPackag
52d20 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 e.&&.$package->isRootPackageAlia
52d40 73 28 29 29 20 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 74 72 75 65 3b 0a 62 72 s()).{.$hasLocalAlias.=.true;.br
52d60 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 29 20 7b eak;.}.}..if.(!$hasLocalAlias).{
52d80 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 .return.$literals;.}..$selected.
52da0 3d 20 61 72 72 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 =.array();.foreach.($literals.as
52dc0 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 70 6f 6f 6c 2d 3e 6c .$literal).{.$package.=.$pool->l
52de0 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 66 20 28 iteralToPackage($literal);..if.(
52e00 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 67 65 $package.instanceof.AliasPackage
52e20 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 .&&.$package->isRootPackageAlias
52e40 28 29 29 20 7b 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 0a ()).{.$selected[].=.$literal;.}.
52e60 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a }..return.$selected;.}.}.<?php..
52e80 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
52ea0 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 63 endencyResolver;.......class.Dec
52ec0 69 73 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 2c 20 5c 43 6f isions.implements.\Iterator,.\Co
52ee0 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c untable.{.const.DECISION_LITERAL
52f00 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 20 31 3b .=.0;.const.DECISION_REASON.=.1;
52f20 0a 0a 70 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 64 65 ..protected.$pool;.protected.$de
52f40 63 69 73 69 6f 6e 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 51 75 cisionMap;.protected.$decisionQu
52f60 65 75 65 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 eue.=.array();..public.function.
52f80 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c __construct($pool).{.$this->pool
52fa0 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d 20 61 .=.$pool;.$this->decisionMap.=.a
52fc0 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 64 65 63 69 64 rray();.}..public.function.decid
52fe0 65 28 24 6c 69 74 65 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 e($literal,.$level,.$why).{.$thi
53000 73 2d 3e 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 s->addDecision($literal,.$level)
53020 3b 0a 24 74 68 69 73 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 ;.$this->decisionQueue[].=.array
53040 28 0a 73 65 6c 66 3a 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 (.self::DECISION_LITERAL.=>.$lit
53060 65 72 61 6c 2c 0a 73 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 eral,.self::DECISION_REASON.=>.$
53080 77 68 79 2c 0a 29 3b 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 why,.);.}..public.function.satis
530a0 66 79 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 62 73 28 fy($literal).{.$packageId.=.abs(
530c0 24 6c 69 74 65 72 61 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 $literal);..return.(.$literal.>.
530e0 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 0.&&.isset($this->decisionMap[$p
53100 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 ackageId]).&&.$this->decisionMap
53120 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 20 7c 7c 0a 24 6c 69 74 65 72 61 6c 20 3c 20 30 [$packageId].>.0.||.$literal.<.0
53140 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 .&&.isset($this->decisionMap[$pa
53160 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b ckageId]).&&.$this->decisionMap[
53180 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 6c 69 63 20 66 75 6e $packageId].<.0.);.}..public.fun
531a0 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 7b 0a 24 70 61 63 6b ction.conflict($literal).{.$pack
531c0 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 65 74 75 72 6e 20 28 ageId.=.abs($literal);..return.(
531e0 0a 28 69 73 73 65 74 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 .(isset($this->decisionMap[$pack
53200 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 ageId]).&&.$this->decisionMap[$p
53220 61 63 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 ackageId].>.0.&&.$literal.<.0).|
53240 7c 0a 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 |.(isset($this->decisionMap[$pac
53260 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 kageId]).&&.$this->decisionMap[$
53280 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 0a packageId].<.0.&&.$literal.>.0).
532a0 29 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 64 65 64 28 24 6c );.}..public.function.decided($l
532c0 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 21 65 6d 70 iteralOrPackageId).{.return.!emp
532e0 74 79 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 69 74 65 72 ty($this->decisionMap[abs($liter
53300 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 66 75 6e 63 alOrPackageId)]);.}..public.func
53320 74 69 6f 6e 20 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 tion.undecided($literalOrPackage
53340 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 Id).{.return.empty($this->decisi
53360 6f 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 29 onMap[abs($literalOrPackageId)])
53380 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 64 65 64 49 6e 73 74 ;.}..public.function.decidedInst
533a0 61 6c 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 24 70 61 63 6b all($literalOrPackageId).{.$pack
533c0 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 ageId.=.abs($literalOrPackageId)
533e0 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d ;..return.isset($this->decisionM
53400 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 ap[$packageId]).&&.$this->decisi
53420 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 onMap[$packageId].>.0;.}..public
53440 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c .function.decisionLevel($literal
53460 4f 72 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 OrPackageId).{.$packageId.=.abs(
53480 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 69 66 20 28 69 73 73 65 74 28 $literalOrPackageId);.if.(isset(
534a0 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 29 29 $this->decisionMap[$packageId]))
534c0 20 7b 0a 72 65 74 75 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 .{.return.abs($this->decisionMap
534e0 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 [$packageId]);.}..return.0;.}..p
53500 75 62 6c 69 63 20 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 ublic.function.decisionRule($lit
53520 65 72 61 6c 4f 72 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 eralOrPackageId).{.$packageId.=.
53540 61 62 73 28 24 6c 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 abs($literalOrPackageId);..forea
53560 63 68 20 28 24 74 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 ch.($this->decisionQueue.as.$i.=
53580 3e 20 24 64 65 63 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 >.$decision).{.if.($packageId.==
535a0 3d 20 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 4e 5f 4c =.abs($decision[self::DECISION_L
535c0 49 54 45 52 41 4c 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 ITERAL])).{.return.$decision[sel
535e0 66 3a 3a 44 45 43 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 f::DECISION_REASON];.}.}..return
53600 20 6e 75 6c 6c 3b 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 .null;.}..public.function.atOffs
53620 65 74 28 24 71 75 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 et($queueOffset).{.return.$this-
53640 3e 64 65 63 69 73 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 >decisionQueue[$queueOffset];.}.
53660 0a 70 75 62 6c 69 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 .public.function.validOffset($qu
53680 65 75 65 4f 66 66 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 eueOffset).{.return.$queueOffset
536a0 20 3e 3d 20 30 20 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 .>=.0.&&.$queueOffset.<.count($t
536c0 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
536e0 75 6e 63 74 69 6f 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 unction.lastReason().{.return.$t
53700 68 69 73 2d 3e 64 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 his->decisionQueue[count($this->
53720 64 65 63 69 73 69 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 decisionQueue).-.1][self::DECISI
53740 4f 4e 5f 52 45 41 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 ON_REASON];.}..public.function.l
53760 61 73 74 4c 69 74 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 astLiteral().{.return.$this->dec
53780 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 6f 6e isionQueue[count($this->decision
537a0 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 4c 49 54 45 52 Queue).-.1][self::DECISION_LITER
537c0 41 4c 5d 3b 0a 7d 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 AL];.}..public.function.reset().
537e0 7b 0a 77 68 69 6c 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 {.while.($decision.=.array_pop($
53800 74 68 69 73 2d 3e 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 this->decisionQueue)).{.$this->d
53820 65 63 69 73 69 6f 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 ecisionMap[abs($decision[self::D
53840 45 43 49 53 49 4f 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 ECISION_LITERAL])].=.0;.}.}..pub
53860 6c 69 63 20 66 75 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 lic.function.resetToOffset($offs
53880 65 74 29 0a 7b 0a 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 et).{.while.(count($this->decisi
538a0 6f 6e 51 75 65 75 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 onQueue).>.$offset.+.1).{.$decis
538c0 69 6f 6e 20 3d 20 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 ion.=.array_pop($this->decisionQ
538e0 75 65 75 65 29 3b 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 ueue);.$this->decisionMap[abs($d
53900 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 5d 29 ecision[self::DECISION_LITERAL])
53920 5d 20 3d 20 30 3b 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 ].=.0;.}.}..public.function.reve
53940 72 74 4c 61 73 74 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 rtLast().{.$this->decisionMap[ab
53960 73 28 24 74 68 69 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 s($this->lastLiteral())].=.0;.ar
53980 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 0a 7d ray_pop($this->decisionQueue);.}
539a0 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 7b 0a 72 65 74 75 ..public.function.count().{.retu
539c0 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 65 29 3b 0a rn.count($this->decisionQueue);.
539e0 7d 0a 0a 70 75 62 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 }..public.function.rewind().{.en
53a00 64 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 d($this->decisionQueue);.}..publ
53a20 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 63 ic.function.current().{.return.c
53a40 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 0a 7d 0a urrent($this->decisionQueue);.}.
53a60 0a 70 75 62 6c 69 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 .public.function.key().{.return.
53a80 6b 65 79 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 key($this->decisionQueue);.}..pu
53aa0 62 6c 69 63 20 66 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 blic.function.next().{.return.pr
53ac0 65 76 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 ev($this->decisionQueue);.}..pub
53ae0 6c 69 63 20 66 75 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 lic.function.valid().{.return.fa
53b00 6c 73 65 20 21 3d 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 lse.!==.current($this->decisionQ
53b20 75 65 75 65 29 3b 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 ueue);.}..public.function.isEmpt
53b40 79 28 29 0a 7b 0a 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 y().{.return.count($this->decisi
53b60 6f 6e 51 75 65 75 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 onQueue).===.0;.}..protected.fun
53b80 63 74 69 6f 6e 20 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 ction.addDecision($literal,.$lev
53ba0 65 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 6c 29 el).{.$packageId.=.abs($literal)
53bc0 3b 0a 0a 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 ;..$previousDecision.=.isset($th
53be0 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 29 20 3f 20 24 is->decisionMap[$packageId]).?.$
53c00 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 3a 20 this->decisionMap[$packageId].:.
53c20 6e 75 6c 6c 3b 0a 69 66 20 28 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 21 3d 20 30 null;.if.($previousDecision.!=.0
53c40 29 20 7b 0a 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c ).{.$literalString.=.$this->pool
53c60 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 0a 24 70 61 ->literalToString($literal);.$pa
53c80 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 61 ckage.=.$this->pool->literalToPa
53ca0 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 ckage($literal);.throw.new.Solve
53cc0 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 64 65 63 69 64 65 rBugException(."Trying.to.decide
53ce0 20 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 6f 6e 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c 2c .$literalString.on.level.$level,
53d00 20 65 76 65 6e 20 74 68 6f 75 67 68 20 24 70 61 63 6b 61 67 65 20 77 61 73 20 70 72 65 76 69 6f .even.though.$package.was.previo
53d20 75 73 6c 79 20 64 65 63 69 64 65 64 20 61 73 20 22 2e 28 69 6e 74 29 20 24 70 72 65 76 69 6f 75 usly.decided.as.".(int).$previou
53d40 73 44 65 63 69 73 69 6f 6e 2e 22 2e 22 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c sDecision.".".);.}..if.($literal
53d60 20 3e 20 30 29 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 .>.0).{.$this->decisionMap[$pack
53d80 61 67 65 49 64 5d 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ageId].=.$level;.}.else.{.$this-
53da0 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 3d 20 2d 24 6c 65 76 >decisionMap[$packageId].=.-$lev
53dc0 65 6c 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 el;.}.}.}.<?php............names
53de0 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 72 pace.Composer\DependencyResolver
53e00 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 0a 7b 0a ;.........class.RuleWatchNode.{.
53e20 70 75 62 6c 69 63 20 24 77 61 74 63 68 31 3b 0a 70 75 62 6c 69 63 20 24 77 61 74 63 68 32 3b 0a public.$watch1;.public.$watch2;.
53e40 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .protected.$rule;.......public.f
53e60 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 75 6c 65 29 0a 7b 0a 24 74 68 unction.__construct($rule).{.$th
53e80 69 73 2d 3e 72 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 is->rule.=.$rule;..$literals.=.$
53ea0 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 61 74 rule->getLiterals();..$this->wat
53ec0 63 68 31 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 30 20 3f 20 24 6c 69 ch1.=.count($literals).>.0.?.$li
53ee0 74 65 72 61 6c 73 5b 30 5d 20 3a 20 30 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 63 terals[0].:.0;.$this->watch2.=.c
53f00 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 31 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b ount($literals).>.1.?.$literals[
53f20 31 5d 20 3a 20 30 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 1].:.0;.}..........public.functi
53f40 6f 6e 20 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 44 65 63 69 73 69 6f 6e 73 20 24 64 65 on.watch2OnHighest(Decisions.$de
53f60 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 cisions).{.$literals.=.$this->ru
53f80 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 0a 20 69 66 20 28 24 6c 69 74 65 72 le->getLiterals();....if.($liter
53fa0 61 6c 73 20 3c 20 33 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 77 61 74 63 68 4c 65 76 65 als.<.3).{.return;.}..$watchLeve
53fc0 6c 20 3d 20 30 3b 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 6c l.=.0;..foreach.($literals.as.$l
53fe0 69 74 65 72 61 6c 29 20 7b 0a 24 6c 65 76 65 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 iteral).{.$level.=.$decisions->d
54000 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 65 ecisionLevel($literal);..if.($le
54020 76 65 6c 20 3e 20 24 77 61 74 63 68 4c 65 76 65 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 vel.>.$watchLevel).{.$this->rule
54040 2d 3e 77 61 74 63 68 32 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 77 61 74 63 68 4c 65 76 65 6c ->watch2.=.$literal;.$watchLevel
54060 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .=.$level;.}.}.}.......public.fu
54080 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getRule().{.return.$this-
540a0 3e 72 75 6c 65 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 >rule;.}........public.function.
540c0 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 69 66 20 28 24 74 getOtherWatch($literal).{.if.($t
540e0 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 3d 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 72 65 74 75 72 his->watch1.==.$literal).{.retur
54100 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e n.$this->watch2;.}.else.{.return
54120 20 24 74 68 69 73 2d 3e 77 61 74 63 68 31 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .$this->watch1;.}.}........publi
54140 63 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 2c 20 24 74 6f 29 c.function.moveWatch($from,.$to)
54160 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 66 72 6f 6d 29 20 7b .{.if.($this->watch1.==.$from).{
54180 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 24 74 6f 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 .$this->watch1.=.$to;.}.else.{.$
541a0 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 24 74 6f 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a this->watch2.=.$to;.}.}.}.<?php.
541c0 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
541e0 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 53 6f 6c 76 pendencyResolver;.....class.Solv
54200 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e erProblemsException.extends.\Run
54220 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c timeException.{.protected.$probl
54240 65 6d 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 ems;.protected.$installedMap;..p
54260 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
54280 20 24 70 72 6f 62 6c 65 6d 73 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 .$problems,.array.$installedMap)
542a0 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 3d 20 24 70 72 6f 62 6c 65 6d 73 3b 0a .{.$this->problems.=.$problems;.
542c0 24 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 $this->installedMap.=.$installed
542e0 4d 61 70 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d Map;..parent::__construct($this-
54300 3e 63 72 65 61 74 65 4d 65 73 73 61 67 65 28 29 2c 20 32 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 >createMessage(),.2);.}..protect
54320 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 65 73 73 61 67 65 28 29 0a 7b 0a 24 74 ed.function.createMessage().{.$t
54340 65 78 74 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 ext.=."\n";.foreach.($this->prob
54360 6c 65 6d 73 20 61 73 20 24 69 20 3d 3e 20 24 70 72 6f 62 6c 65 6d 29 20 7b 0a 24 74 65 78 74 20 lems.as.$i.=>.$problem).{.$text.
54380 2e 3d 20 22 20 20 50 72 6f 62 6c 65 6d 20 22 2e 28 24 69 2b 31 29 2e 24 70 72 6f 62 6c 65 6d 2d .=."..Problem.".($i+1).$problem-
543a0 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 >getPrettyString($this->installe
543c0 64 4d 61 70 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 74 65 78 74 2c dMap)."\n";.}..if.(strpos($text,
543e0 20 27 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 27 29 20 7c 7c 20 73 74 72 70 6f 73 .'could.not.be.found').||.strpos
54400 28 24 74 65 78 74 2c 20 27 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 66 6f 75 ($text,.'no.matching.package.fou
54420 6e 64 27 29 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 5c 6e 50 6f 74 65 6e 74 69 61 6c 20 63 61 nd')).{.$text..=."\nPotential.ca
54440 75 73 65 73 3a 5c 6e 20 2d 20 41 20 74 79 70 6f 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 20 uses:\n.-.A.typo.in.the.package.
54460 6e 61 6d 65 5c 6e 20 2d 20 54 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 61 76 61 69 name\n.-.The.package.is.not.avai
54480 6c 61 62 6c 65 20 69 6e 20 61 20 73 74 61 62 6c 65 2d 65 6e 6f 75 67 68 20 76 65 72 73 69 6f 6e lable.in.a.stable-enough.version
544a0 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 79 6f 75 72 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 .according.to.your.minimum-stabi
544c0 6c 69 74 79 20 73 65 74 74 69 6e 67 5c 6e 20 20 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 67 72 lity.setting\n...see.<https://gr
544e0 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 6f 6d 70 6f 73 65 72 oups.google.com/d/topic/composer
54500 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 6f 6e 3e 20 66 6f 72 -dev/_g3ASeIFlrc/discussion>.for
54520 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 5c 6e 5c 6e 52 65 61 64 20 3c 68 74 74 70 3a 2f 2f 67 .more.details.\n\nRead.<http://g
54540 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 etcomposer.org/doc/articles/trou
54560 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 3e 20 66 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6d 6d bleshooting.md>.for.further.comm
54580 6f 6e 20 70 72 6f 62 6c 65 6d 73 2e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a on.problems.";.}..return.$text;.
545a0 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 62 6c 65 6d 73 28 29 }..public.function.getProblems()
545c0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 3b 0a 7d 0a 7d 0a 3c .{.return.$this->problems;.}.}.<
545e0 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
54600 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
54620 6f 73 65 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 oser\Package\AliasPackage;.use.C
54640 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 4f 70 65 72 61 omposer\DependencyResolver\Opera
54660 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 61 63 74 69 6f 6e 0a 7b 0a 70 72 tion;.....class.Transaction.{.pr
54680 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c otected.$policy;.protected.$pool
546a0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 70 72 6f 74 65 ;.protected.$installedMap;.prote
546c0 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 64 20 24 74 72 61 6e cted.$decisions;.protected.$tran
546e0 73 61 63 74 69 6f 6e 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 saction;..public.function.__cons
54700 74 72 75 63 74 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 64 truct($policy,.$pool,.$installed
54720 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 Map,.$decisions).{.$this->policy
54740 20 3d 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 .=.$policy;.$this->pool.=.$pool;
54760 0a 24 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 .$this->installedMap.=.$installe
54780 64 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 3d 20 24 64 65 63 69 73 69 dMap;.$this->decisions.=.$decisi
547a0 6f 6e 73 3b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d 20 61 72 72 61 79 28 ons;.$this->transaction.=.array(
547c0 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 4f 70 65 72 61 74 69 );.}..public.function.getOperati
547e0 6f 6e 73 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 ons().{.$installMeansUpdateMap.=
54800 20 24 74 68 69 73 2d 3e 66 69 6e 64 55 70 64 61 74 65 73 28 29 3b 0a 0a 24 75 70 64 61 74 65 4d .$this->findUpdates();..$updateM
54820 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 61 72 72 61 ap.=.array();.$installMap.=.arra
54840 79 28 29 3b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 y();.$uninstallMap.=.array();..f
54860 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d oreach.($this->decisions.as.$i.=
54880 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 >.$decision).{.$literal.=.$decis
548a0 69 6f 6e 5b 44 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 ion[Decisions::DECISION_LITERAL]
548c0 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a ;.$reason.=.$decision[Decisions:
548e0 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 :DECISION_REASON];..$package.=.$
54900 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 6c 69 this->pool->literalToPackage($li
54920 74 65 72 61 6c 29 3b 0a 0a 0a 20 69 66 20 28 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 3d 3d teral);....if.(($literal.>.0).==
54940 20 28 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 63 .(isset($this->installedMap[$pac
54960 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a kage->getId()]))).{.continue;.}.
54980 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 .if.($literal.>.0).{.if.(isset($
549a0 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
549c0 61 6c 29 5d 29 20 26 26 20 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c al)]).&&.!$package.instanceof.Al
549e0 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 0a 24 73 6f 75 72 63 65 20 3d 20 24 69 6e 73 74 61 6c iasPackage).{..$source.=.$instal
54a00 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 61 6c 29 5d 3b 0a lMeansUpdateMap[abs($literal)];.
54a20 0a 24 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 5d 20 3d .$updateMap[$package->getId()].=
54a40 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 0a 27 .array(.'package'.=>.$package,.'
54a60 73 6f 75 72 63 65 27 20 3d 3e 20 24 73 6f 75 72 63 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 source'.=>.$source,.'reason'.=>.
54a80 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 0a 20 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 $reason,.);....unset($installMea
54aa0 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 3b 0a 24 69 67 nsUpdateMap[abs($literal)]);.$ig
54ac0 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 73 6f 75 72 63 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 noreRemove[$source->getId()].=.t
54ae0 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 rue;.}.else.{.$installMap[$packa
54b00 67 65 2d 3e 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 ge->getId()].=.array(.'package'.
54b20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e =>.$package,.'reason'.=>.$reason
54b40 2c 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 ,.);.}.}.}..foreach.($this->deci
54b60 73 69 6f 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 sions.as.$i.=>.$decision).{.$lit
54b80 65 72 61 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 eral.=.$decision[Decisions::DECI
54ba0 53 49 4f 4e 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 SION_LITERAL];.$package.=.$this-
54bc0 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 6c 69 74 65 72 61 6c >pool->literalToPackage($literal
54be0 29 3b 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 26 0a 69 73 73 65 74 28 24 );..if.($literal.<=.0.&&.isset($
54c00 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 65 2d 3e 67 65 74 this->installedMap[$package->get
54c20 49 64 28 29 5d 29 20 26 26 0a 21 69 73 73 65 74 28 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 Id()]).&&.!isset($ignoreRemove[$
54c40 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 75 6e 69 6e 73 74 61 6c 6c package->getId()])).{.$uninstall
54c60 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(.
54c80 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'.
54ca0 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e =>.$reason,.);..}.}..$this->tran
54cc0 73 61 63 74 69 6f 6e 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 sactionFromMaps($installMap,.$up
54ce0 64 61 74 65 4d 61 70 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 3b 0a 0a 72 65 74 75 72 6e dateMap,.$uninstallMap);..return
54d00 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 .$this->transaction;.}..protecte
54d20 64 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 28 24 d.function.transactionFromMaps($
54d40 69 6e 73 74 61 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 installMap,.$updateMap,.$uninsta
54d60 6c 6c 4d 61 70 29 0a 7b 0a 24 71 75 65 75 65 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 llMap).{.$queue.=.array_map(func
54d80 74 69 6f 6e 20 28 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 tion.($operation).{.return.$oper
54da0 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 7d 2c 0a 24 74 68 69 73 2d 3e 66 69 6e 64 ation['package'];.},.$this->find
54dc0 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 RootPackages($installMap,.$updat
54de0 65 4d 61 70 29 0a 29 3b 0a 0a 24 76 69 73 69 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 eMap).);..$visited.=.array();..w
54e00 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 hile.(!empty($queue)).{.$package
54e20 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 29 3b 0a 24 70 61 63 6b 61 67 65 49 64 .=.array_pop($queue);.$packageId
54e40 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 .=.$package->getId();..if.(!isse
54e60 74 28 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 61 72 72 61 79 t($visited[$packageId])).{.array
54e80 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 70 _push($queue,.$package);..if.($p
54ea0 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 20 ackage.instanceof.AliasPackage).
54ec0 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 2d 3e 67 {.array_push($queue,.$package->g
54ee0 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 etAliasOf());.}.else.{.foreach.(
54f00 24 70 61 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 $package->getRequires().as.$link
54f20 29 20 7b 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 ).{.$possibleRequires.=.$this->p
54f40 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 67 ool->whatProvides($link->getTarg
54f60 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 0a et(),.$link->getConstraint());..
54f80 66 6f 72 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 foreach.($possibleRequires.as.$r
54fa0 65 71 75 69 72 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 72 65 equire).{.array_push($queue,.$re
54fc0 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 quire);.}.}.}..$visited[$package
54fe0 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 ->getId()].=.true;.}.else.{.if.(
55000 69 73 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 64 5d 29 29 20 isset($installMap[$packageId])).
55020 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 {.$this->install(.$installMap[$p
55040 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a 24 69 6e 73 74 61 6c 6c 4d 61 ackageId]['package'],.$installMa
55060 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 p[$packageId]['reason'].);.unset
55080 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 69 66 20 ($installMap[$packageId]);.}.if.
550a0 28 69 73 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 29 29 20 (isset($updateMap[$packageId])).
550c0 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 28 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 {.$this->update(.$updateMap[$pac
550e0 6b 61 67 65 49 64 5d 5b 27 73 6f 75 72 63 65 27 5d 2c 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 kageId]['source'],.$updateMap[$p
55100 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a 24 75 70 64 61 74 65 4d 61 70 ackageId]['package'],.$updateMap
55120 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 [$packageId]['reason'].);.unset(
55140 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a $updateMap[$packageId]);.}.}.}..
55160 66 6f 72 65 61 63 68 20 28 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 61 73 20 24 75 6e 69 6e 73 foreach.($uninstallMap.as.$unins
55180 74 61 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 75 6e 69 6e 73 74 tall).{.$this->uninstall($uninst
551a0 61 6c 6c 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 72 65 61 73 all['package'],.$uninstall['reas
551c0 6f 6e 27 5d 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 on']);.}.}..protected.function.f
551e0 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 61 70 2c 20 24 75 70 indRootPackages($installMap,.$up
55200 64 61 74 65 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 69 6e 73 74 61 6c 6c 4d dateMap).{.$packages.=.$installM
55220 61 70 20 2b 20 24 75 70 64 61 74 65 4d 61 70 3b 0a 24 72 6f 6f 74 73 20 3d 20 24 70 61 63 6b 61 ap.+.$updateMap;.$roots.=.$packa
55240 67 65 73 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 63 ges;..foreach.($packages.as.$pac
55260 6b 61 67 65 49 64 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 kageId.=>.$operation).{.$package
55280 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 0a 69 66 20 28 21 .=.$operation['package'];..if.(!
552a0 69 73 73 65 74 28 24 72 6f 6f 74 73 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 63 6f 6e isset($roots[$packageId])).{.con
552c0 74 69 6e 75 65 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 74 tinue;.}..foreach.($package->get
552e0 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 Requires().as.$link).{.$possible
55300 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 Requires.=.$this->pool->whatProv
55320 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 24 6c 69 6e 6b 2d 3e ides($link->getTarget(),.$link->
55340 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 68 20 28 24 70 6f 73 getConstraint());..foreach.($pos
55360 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 75 6e 73 sibleRequires.as.$require).{.uns
55380 65 74 28 24 72 6f 6f 74 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 49 64 28 29 5d 29 3b 0a 7d et($roots[$require->getId()]);.}
553a0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 6f 6f 74 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 .}.}..return.$roots;.}..protecte
553c0 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 73 28 29 0a 7b 0a 24 69 6e 73 74 d.function.findUpdates().{.$inst
553e0 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f allMeansUpdateMap.=.array();..fo
55400 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d 3e reach.($this->decisions.as.$i.=>
55420 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 .$decision).{.$literal.=.$decisi
55440 6f 6e 5b 44 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 on[Decisions::DECISION_LITERAL];
55460 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 6c 69 74 65 72 61 6c .$package.=.$this->pool->literal
55480 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 70 61 63 6b 61 ToPackage($literal);..if.($packa
554a0 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 63 6f ge.instanceof.AliasPackage).{.co
554c0 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 ntinue;.}....if.($literal.<=.0.&
554e0 26 20 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 63 &.isset($this->installedMap[$pac
55500 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 75 70 64 61 74 65 73 20 3d 20 24 74 kage->getId()])).{.$updates.=.$t
55520 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 his->policy->findUpdatePackages(
55540 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 $this->pool,.$this->installedMap
55560 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 ,.$package);..$literals.=.array(
55580 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 $package->getId());..foreach.($u
555a0 70 64 61 74 65 73 20 61 73 20 24 75 70 64 61 74 65 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d pdates.as.$update).{.$literals[]
555c0 20 3d 20 24 75 70 64 61 74 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 .=.$update->getId();.}..foreach.
555e0 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 29 20 7b 0a ($literals.as.$updateLiteral).{.
55600 69 66 20 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 20 21 3d 3d 20 24 6c 69 74 65 72 61 6c 29 if.($updateLiteral.!==.$literal)
55620 20 7b 0a 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 75 .{.$installMeansUpdateMap[abs($u
55640 70 64 61 74 65 4c 69 74 65 72 61 6c 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d pdateLiteral)].=.$package;.}.}.}
55660 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 .}..return.$installMeansUpdateMa
55680 70 3b 0a 7d 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 p;.}..protected.function.install
556a0 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 ($package,.$reason).{.if.($packa
556c0 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 72 65 ge.instanceof.AliasPackage).{.re
556e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 turn.$this->markAliasInstalled($
55700 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 package,.$reason);.}..$this->tra
55720 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 nsaction[].=.new.Operation\Insta
55740 6c 6c 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 llOperation($package,.$reason);.
55760 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 28 24 66 72 }..protected.function.update($fr
55780 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 om,.$to,.$reason).{.$this->trans
557a0 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f action[].=.new.Operation\UpdateO
557c0 70 65 72 61 74 69 6f 6e 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d peration($from,.$to,.$reason);.}
557e0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 24 ..protected.function.uninstall($
55800 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 package,.$reason).{.if.($package
55820 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 72 65 74 75 .instanceof.AliasPackage).{.retu
55840 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 24 rn.$this->markAliasUninstalled($
55860 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 package,.$reason);.}..$this->tra
55880 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 nsaction[].=.new.Operation\Unins
558a0 74 61 6c 6c 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 tallOperation($package,.$reason)
558c0 3b 0a 7d 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 ;.}..protected.function.markAlia
558e0 73 49 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 sInstalled($package,.$reason).{.
55900 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
55920 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 72 61 74 69 6f 6e tion\MarkAliasInstalledOperation
55940 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ($package,.$reason);.}..protecte
55960 64 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 64 28 d.function.markAliasUninstalled(
55980 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e $package,.$reason).{.$this->tran
559a0 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c saction[].=.new.Operation\MarkAl
559c0 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 iasUninstalledOperation($package
559e0 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.$reason);.}.}.<?php...........
55a00 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
55a20 73 6f 6c 76 65 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 solver\Operation;..use.Composer\
55a40 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 0a Package\PackageInterface;.......
55a60 63 6c 61 73 73 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 class.UninstallOperation.extends
55a80 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
55aa0 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.__
55ac0 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b construct(PackageInterface.$pack
55ae0 61 67 65 2c 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 age,.$reason.=.null).{.parent::_
55b00 5f 63 6f 6e 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 _construct($reason);..$this->pac
55b20 6b 61 67 65 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 kage.=.$package;.}.......public.
55b40 66 75 6e 63 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 function.getPackage().{.return.$
55b60 74 68 69 73 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 this->package;.}.......public.fu
55b80 6e 63 74 69 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 75 6e nction.getJobType().{.return.'un
55ba0 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 6e 63 74 69 6f 6e 20 install';.}.....public.function.
55bc0 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 55 6e 69 6e 73 74 61 6c 6c __toString().{.return.'Uninstall
55be0 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
55c00 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(
55c20 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 70 68 70 0a 0a $this->package).')';.}.}.<?php..
55c40 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
55c60 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 20 endencyResolver\Operation;..use.
55c80 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
55ca0 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 65 e;.......class.UpdateOperation.e
55cc0 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 65 63 74 xtends.SolverOperation.{.protect
55ce0 65 64 20 24 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 ed.$initialPackage;.protected.$t
55d00 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e argetPackage;.........public.fun
55d20 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 61 ction.__construct(PackageInterfa
55d40 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 20 24 74 ce.$initial,.PackageInterface.$t
55d60 61 72 67 65 74 2c 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 arget,.$reason.=.null).{.parent:
55d80 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 74 68 69 73 2d 3e 69 :__construct($reason);..$this->i
55da0 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 69 6e 69 74 69 61 6c 3b 0a 24 74 68 69 73 2d nitialPackage.=.$initial;.$this-
55dc0 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 20 3d 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a >targetPackage.=.$target;.}.....
55de0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b ..public.function.getInitialPack
55e00 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 age().{.return.$this->initialPac
55e20 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 6f 6e 20 67 65 kage;.}.......public.function.ge
55e40 74 54 61 72 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 tTargetPackage().{.return.$this-
55e60 3e 74 61 72 67 65 74 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 >targetPackage;.}.......public.f
55e80 75 6e 63 74 69 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 75 unction.getJobType().{.return.'u
55ea0 70 64 61 74 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 5f 5f pdate';.}.....public.function.__
55ec0 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 55 70 64 61 74 69 6e 67 20 27 2e toString().{.return.'Updating.'.
55ee0 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 $this->initialPackage->getPretty
55f00 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 6e Name().'.('.$this->formatVersion
55f20 28 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 29 2e 27 29 20 74 6f 20 27 2e ($this->initialPackage).').to.'.
55f40 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 .$this->targetPackage->getPretty
55f60 4e 61 6d 65 28 29 2e 20 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f Name()..'.('.$this->formatVersio
55f80 6e 28 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d n($this->targetPackage).')';.}.}
55fa0 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
55fc0 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 6f oser\DependencyResolver\Operatio
55fe0 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 41 6c 69 61 73 50 61 n;..use.Composer\Package\AliasPa
56000 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 ckage;.......class.MarkAliasInst
56020 61 6c 6c 65 64 4f 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 alledOperation.extends.SolverOpe
56040 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a ration.{.protected.$package;....
56060 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(
56080 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d AliasPackage.$package,.$reason.=
560a0 20 6e 75 6c 6c 29 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 .null).{.parent::__construct($re
560c0 61 73 6f 6e 29 3b 0a 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 ason);..$this->package.=.$packag
560e0 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 50 61 e;.}.......public.function.getPa
56100 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 63 6b 61 67 65 3b ckage().{.return.$this->package;
56120 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 4a 6f 62 54 .}.......public.function.getJobT
56140 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c ype().{.return.'markAliasInstall
56160 65 64 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 5f 5f 74 6f 53 ed';.}.....public.function.__toS
56180 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 68 69 tring().{.return.'Marking.'.$thi
561a0 73 2d 3e 70 61 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 28 27 s->package->getPrettyName().'.('
561c0 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 61 63 .$this->formatVersion($this->pac
561e0 6b 61 67 65 29 2e 27 29 20 61 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 kage).').as.installed,.alias.of.
56200 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e '.$this->package->getAliasOf()->
56220 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
56240 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 atVersion($this->package->getAli
56260 61 73 4f 66 28 29 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 asOf()).')';.}.}.<?php..........
56280 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 52 ..namespace.Composer\DependencyR
562a0 65 73 6f 6c 76 65 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 esolver\Operation;..use.Composer
562c0 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 0a 0a 0a 0a 0a \Package\PackageInterface;......
562e0 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 .class.InstallOperation.extends.
56300 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 63 SolverOperation.{.protected.$pac
56320 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 63 kage;........public.function.__c
56340 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 onstruct(PackageInterface.$packa
56360 67 65 2c 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 ge,.$reason.=.null).{.parent::__
56380 63 6f 6e 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 construct($reason);..$this->pack
563a0 61 67 65 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 age.=.$package;.}.......public.f
563c0 75 6e 63 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 unction.getPackage().{.return.$t
563e0 68 69 73 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 his->package;.}.......public.fun
56400 63 74 69 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 69 6e 73 ction.getJobType().{.return.'ins
56420 74 61 6c 6c 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 5f 5f 74 tall';.}.....public.function.__t
56440 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 69 6e 67 20 27 oString().{.return.'Installing.'
56460 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 61 6d 65 28 29 .$this->package->getPrettyName()
56480 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 24 74 68 69 73 .'.('.$this->formatVersion($this
564a0 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ->package).')';.}.}.<?php.......
564c0 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 6e .....namespace.Composer\Dependen
564e0 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 20 43 6f 6d 70 6f cyResolver\Operation;..use.Compo
56500 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 72 73 65 ser\Package\Version\VersionParse
56520 72 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 r;.use.Composer\Package\PackageI
56540 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 nterface;.......abstract.class.S
56560 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 70 65 72 61 74 olverOperation.implements.Operat
56580 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e ionInterface.{.protected.$reason
565a0 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 73 74 72 ;.......public.function.__constr
565c0 75 63 74 28 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 61 uct($reason.=.null).{.$this->rea
565e0 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 son.=.$reason;.}.......public.fu
56600 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 nction.getReason().{.return.$thi
56620 73 2d 3e 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e s->reason;.}..protected.function
56640 20 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 .formatVersion(PackageInterface.
56660 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 $package).{.return.VersionParser
56680 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 3c ::formatVersion($package);.}.}.<
566a0 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
566c0 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;
566e0 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
56700 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 age;.......class.MarkAliasUninst
56720 61 6c 6c 65 64 4f 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 alledOperation.extends.SolverOpe
56740 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a ration.{.protected.$package;....
56760 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(
56780 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d AliasPackage.$package,.$reason.=
567a0 20 6e 75 6c 6c 29 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 .null).{.parent::__construct($re
567c0 61 73 6f 6e 29 3b 0a 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 ason);..$this->package.=.$packag
567e0 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 50 61 e;.}.......public.function.getPa
56800 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 63 6b 61 67 65 3b ckage().{.return.$this->package;
56820 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 4a 6f 62 54 .}.......public.function.getJobT
56840 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 ype().{.return.'markAliasUninsta
56860 6c 6c 65 64 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 5f 5f 74 lled';.}.....public.function.__t
56880 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 oString().{.return.'Marking.'.$t
568a0 68 69 73 2d 3e 70 61 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 his->package->getPrettyName().'.
568c0 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
568e0 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 75 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 ackage).').as.uninstalled,.alias
56900 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 6c 69 61 73 4f 66 .of.'.$this->package->getAliasOf
56920 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 74 68 69 73 2d 3e ()->getPrettyName().'.('.$this->
56940 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 67 65 2d 3e 67 65 formatVersion($this->package->ge
56960 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 0a 0a 0a 0a 0a 0a tAliasOf()).')';.}.}.<?php......
56980 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
569a0 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 ncyResolver\Operation;.......int
569c0 65 72 66 61 63 65 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a erface.OperationInterface.{.....
569e0 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 3b 0a 0a .public.function.getJobType();..
56a00 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 61 73 6f 6e 28 29 .....public.function.getReason()
56a20 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 74 6f 53 74 72 69 ;.......public.function.__toStri
56a40 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 61 6d 65 73 70 61 ng();.}.<?php............namespa
56a60 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 0a ce.Composer\DependencyResolver;.
56a80 0a 75 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 .use.Composer\Package\BasePackag
56aa0 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 73 50 61 63 e;.use.Composer\Package\AliasPac
56ac0 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 65 5c 56 65 72 73 69 kage;.use.Composer\Package\Versi
56ae0 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 50 on\VersionParser;.use.Composer\P
56b00 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
56b20 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
56b40 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 4c nterface;.use.Composer\Package\L
56b60 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 6e 74 3b inkConstraint\VersionConstraint;
56b80 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
56ba0 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 52 65 70 6f 73 oryInterface;.use.Composer\Repos
56bc0 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 73 65 20 43 itory\CompositeRepository;.use.C
56be0 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
56c00 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 49 itory;.use.Composer\Repository\I
56c20 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 3b 0a 75 73 65 nstalledRepositoryInterface;.use
56c40 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 53 74 72 65 61 6d 61 62 6c 65 52 .Composer\Repository\StreamableR
56c60 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 73 65 72 epositoryInterface;.use.Composer
56c80 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;.
56ca0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6f 6f 6c 0a 7b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f .......class.Pool.{.const.MATCH_
56cc0 4e 41 4d 45 20 3d 20 2d 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 4f 4e 45 20 3d 20 30 3b NAME.=.-1;.const.MATCH_NONE.=.0;
56ce0 0a 63 6f 6e 73 74 20 4d 41 54 43 48 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 50 52 .const.MATCH.=.1;.const.MATCH_PR
56d00 4f 56 49 44 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 20 3d OVIDE.=.2;.const.MATCH_REPLACE.=
56d20 20 33 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 .3;..protected.$repositories.=.a
56d40 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 52 65 70 6f 73 rray();.protected.$providerRepos
56d60 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 20 .=.array();.protected.$packages.
56d80 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 4e =.array();.protected.$packageByN
56da0 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 63 63 65 70 74 ame.=.array();.protected.$accept
56dc0 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 ableStabilities;.protected.$stab
56de0 69 6c 69 74 79 46 6c 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 ilityFlags;.protected.$versionPa
56e00 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 43 61 63 68 65 20 3d rser;.protected.$providerCache.=
56e20 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 20 3d 20 31 3b 0a 0a 70 75 .array();.protected.$id.=.1;..pu
56e40 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
56e60 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
56e80 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
56ea0 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
56ec0 69 65 73 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 ies;.$this->versionParser.=.new.
56ee0 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 VersionParser;.$this->acceptable
56f00 53 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 Stabilities.=.array();.foreach.(
56f20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 20 61 73 20 24 73 74 BasePackage::$stabilities.as.$st
56f40 61 62 69 6c 69 74 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 ability.=>.$value).{.if.($value.
56f60 3c 3d 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 73 5b 24 6d 69 <=.BasePackage::$stabilities[$mi
56f80 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 nimumStability]).{.$this->accept
56fa0 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3d 20 24 76 ableStabilities[$stability].=.$v
56fc0 61 6c 75 65 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 alue;.}.}.$this->stabilityFlags.
56fe0 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 0a 0a 0a 70 75 62 6c =.$stabilityFlags;.}........publ
57000 69 63 20 66 75 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 ic.function.addRepository(Reposi
57020 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 24 72 6f 6f 74 41 6c 69 61 73 65 toryInterface.$repo,.$rootAliase
57040 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 s.=.array()).{.if.($repo.instanc
57060 65 6f 66 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 eof.CompositeRepository).{.$repo
57080 73 20 3d 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 s.=.$repo->getRepositories();.}.
570a0 65 6c 73 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 else.{.$repos.=.array($repo);.}.
570c0 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
570e0 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 3b 0a 0a 24 65 78 is->repositories[].=.$repo;..$ex
57100 65 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 empt.=.$repo.instanceof.Platform
57120 52 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 Repository.||.$repo.instanceof.I
57140 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 3b 0a 0a 69 66 nstalledRepositoryInterface;..if
57160 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 .($repo.instanceof.ComposerRepos
57180 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 itory.&&.$repo->hasProviders()).
571a0 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 52 65 70 6f 73 5b 5d 20 3d 20 24 72 65 70 6f {.$this->providerRepos[].=.$repo
571c0 3b 0a 24 72 65 70 6f 2d 3e 73 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 24 72 6f 6f 74 41 6c 69 ;.$repo->setRootAliases($rootAli
571e0 61 73 65 73 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 3b ases);.$repo->resetPackageIds();
57200 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 53 74 72 65 .}.elseif.($repo.instanceof.Stre
57220 61 6d 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 66 6f 72 amableRepositoryInterface).{.for
57240 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 4d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 28 each.($repo->getMinimalPackages(
57260 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 ).as.$package).{.$name.=.$packag
57280 65 5b 27 6e 61 6d 65 27 5d 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 e['name'];.$version.=.$package['
572a0 76 65 72 73 69 6f 6e 27 5d 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 version'];.$stability.=.VersionP
572c0 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b arser::parseStability($version);
572e0 0a 0a 0a 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 6e 61 6d 65 20 3d 3e 20 74 72 75 ....$names.=.array(.$name.=>.tru
57300 65 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 e,.);.if.(isset($package['provid
57320 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 e'])).{.foreach.($package['provi
57340 64 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 de'].as.$target.=>.$constraint).
57360 7b 0a 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 69 66 {.$names[$target].=.true;.}.}.if
57380 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a .(isset($package['replace'])).{.
573a0 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 5b 27 72 65 70 6c 61 63 65 27 5d 20 61 73 20 foreach.($package['replace'].as.
573c0 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 $target.=>.$constraint).{.$names
573e0 5b 24 74 61 72 67 65 74 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 20 3d 20 61 [$target].=.true;.}.}.$names.=.a
57400 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 0a 69 66 20 28 24 65 78 65 6d 70 74 20 rray_keys($names);..if.($exempt.
57420 7c 7c 20 24 74 68 69 73 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e ||.$this->isPackageAcceptable($n
57440 61 6d 65 73 2c 20 24 73 74 61 62 69 6c 69 74 79 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 5b 27 69 ames,.$stability)).{.$package['i
57460 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 64 2b 2b 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 d'].=.$this->id++;.$this->packag
57480 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 es[].=.$package;..foreach.($name
574a0 73 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 s.as.$provided).{.$this->package
574c0 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d ByName[$provided][$package['id']
574e0 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 ].=.$this->packages[$this->id.-.
57500 32 5d 3b 0a 7d 0a 0a 0a 20 75 6e 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 3b 0a 2];.}....unset($rootAliasData);.
57520 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 76 if.(isset($rootAliases[$name][$v
57540 65 72 73 69 6f 6e 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 72 6f ersion])).{.$rootAliasData.=.$ro
57560 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5d 3b 0a 7d 20 65 6c otAliases[$name][$version];.}.el
57580 73 65 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d seif.(isset($package['alias_norm
575a0 61 6c 69 7a 65 64 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b alized']).&&.isset($rootAliases[
575c0 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 $name][$package['alias_normalize
575e0 64 27 5d 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 72 6f 6f 74 41 d']])).{.$rootAliasData.=.$rootA
57600 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f liases[$name][$package['alias_no
57620 72 6d 61 6c 69 7a 65 64 27 5d 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 rmalized']];.}..if.(isset($rootA
57640 6c 69 61 73 44 61 74 61 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a liasData)).{.$alias.=.$package;.
57660 75 6e 73 65 74 28 24 61 6c 69 61 73 5b 27 72 61 77 27 5d 29 3b 0a 24 61 6c 69 61 73 5b 27 76 65 unset($alias['raw']);.$alias['ve
57680 72 73 69 6f 6e 27 5d 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 5f rsion'].=.$rootAliasData['alias_
576a0 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 20 3d 20 normalized'];.$alias['alias'].=.
576c0 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 27 5d 3b 0a 24 61 6c 69 61 73 5b $rootAliasData['alias'];.$alias[
576e0 27 61 6c 69 61 73 5f 6f 66 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 3b 0a 24 61 'alias_of'].=.$package['id'];.$a
57700 6c 69 61 73 5b 27 69 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 64 2b 2b 3b 0a 24 61 6c 69 61 73 lias['id'].=.$this->id++;.$alias
57720 5b 27 72 6f 6f 74 5f 61 6c 69 61 73 27 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 70 61 ['root_alias'].=.true;.$this->pa
57740 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 ckages[].=.$alias;..foreach.($na
57760 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 mes.as.$provided).{.$this->packa
57780 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 24 61 6c 69 61 73 5b 27 69 64 27 5d geByName[$provided][$alias['id']
577a0 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 ].=.$this->packages[$this->id.-.
577c0 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 61 2];.}.}....if.(isset($package['a
577e0 6c 69 61 73 27 5d 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 75 6e lias'])).{.$alias.=.$package;.un
57800 73 65 74 28 24 61 6c 69 61 73 5b 27 72 61 77 27 5d 29 3b 0a 24 61 6c 69 61 73 5b 27 76 65 72 73 set($alias['raw']);.$alias['vers
57820 69 6f 6e 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a ion'].=.$package['alias_normaliz
57840 65 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 ed'];.$alias['alias'].=.$package
57860 5b 27 61 6c 69 61 73 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 20 3d 20 ['alias'];.$alias['alias_of'].=.
57880 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 69 64 27 5d 20 3d 20 24 $package['id'];.$alias['id'].=.$
578a0 74 68 69 73 2d 3e 69 64 2b 2b 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 this->id++;.$this->packages[].=.
578c0 24 61 6c 69 61 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f $alias;..foreach.($names.as.$pro
578e0 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 vided).{.$this->packageByName[$p
57900 72 6f 76 69 64 65 64 5d 5b 24 61 6c 69 61 73 5b 27 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e rovided][$alias['id']].=.$this->
57920 70 61 63 6b 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d packages[$this->id.-.2];.}.}.}.}
57940 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 .}.else.{.foreach.($repo->getPac
57960 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 kages().as.$package).{.$names.=.
57980 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 $package->getNames();.$stability
579a0 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 .=.$package->getStability();.if.
579c0 28 24 65 78 65 6d 70 74 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 ($exempt.||.$this->isPackageAcce
579e0 70 74 61 62 6c 65 28 24 6e 61 6d 65 73 2c 20 24 73 74 61 62 69 6c 69 74 79 29 29 20 7b 0a 24 70 ptable($names,.$stability)).{.$p
57a00 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 ackage->setId($this->id++);.$thi
57a20 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 0a 0a 66 6f 72 65 61 s->packages[].=.$package;..forea
57a40 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 ch.($names.as.$provided).{.$this
57a60 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 5d 20 3d 20 24 ->packageByName[$provided][].=.$
57a80 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e package;.}....$name.=.$package->
57aa0 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 getName();.if.(isset($rootAliase
57ac0 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d s[$name][$package->getVersion()]
57ae0 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 )).{.$alias.=.$rootAliases[$name
57b00 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 69 66 20 28 24 ][$package->getVersion()];.if.($
57b20 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)
57b40 20 7b 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 .{.$package.=.$package->getAlias
57b60 4f 66 28 29 3b 0a 7d 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 Of();.}.$aliasPackage.=.new.Alia
57b80 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 61 73 sPackage($package,.$alias['alias
57ba0 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 29 3b _normalized'],.$alias['alias']);
57bc0 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 65 41 6c .$aliasPackage->setRootPackageAl
57be0 69 61 73 28 74 72 75 65 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 ias(true);.$aliasPackage->setId(
57c00 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f $this->id++);..$package->getRepo
57c20 73 69 74 6f 72 79 28 29 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 sitory()->addPackage($aliasPacka
57c40 67 65 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 50 ge);.$this->packages[].=.$aliasP
57c60 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d ackage;..foreach.($aliasPackage-
57c80 3e 67 65 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 >getNames().as.$name).{.$this->p
57ca0 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 ackageByName[$name][].=.$aliasPa
57cc0 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ckage;.}.}.}.}.}.}.}..public.fun
57ce0 63 74 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 74 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 ction.getPriority(RepositoryInte
57d00 72 66 61 63 65 20 24 72 65 70 6f 29 0a 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 61 72 72 61 79 rface.$repo).{.$priority.=.array
57d20 5f 73 65 61 72 63 68 28 24 72 65 70 6f 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 _search($repo,.$this->repositori
57d40 65 73 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 72 69 6f 72 es,.true);..if.(false.===.$prior
57d60 69 74 79 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 ity).{.throw.new.\RuntimeExcepti
57d80 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 74 65 72 6d 69 6e 65 20 72 65 70 6f 73 69 74 6f on("Could.not.determine.reposito
57da0 72 79 20 70 72 69 6f 72 69 74 79 2e 20 54 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 61 73 20 ry.priority..The.repository.was.
57dc0 6e 6f 74 20 72 65 67 69 73 74 65 72 65 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c 2e 22 29 3b 0a 7d not.registered.in.the.pool.");.}
57de0 0a 0a 72 65 74 75 72 6e 20 2d 24 70 72 69 6f 72 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ..return.-$priority;.}........pu
57e00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 63 6b 61 67 65 42 79 49 64 28 24 69 64 29 0a 7b blic.function.packageById($id).{
57e20 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f .return.$this->ensurePackageIsLo
57e40 61 64 65 64 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 29 3b 0a aded($this->packages[$id.-.1]);.
57e60 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 77 68 61 74 50 }..........public.function.whatP
57e80 72 6f 76 69 64 65 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 rovides($name,.LinkConstraintInt
57ea0 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 29 0a 7b 0a 69 66 20 erface.$constraint.=.null).{.if.
57ec0 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d (isset($this->providerCache[$nam
57ee0 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f 6e 73 74 72 61 69 6e 74 5d 29 29 20 7b 0a 72 65 74 e][(string).$constraint])).{.ret
57f00 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b urn.$this->providerCache[$name][
57f20 28 73 74 72 69 6e 67 29 20 24 63 6f 6e 73 74 72 61 69 6e 74 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e (string).$constraint];.}..return
57f40 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 .$this->providerCache[$name][(st
57f60 72 69 6e 67 29 20 24 63 6f 6e 73 74 72 61 69 6e 74 5d 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 ring).$constraint].=.$this->comp
57f80 75 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 uteWhatProvides($name,.$constrai
57fa0 6e 74 29 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 63 6f 6d 70 nt);.}.....private.function.comp
57fc0 75 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 uteWhatProvides($name,.$constrai
57fe0 6e 74 29 0a 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f nt).{.$candidates.=.array();..fo
58000 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 52 65 70 6f 73 20 61 73 20 24 reach.($this->providerRepos.as.$
58020 72 65 70 6f 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 77 68 61 74 50 72 6f 76 repo).{.foreach.($repo->whatProv
58040 69 64 65 73 28 24 74 68 69 73 2c 20 24 6e 61 6d 65 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 ides($this,.$name).as.$candidate
58060 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a ).{.$candidates[].=.$candidate;.
58080 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 49 64 28 29 20 3c 20 31 29 20 7b 0a 24 if.($candidate->getId().<.1).{.$
580a0 63 61 6e 64 69 64 61 74 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 candidate->setId($this->id++);.$
580c0 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 20 3d 20 this->packages[$this->id.-.2].=.
580e0 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 $candidate;.}.}.}..if.(isset($th
58100 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 7b 0a 24 63 61 is->packageByName[$name])).{.$ca
58120 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 61 6e 64 69 64 61 74 ndidates.=.array_merge($candidat
58140 65 73 2c 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 29 es,.$this->packageByName[$name])
58160 3b 0a 7d 0a 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 ;.}..if.(null.===.$constraint).{
58180 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 6b 65 79 20 3d 3e .foreach.($candidates.as.$key.=>
581a0 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 5b 24 6b 65 79 5d .$candidate).{.$candidates[$key]
581c0 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 .=.$this->ensurePackageIsLoaded(
581e0 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 61 6e 64 69 64 61 74 $candidate);.}..return.$candidat
58200 65 73 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 es;.}..$matches.=.$provideMatche
58220 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b s.=.array();.$nameMatch.=.false;
58240 0a 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 ..foreach.($candidates.as.$candi
58260 64 61 74 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 28 24 63 61 date).{.switch.($this->match($ca
58280 6e 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a ndidate,.$name,.$constraint)).{.
582a0 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3a 0a 62 72 65 61 6b 3b 0a 0a 63 case.self::MATCH_NONE:.break;..c
582c0 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 41 4d 45 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 ase.self::MATCH_NAME:.$nameMatch
582e0 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 .=.true;.break;..case.self::MATC
58300 48 3a 0a 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 H:.$nameMatch.=.true;.$matches[]
58320 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 .=.$this->ensurePackageIsLoaded(
58340 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a $candidate);.break;..case.self::
58360 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 63 68 65 73 5b 5d MATCH_PROVIDE:.$provideMatches[]
58380 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 .=.$this->ensurePackageIsLoaded(
583a0 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a $candidate);.break;..case.self::
583c0 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3a 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 MATCH_REPLACE:.$matches[].=.$thi
583e0 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 s->ensurePackageIsLoaded($candid
58400 61 74 65 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 ate);.break;..default:.throw.new
58420 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 55 6e 65 78 .\UnexpectedValueException('Unex
58440 70 65 63 74 65 64 20 6d 61 74 63 68 20 74 79 70 65 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 pected.match.type');.}.}....if.(
58460 24 6e 61 6d 65 4d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d $nameMatch).{.return.$matches;.}
58480 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 74 63 68 65 73 2c 20 24 ..return.array_merge($matches,.$
584a0 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 provideMatches);.}..public.funct
584c0 69 6f 6e 20 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 0a 7b ion.literalToPackage($literal).{
584e0 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 65 .$packageId.=.abs($literal);..re
58500 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 turn.$this->packageById($package
58520 49 64 29 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 Id);.}..public.function.literalT
58540 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 6c 69 74 oString($literal).{.return.($lit
58560 65 72 61 6c 20 3e 20 30 20 3f 20 27 2b 27 20 3a 20 27 2d 27 29 20 2e 20 24 74 68 69 73 2d 3e 6c eral.>.0.?.'+'.:.'-')...$this->l
58580 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 0a 0a 70 75 iteralToPackage($literal);.}..pu
585a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 blic.function.literalToPrettyStr
585c0 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 ing($literal,.$installedMap).{.$
585e0 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 package.=.$this->literalToPackag
58600 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c e($literal);..if.(isset($install
58620 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 70 72 edMap[$package->getId()])).{.$pr
58640 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 6b 65 65 70 27 20 3a 20 efix.=.($literal.>.0.?.'keep'.:.
58660 27 72 65 6d 6f 76 65 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 'remove');.}.else.{.$prefix.=.($
58680 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 69 6e 73 74 61 6c 6c 27 20 3a 20 27 64 6f 6e 5c 27 literal.>.0.?.'install'.:.'don\'
586a0 74 20 69 6e 73 74 61 6c 6c 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 27 t.install');.}..return.$prefix.'
586c0 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a .'.$package->getPrettyString();.
586e0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 61 63 6b 61 67 65 41 63 63 65 }..public.function.isPackageAcce
58700 70 74 61 62 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 66 6f 72 65 ptable($name,.$stability).{.fore
58720 61 63 68 20 28 28 61 72 72 61 79 29 20 24 6e 61 6d 65 20 61 73 20 24 6e 29 20 7b 0a 0a 20 69 66 ach.((array).$name.as.$n).{...if
58740 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[$
58760 6e 5d 29 20 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 65 53 74 n]).&&.isset($this->acceptableSt
58780 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e abilities[$stability])).{.return
587a0 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 .true;.}....if.(isset($this->sta
587c0 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 26 26 20 42 61 73 65 50 61 63 6b 61 67 65 3a bilityFlags[$n]).&&.BasePackage:
587e0 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3c 3d 20 24 74 68 :$stabilities[$stability].<=.$th
58800 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 7b 0a 72 65 74 75 72 6e is->stabilityFlags[$n]).{.return
58820 20 74 72 75 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 70 72 69 .true;.}.}..return.false;.}..pri
58840 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 vate.function.ensurePackageIsLoa
58860 64 65 64 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 ded($data).{.if.(is_array($data)
58880 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 29 ).{.if.(isset($data['alias_of'])
588a0 29 20 7b 0a 24 61 6c 69 61 73 4f 66 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 49 ).{.$aliasOf.=.$this->packageByI
588c0 64 28 24 64 61 74 61 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d d($data['alias_of']);.$package.=
588e0 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 64 61 74 61 5b 27 69 64 27 5d 20 2d 20 31 .$this->packages[$data['id'].-.1
58900 5d 20 3d 20 24 64 61 74 61 5b 27 72 65 70 6f 27 5d 2d 3e 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b ].=.$data['repo']->loadAliasPack
58920 61 67 65 28 24 64 61 74 61 2c 20 24 61 6c 69 61 73 4f 66 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e age($data,.$aliasOf);.$package->
58940 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 21 65 6d 70 74 79 28 24 64 61 74 61 setRootPackageAlias(!empty($data
58960 5b 27 72 6f 6f 74 5f 61 6c 69 61 73 27 5d 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b ['root_alias']));.}.else.{.$pack
58980 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 64 61 74 61 5b 27 69 64 27 age.=.$this->packages[$data['id'
589a0 5d 20 2d 20 31 5d 20 3d 20 24 64 61 74 61 5b 27 72 65 70 6f 27 5d 2d 3e 6c 6f 61 64 50 61 63 6b ].-.1].=.$data['repo']->loadPack
589c0 61 67 65 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 age($data);.}..foreach.($package
589e0 2d 3e 67 65 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 ->getNames().as.$name).{.$this->
58a00 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 5b 24 64 61 74 61 5b 27 69 64 27 5d packageByName[$name][$data['id']
58a20 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 ].=.$package;.}.$package->setId(
58a40 24 64 61 74 61 5b 27 69 64 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a $data['id']);..return.$package;.
58a60 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 }..return.$data;.}...........pri
58a80 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 vate.function.match($candidate,.
58aa0 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 20 24 $name,.LinkConstraintInterface.$
58ac0 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 61 constraint).{...if.(is_array($ca
58ae0 6e 64 69 64 61 74 65 29 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 ndidate)).{.$candidateName.=.$ca
58b00 6e 64 69 64 61 74 65 5b 27 6e 61 6d 65 27 5d 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 ndidate['name'];.$candidateVersi
58b20 6f 6e 20 3d 20 24 63 61 6e 64 69 64 61 74 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 20 65 6c on.=.$candidate['version'];.}.el
58b40 73 65 20 7b 0a 0a 20 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 se.{...$candidateName.=.$candida
58b60 74 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e te->getName();.$candidateVersion
58b80 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a .=.$candidate->getVersion();.}..
58ba0 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a if.($candidateName.===.$name).{.
58bc0 72 65 74 75 72 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 return.$constraint->matches(new.
58be0 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 63 61 6e 64 69 64 61 VersionConstraint('==',.$candida
58c00 74 65 56 65 72 73 69 6f 6e 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 20 3a 20 73 65 6c 66 teVersion)).?.self::MATCH.:.self
58c20 3a 3a 4d 41 54 43 48 5f 4e 41 4d 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 ::MATCH_NAME;.}..if.(is_array($c
58c40 61 6e 64 69 64 61 74 65 29 29 20 7b 0a 24 70 72 6f 76 69 64 65 73 20 3d 20 69 73 73 65 74 28 24 andidate)).{.$provides.=.isset($
58c60 63 61 6e 64 69 64 61 74 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 0a 3f 20 24 74 68 69 73 2d 3e 76 candidate['provide']).?.$this->v
58c80 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 24 63 61 6e 64 69 64 ersionParser->parseLinks($candid
58ca0 61 74 65 4e 61 6d 65 2c 20 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 2c 20 27 70 72 6f ateName,.$candidateVersion,.'pro
58cc0 76 69 64 65 73 27 2c 20 24 63 61 6e 64 69 64 61 74 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 0a 3a vides',.$candidate['provide']).:
58ce0 20 61 72 72 61 79 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 69 73 73 65 74 28 24 63 61 6e .array();.$replaces.=.isset($can
58d00 64 69 64 61 74 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 0a 3f 20 24 74 68 69 73 2d 3e 76 65 72 73 didate['replace']).?.$this->vers
58d20 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 24 63 61 6e 64 69 64 61 74 65 ionParser->parseLinks($candidate
58d40 4e 61 6d 65 2c 20 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 2c 20 27 72 65 70 6c 61 63 Name,.$candidateVersion,.'replac
58d60 65 73 27 2c 20 24 63 61 6e 64 69 64 61 74 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 0a 3a 20 61 72 es',.$candidate['replace']).:.ar
58d80 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 6f 76 69 64 65 73 20 3d 20 24 63 61 6e ray();.}.else.{.$provides.=.$can
58da0 64 69 64 61 74 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 didate->getProvides();.$replaces
58dc0 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 7d 0a .=.$candidate->getReplaces();.}.
58de0 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 30 5d 29 20 7c 7c 20 69 73 ...if.(isset($replaces[0]).||.is
58e00 73 65 74 28 24 70 72 6f 76 69 64 65 73 5b 30 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 set($provides[0])).{.foreach.($p
58e20 72 6f 76 69 64 65 73 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 rovides.as.$link).{.if.($link->g
58e40 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 74 72 61 etTarget().===.$name.&&.$constra
58e60 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 61 69 6e int->matches($link->getConstrain
58e80 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 52 4f 56 49 t())).{.return.self::MATCH_PROVI
58ea0 44 45 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6c 61 63 65 73 20 61 73 20 24 DE;.}.}..foreach.($replaces.as.$
58ec0 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d link).{.if.($link->getTarget().=
58ee0 3d 3d 20 24 6e 61 6d 65 20 26 26 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 ==.$name.&&.$constraint->matches
58f00 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 20 7b 0a 72 65 74 75 ($link->getConstraint())).{.retu
58f20 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3b 0a 7d 0a 7d 0a 0a 72 65 74 rn.self::MATCH_REPLACE;.}.}..ret
58f40 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 urn.self::MATCH_NONE;.}..if.(iss
58f60 65 74 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 63 6f 6e 73 74 72 61 et($provides[$name]).&&.$constra
58f80 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 int->matches($provides[$name]->g
58fa0 65 74 43 6f 6e 73 74 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 etConstraint())).{.return.self::
58fc0 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 MATCH_PROVIDE;.}..if.(isset($rep
58fe0 6c 61 63 65 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 laces[$name]).&&.$constraint->ma
59000 74 63 68 65 73 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 tches($replaces[$name]->getConst
59020 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 52 raint())).{.return.self::MATCH_R
59040 45 50 4c 41 43 45 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f EPLACE;.}..return.self::MATCH_NO
59060 4e 45 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 NE;.}.}.<?php............namespa
59080 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 0a ce.Composer\DependencyResolver;.
590a0 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 0a 7b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 54 45 ....class.Rule.{.const.RULE_INTE
590c0 52 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 52 55 4c RNAL_ALLOW_UPDATE.=.1;.const.RUL
590e0 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f E_JOB_INSTALL.=.2;.const.RULE_JO
59100 42 5f 52 45 4d 4f 56 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 B_REMOVE.=.3;.const.RULE_PACKAGE
59120 5f 43 4f 4e 46 4c 49 43 54 20 3d 20 36 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 _CONFLICT.=.6;.const.RULE_PACKAG
59140 45 5f 52 45 51 55 49 52 45 53 20 3d 20 37 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 E_REQUIRES.=.7;.const.RULE_PACKA
59160 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 38 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 53 GE_OBSOLETES.=.8;.const.RULE_INS
59180 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 39 3b 0a 63 6f TALLED_PACKAGE_OBSOLETES.=.9;.co
591a0 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 3d 20 31 30 3b nst.RULE_PACKAGE_SAME_NAME.=.10;
591c0 0a 63 6f 6e 73 74 20 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 .const.RULE_PACKAGE_IMPLICIT_OBS
591e0 4f 4c 45 54 45 53 20 3d 20 31 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4c 45 41 52 4e 45 44 20 OLETES.=.11;.const.RULE_LEARNED.
59200 3d 20 31 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 20 3d =.12;.const.RULE_PACKAGE_ALIAS.=
59220 20 31 33 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 .13;..protected.$pool;..protecte
59240 64 20 24 64 69 73 61 62 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 74 65 72 61 6c 73 d.$disabled;.protected.$literals
59260 3b 0a 70 72 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 69 64 ;.protected.$type;.protected.$id
59280 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ;.protected.$reason;.protected.$
592a0 72 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 3b 0a 0a 70 72 reasonData;..protected.$job;..pr
592c0 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 6e 63 74 otected.$ruleHash;..public.funct
592e0 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 72 72 61 ion.__construct(Pool.$pool,.arra
59300 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 44 61 74 y.$literals,.$reason,.$reasonDat
59320 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 20 3d 20 a,.$job.=.null).{.$this->pool.=.
59340 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 74 68 69 $pool;....sort($literals);..$thi
59360 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 73 2d 3e s->literals.=.$literals;.$this->
59380 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 6f 6e 44 reason.=.$reason;.$this->reasonD
593a0 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 73 61 62 ata.=.$reasonData;..$this->disab
593c0 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 6f 62 3b led.=.false;..$this->job.=.$job;
593e0 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 75 6c 65 ..$this->type.=.-1;..$this->rule
59400 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 2c 20 24 Hash.=.substr(md5(implode(',',.$
59420 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 75 62 6c this->literals)),.0,.5);.}..publ
59440 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 6e 20 24 ic.function.getHash().{.return.$
59460 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 63 74 69 this->ruleHash;.}..public.functi
59480 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 69 64 3b on.setId($id).{.$this->id.=.$id;
594a0 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 0a 72 65 .}..public.function.getId().{.re
594c0 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 63 74 69 turn.$this->id;.}..public.functi
594e0 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 6f 62 3b on.getJob().{.return.$this->job;
59500 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 61 73 6f 6e 28 29 0a .}..public.function.getReason().
59520 7b 0a 72 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 75 62 6c 69 {.return.$this->reason;.}..publi
59540 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 44 61 74 61 28 29 0a 7b 0a 72 65 74 c.function.getReasonData().{.ret
59560 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 urn.$this->reasonData;.}..public
59580 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 28 29 0a 7b .function.getRequiredPackage().{
595a0 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c .if.($this->reason.===.self::RUL
595c0 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 E_JOB_INSTALL).{.return.$this->r
595e0 65 61 73 6f 6e 44 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 easonData;.}..if.($this->reason.
59600 3d 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 29 ===.self::RULE_PACKAGE_REQUIRES)
59620 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 .{.return.$this->reasonData->get
59640 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 Target();.}.}..........public.fu
59660 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 nction.equals(Rule.$rule).{.if.(
59680 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 72 75 6c 65 48 $this->ruleHash.!==.$rule->ruleH
596a0 61 73 68 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 63 6f 75 6e ash).{.return.false;.}..if.(coun
596c0 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 20 21 3d 20 63 6f 75 6e 74 28 24 72 75 6c t($this->literals).!=.count($rul
596e0 65 2d 3e 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a e->literals)).{.return.false;.}.
59700 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e .for.($i.=.0,.$n.=.count($this->
59720 6c 69 74 65 72 61 6c 73 29 3b 20 24 69 20 3c 20 24 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 literals);.$i.<.$n;.$i++).{.if.(
59740 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 6c $this->literals[$i].!==.$rule->l
59760 69 74 65 72 61 6c 73 5b 24 69 5d 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d iterals[$i]).{.return.false;.}.}
59780 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 74 69 6f ..return.true;.}..public.functio
597a0 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 74 79 70 65 20 3d n.setType($type).{.$this->type.=
597c0 20 24 74 79 70 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 79 .$type;.}..public.function.getTy
597e0 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 70 75 pe().{.return.$this->type;.}..pu
59800 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d blic.function.disable().{.$this-
59820 3e 64 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >disabled.=.true;.}..public.func
59840 74 69 6f 6e 20 65 6e 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 tion.enable().{.$this->disabled.
59860 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 =.false;.}..public.function.isDi
59880 73 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 sabled().{.return.$this->disable
598a0 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 d;.}..public.function.isEnabled(
598c0 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a ).{.return.!$this->disabled;.}..
598e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 74 65 72 61 6c 73 28 29 0a 7b 0a public.function.getLiterals().{.
59900 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 75 62 6c 69 return.$this->literals;.}..publi
59920 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 73 73 65 72 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 c.function.isAssertion().{.retur
59940 6e 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 0a n.1.===.count($this->literals);.
59960 7d 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
59980 6e 67 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 ng(array.$installedMap.=.array()
599a0 29 0a 7b 0a 24 72 75 6c 65 54 65 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 ).{.$ruleText.=.'';.foreach.($th
599c0 69 73 2d 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 is->literals.as.$i.=>.$literal).
599e0 7b 0a 69 66 20 28 24 69 20 21 3d 20 30 29 20 7b 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 27 7c {.if.($i.!=.0).{.$ruleText..=.'|
59a00 27 3b 0a 7d 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c ';.}.$ruleText..=.$this->pool->l
59a20 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,.$
59a40 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d installedMap);.}..switch.($this-
59a60 3e 72 65 61 73 6f 6e 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 54 45 52 >reason).{.case.self::RULE_INTER
59a80 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 45 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 NAL_ALLOW_UPDATE:.return.$ruleTe
59aa0 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c xt;..case.self::RULE_JOB_INSTALL
59ac0 3a 0a 72 65 74 75 72 6e 20 22 49 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 :.return."Install.command.rule.(
59ae0 24 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 4a 4f $ruleText)";..case.self::RULE_JO
59b00 42 5f 52 45 4d 4f 56 45 3a 0a 72 65 74 75 72 6e 20 22 52 65 6d 6f 76 65 20 63 6f 6d 6d 61 6e 64 B_REMOVE:.return."Remove.command
59b20 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a .rule.($ruleText)";..case.self::
59b40 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 3a 0a 24 70 61 63 6b 61 67 65 31 RULE_PACKAGE_CONFLICT:.$package1
59b60 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 65 .=.$this->pool->literalToPackage
59b80 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 70 61 63 6b 61 67 65 32 20 ($this->literals[0]);.$package2.
59ba0 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 65 28 =.$this->pool->literalToPackage(
59bc0 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 $this->literals[1]);..return.$pa
59be0 63 6b 61 67 65 31 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 63 6f 6e 66 ckage1->getPrettyString().'.conf
59c00 6c 69 63 74 73 20 77 69 74 68 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 6b 61 67 licts.with.'.$this->formatPackag
59c20 65 73 55 6e 69 71 75 65 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 32 29 29 2e 27 2e 27 3b 0a esUnique(array($package2)).'.';.
59c40 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 52 45 51 55 49 52 45 .case.self::RULE_PACKAGE_REQUIRE
59c60 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 65 72 61 6c 73 3b 0a S:.$literals.=.$this->literals;.
59c80 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 69 66 74 28 24 6c 69 $sourceLiteral.=.array_shift($li
59ca0 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 20 24 74 68 69 73 2d terals);.$sourcePackage.=.$this-
59cc0 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 73 6f 75 72 63 65 4c >pool->literalToPackage($sourceL
59ce0 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 61 79 28 29 3b 0a 66 iteral);..$requires.=.array();.f
59d00 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 65 72 61 6c 29 20 7b oreach.($literals.as.$literal).{
59d20 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 6c 2d 3e 6c 69 74 65 .$requires[].=.$this->pool->lite
59d40 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 0a 0a 24 74 65 78 74 ralToPackage($literal);.}..$text
59d60 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 50 72 65 74 74 79 53 .=.$this->reasonData->getPrettyS
59d80 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 20 28 24 72 65 71 75 tring($sourcePackage);.if.($requ
59da0 69 72 65 73 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c ires).{.$text..=.'.->.satisfiabl
59dc0 65 20 62 79 20 27 20 2e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e e.by.'...$this->formatPackagesUn
59de0 69 71 75 65 28 24 72 65 71 75 69 72 65 73 29 20 2e 20 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a ique($requires)...'.';.}.else.{.
59e00 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d $targetName.=.$this->reasonData-
59e20 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f >getTarget();....if.(0.===.strpo
59e40 73 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 27 65 78 74 2d 27 29 29 20 7b 0a 24 65 78 74 20 3d s($targetName,.'ext-')).{.$ext.=
59e60 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 34 29 3b 0a 24 65 72 72 6f 72 20 .substr($targetName,.4);.$error.
59e80 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 24 65 78 74 29 20 3f 20 27 68 61 73 20 =.extension_loaded($ext).?.'has.
59ea0 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 28 27 2e 70 68 70 76 65 72 73 69 6f 6e 28 the.wrong.version.('.phpversion(
59ec0 24 65 78 74 29 2e 27 29 20 69 6e 73 74 61 6c 6c 65 64 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e $ext).').installed'.:.'is.missin
59ee0 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 27 3b 0a 0a 24 74 65 78 74 20 2e 3d 20 27 g.from.your.system';..$text..=.'
59f00 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 .->.the.requested.PHP.extension.
59f20 27 2e 24 65 78 74 2e 27 20 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 '.$ext.'.'.$error.'.';.}.elseif.
59f40 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 27 6c 69 62 2d (0.===.strpos($targetName,.'lib-
59f60 27 29 29 20 7b 0a 0a 20 24 6c 69 62 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 4e 61 6d ')).{...$lib.=.substr($targetNam
59f80 65 2c 20 34 29 3b 0a 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 e,.4);..$text..=.'.->.the.reques
59fa0 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 27 2e 24 6c 69 62 2e 27 20 68 61 73 20 ted.linked.library.'.$lib.'.has.
59fc0 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 69 the.wrong.version.installed.or.i
59fe0 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 2c 20 6d 61 6b 65 s.missing.from.your.system,.make
5a000 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 70 72 6f 76 .sure.to.have.the.extension.prov
5a020 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 iding.it.';.}.else.{.$text..=.'.
5a040 2d 3e 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 2e 27 3b 0a ->.no.matching.package.found.';.
5a060 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 }.}..return.$text;..case.self::R
5a080 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 ULE_PACKAGE_OBSOLETES:.return.$r
5a0a0 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 49 4e 53 54 41 4c 4c uleText;.case.self::RULE_INSTALL
5a0c0 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 ED_PACKAGE_OBSOLETES:.return.$ru
5a0e0 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 41 43 4b 41 47 45 5f leText;.case.self::RULE_PACKAGE_
5a100 53 41 4d 45 5f 4e 41 4d 45 3a 0a 72 65 74 75 72 6e 20 27 43 61 6e 20 6f 6e 6c 79 20 69 6e 73 74 SAME_NAME:.return.'Can.only.inst
5a120 61 6c 6c 20 6f 6e 65 20 6f 66 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 all.one.of:.'...$this->formatPac
5a140 6b 61 67 65 73 55 6e 69 71 75 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 20 2e 20 27 kagesUnique($this->literals)...'
5a160 2e 27 3b 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 49 4d 50 4c .';.case.self::RULE_PACKAGE_IMPL
5a180 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 ICIT_OBSOLETES:.return.$ruleText
5a1a0 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 44 3a 0a 72 65 74 75 72 ;.case.self::RULE_LEARNED:.retur
5a1c0 6e 20 27 43 6f 6e 63 6c 75 73 69 6f 6e 3a 20 27 2e 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 n.'Conclusion:.'.$ruleText;.case
5a1e0 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 3a 0a 72 65 74 75 72 .self::RULE_PACKAGE_ALIAS:.retur
5a200 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 n.$ruleText;.}.}..protected.func
5a220 74 69 6f 6e 20 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 65 28 61 72 72 61 79 20 tion.formatPackagesUnique(array.
5a240 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 70 72 65 70 61 72 65 64 20 3d 20 61 72 72 61 79 28 29 $packages).{.$prepared.=.array()
5a260 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 63 6b 61 67 65 ;.foreach.($packages.as.$package
5a280 29 20 7b 0a 69 66 20 28 21 69 73 5f 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a ).{.if.(!is_object($package)).{.
5a2a0 24 70 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 $package.=.$this->pool->literalT
5a2c0 6f 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 70 72 65 70 61 72 65 64 5b oPackage($package);.}.$prepared[
5a2e0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 $package->getName()]['name'].=.$
5a300 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 70 72 65 70 61 package->getPrettyName();.$prepa
5a320 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 76 65 72 73 69 6f red[$package->getName()]['versio
5a340 6e 73 27 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 ns'][$package->getVersion()].=.$
5a360 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 3b 0a 7d 0a 66 package->getPrettyVersion();.}.f
5a380 6f 72 65 61 63 68 20 28 24 70 72 65 70 61 72 65 64 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 oreach.($prepared.as.$name.=>.$p
5a3a0 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 ackage).{.$prepared[$name].=.$pa
5a3c0 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2e 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 ckage['name'].'['.implode(',.',.
5a3e0 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 73 27 5d 29 2e 27 5d 27 3b 0a 7d 0a 0a 72 65 $package['versions']).']';.}..re
5a400 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 72 65 70 61 72 65 64 29 3b 0a 7d turn.implode(',.',.$prepared);.}
5a420 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 72 69 6e .......public.function.__toStrin
5a440 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 61 62 6c g().{.$result.=.($this->isDisabl
5a460 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 6f 72 65 ed()).?.'disabled('.:.'(';..fore
5a480 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 20 24 6c ach.($this->literals.as.$i.=>.$l
5a4a0 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 75 6c 74 iteral).{.if.($i.!=.0).{.$result
5a4c0 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 70 6f 6f ..=.'|';.}.$result..=.$this->poo
5a4e0 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 0a 7d 0a l->literalToString($literal);.}.
5a500 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 75 6c 74 .$result..=.')';..return.$result
5a520 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
5a540 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 75 .Composer\DependencyResolver;..u
5a560 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 72 se.Composer\Package\PackageInter
5a580 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 73 face;.use.Composer\Package\Alias
5a5a0 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 65 72 61 Package;.....class.RuleSetGenera
5a5c0 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 65 63 74 tor.{.protected.$policy;.protect
5a5e0 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 72 6f 74 ed.$pool;.protected.$rules;.prot
5a600 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 6c 6c 65 ected.$jobs;.protected.$installe
5a620 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 74 72 75 dMap;..public.function.__constru
5a640 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 6f 6f 6c ct(PolicyInterface.$policy,.Pool
5a660 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 6c 69 63 .$pool).{.$this->policy.=.$polic
5a680 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 0a 0a 0a y;.$this->pool.=.$pool;.}.......
5a6a0 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 65 61 .........protected.function.crea
5a6c0 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 65 20 24 teRequireRule(PackageInterface.$
5a6e0 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 65 61 73 package,.array.$providers,.$reas
5a700 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 74 65 72 on,.$reasonData.=.null).{.$liter
5a720 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 29 29 3b als.=.array(-$package->getId());
5a740 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 76 69 64 ..foreach.($providers.as.$provid
5a760 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 63 6b 61 er).{...if.($provider.===.$packa
5a780 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 73 5b 5d ge).{.return.null;.}.$literals[]
5a7a0 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 75 72 6e .=.$provider->getId();.}..return
5a7c0 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 61 6c 73 .new.Rule($this->pool,.$literals
5a7e0 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 0a 0a 0a ,.$reason,.$reasonData);.}......
5a800 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 65 61 74 ........protected.function.creat
5a820 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 61 67 65 eInstallOneOfRule(array.$package
5a840 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 20 3d 20 s,.$reason,.$job).{.$literals.=.
5a860 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 73 20 24 array();.foreach.($packages.as.$
5a880 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 6b 61 67 package).{.$literals[].=.$packag
5a8a0 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 65 28 24 e->getId();.}..return.new.Rule($
5a8c0 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 6e 2c 20 this->pool,.$literals,.$reason,.
5a8e0 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 0a 0a 0a $job['packageName'],.$job);.}...
5a900 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 65 ..........protected.function.cre
5a920 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 65 20 24 ateRemoveRule(PackageInterface.$
5a940 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 75 72 6e package,.$reason,.$job).{.return
5a960 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 2d 24 70 .new.Rule($this->pool,.array(-$p
5a980 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 6f 62 5b ackage->getId()),.$reason,.$job[
5a9a0 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 0a 0a 0a 'packageName'],.$job);.}........
5a9c0 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 65 61 74 ........protected.function.creat
5a9e0 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 65 20 24 eConflictRule(PackageInterface.$
5aa00 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 76 69 64 issuer,.PackageInterface.$provid
5aa20 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 6c 6c 29 er,.$reason,.$reasonData.=.null)
5aa40 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 72 29 20 .{...if.($issuer.===.$provider).
5aa60 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 52 75 6c {.return.null;.}..return.new.Rul
5aa80 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 2d 3e 67 e($this->pool,.array(-$issuer->g
5aaa0 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 20 24 72 etId(),.-$provider->getId()),.$r
5aac0 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 0a 0a 0a eason,.$reasonData);.}..........
5aae0 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 70 65 2c .private.function.addRule($type,
5ab00 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 21 24 6e .Rule.$newRule.=.null).{.if.(!$n
5ab20 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 69 6e 73 ewRule.||.$this->rules->contains
5ab40 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 0a 24 74 Equal($newRule)).{.return;.}..$t
5ab60 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 70 65 29 his->rules->add($newRule,.$type)
5ab80 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 6c 65 73 ;.}..protected.function.addRules
5aba0 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 70 61 63 ForPackage(PackageInterface.$pac
5abc0 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 51 75 65 kage).{.$workQueue.=.new.\SplQue
5abe0 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 61 67 65 ue;.$workQueue->enqueue($package
5ac00 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 74 79 28 );..while.(!$workQueue->isEmpty(
5ac20 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 65 71 75 )).{.$package.=.$workQueue->dequ
5ac40 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 4d 61 70 eue();.if.(isset($this->addedMap
5ac60 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 6e 75 65 [$package->getId()])).{.continue
5ac80 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 2d 3e 67 ;.}..$this->addedMap[$package->g
5aca0 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 63 6b 61 etId()].=.true;..foreach.($packa
5acc0 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 0a 24 70 ge->getRequires().as.$link).{.$p
5ace0 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 2d 3e 77 ossibleRequires.=.$this->pool->w
5ad00 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(),.
5ad20 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 69 73 2d $link->getConstraint());..$this-
5ad40 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 45 2c 20 >addRule(RuleSet::TYPE_PACKAGE,.
5ad60 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 75 6c 65 $rule.=.$this->createRequireRule
5ad80 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 20 52 75 ($package,.$possibleRequires,.Ru
5ada0 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 69 6e 6b le::RULE_PACKAGE_REQUIRES,.$link
5adc0 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 65 73 20 ));..foreach.($possibleRequires.
5ade0 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 71 75 65 as.$require).{.$workQueue->enque
5ae00 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 70 61 63 ue($require);.}.}..foreach.($pac
5ae20 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 29 20 7b kage->getConflicts().as.$link).{
5ae40 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 70 6f 6f .$possibleConflicts.=.$this->poo
5ae60 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 67 65 74 l->whatProvides($link->getTarget
5ae80 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 0a 66 6f (),.$link->getConstraint());..fo
5aea0 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 24 63 6f reach.($possibleConflicts.as.$co
5aec0 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 53 65 74 nflict).{.$this->addRule(RuleSet
5aee0 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 43 6f 6e ::TYPE_PACKAGE,.$this->createCon
5af00 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 2c 20 52 flictRule($package,.$conflict,.R
5af20 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 6c 69 6e ule::RULE_PACKAGE_CONFLICT,.$lin
5af40 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 73 73 65 k));.}.}....$isInstalled.=.(isse
5af60 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 65 2d 3e t($this->installedMap[$package->
5af80 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 65 2d 3e getId()]));..foreach.($package->
5afa0 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 73 6f 6c getReplaces().as.$link).{.$obsol
5afc0 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 68 61 74 eteProviders.=.$this->pool->what
5afe0 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 24 6c 69 Provides($link->getTarget(),.$li
5b000 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 68 20 28 nk->getConstraint());..foreach.(
5b020 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 65 72 29 $obsoleteProviders.as.$provider)
5b040 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 29 20 7b .{.if.($provider.===.$package).{
5b060 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 6f 6c 65 .continue;.}..if.(!$this->obsole
5b080 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 2c 20 24 teImpossibleForAlias($package,.$
5b0a0 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 73 74 61 provider)).{.$reason.=.($isInsta
5b0c0 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 50 41 43 lled).?.Rule::RULE_INSTALLED_PAC
5b0e0 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 41 43 4b KAGE_OBSOLETES.:.Rule::RULE_PACK
5b100 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 28 52 75 AGE_OBSOLETES;.$this->addRule(Ru
5b120 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 72 65 61 leSet::TYPE_PACKAGE,.$this->crea
5b140 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 76 69 64 teConflictRule($package,.$provid
5b160 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 24 6f 62 er,.$reason,.$link));.}.}.}..$ob
5b180 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
5b1a0 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 28 29 2c hatProvides($package->getName(),
5b1c0 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 6f 76 69 .null);..foreach.($obsoleteProvi
5b1e0 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 76 69 64 ders.as.$provider).{.if.($provid
5b200 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 7d 0a 0a er.===.$package).{.continue;.}..
5b220 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 73 50 61 if.(($package.instanceof.AliasPa
5b240 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 66 28 29 ckage).&&.$package->getAliasOf()
5b260 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 75 6c 65 .===.$provider).{.$this->addRule
5b280 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 20 3d 20 (RuleSet::TYPE_PACKAGE,.$rule.=.
5b2a0 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 6b 61 67 $this->createRequireRule($packag
5b2c0 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 4c 45 5f e,.array($provider),.Rule::RULE_
5b2e0 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 65 6c 73 PACKAGE_ALIAS,.$package));.}.els
5b300 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 6c 65 46 eif.(!$this->obsoleteImpossibleF
5b320 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 20 7b 0a orAlias($package,.$provider)).{.
5b340 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 29 20 3d $reason.=.($package->getName().=
5b360 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 65 3a 3a =.$provider->getName()).?.Rule::
5b380 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 3a 3a 52 RULE_PACKAGE_SAME_NAME.:.Rule::R
5b3a0 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 53 3b 0a ULE_PACKAGE_IMPLICIT_OBSOLETES;.
5b3c0 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 50 41 43 $this->addRule(RuleSet::TYPE_PAC
5b3e0 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 6e 66 6c KAGE,.$rule.=.$this->createConfl
5b400 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 24 72 65 ictRule($package,.$provider,.$re
5b420 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 6f 74 65 ason,.$package));.}.}.}.}..prote
5b440 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 62 6c 65 cted.function.obsoleteImpossible
5b460 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 0a 7b 0a ForAlias($package,.$provider).{.
5b480 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 73 74 61 $packageIsAlias.=.$package.insta
5b4a0 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 49 73 41 nceof.AliasPackage;.$providerIsA
5b4c0 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 6c 69 61 lias.=.$provider.instanceof.Alia
5b4e0 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 70 61 63 sPackage;..$impossible.=.(.($pac
5b500 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 6c 69 61 kageIsAlias.&&.$package->getAlia
5b520 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 76 69 64 sOf().===.$provider).||.($provid
5b540 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 69 61 73 erIsAlias.&&.$provider->getAlias
5b560 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 67 65 49 Of().===.$package).||.($packageI
5b580 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 20 24 70 sAlias.&&.$providerIsAlias.&&.$p
5b5a0 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 63 6b 61 rovider->getAliasOf().===.$packa
5b5c0 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 24 69 6d ge->getAliasOf()).);..return.$im
5b5e0 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 possible;.}........private.funct
5b600 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 73 28 50 61 ion.addRulesForUpdatePackages(Pa
5b620 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 75 70 64 61 ckageInterface.$package).{.$upda
5b640 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 65 50 tes.=.$this->policy->findUpdateP
5b660 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 73 74 ackages($this->pool,.$this->inst
5b680 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 68 20 28 24 alledMap,.$package);..foreach.($
5b6a0 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 3e 61 64 64 updates.as.$update).{.$this->add
5b6c0 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 7d 0a 0a 70 RulesForPackage($update);.}.}..p
5b6e0 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 72 4a 6f 62 rotected.function.addRulesForJob
5b700 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 73 20 24 6a s().{.foreach.($this->jobs.as.$j
5b720 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 0a 63 61 73 ob).{.switch.($job['cmd']).{.cas
5b740 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 67 65 73 27 e.'install':.if.($job['packages'
5b760 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 27 5d 20 61 ]).{.foreach.($job['packages'].a
5b780 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 69 73 2d 3e s.$package).{.if.(!isset($this->
5b7a0 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 29 5d 29 installedMap[$package->getId()])
5b7c0 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 65 28 24 70 ).{.$this->addRulesForPackage($p
5b7e0 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 3e 63 72 65 ackage);.}.}..$rule.=.$this->cre
5b800 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 63 6b 61 67 ateInstallOneOfRule($job['packag
5b820 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 2c 20 24 6a es'],.Rule::RULE_JOB_INSTALL,.$j
5b840 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 3a 54 59 50 ob);.$this->addRule(RuleSet::TYP
5b860 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 20 27 72 65 E_JOB,.$rule);.}.break;.case.'re
5b880 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 63 6b 61 67 move':.....foreach.($job['packag
5b8a0 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 24 74 68 69 es'].as.$package).{.$rule.=.$thi
5b8c0 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 2c 20 52 75 s->createRemoveRule($package,.Ru
5b8e0 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 24 74 68 69 le::RULE_JOB_REMOVE,.$job);.$thi
5b900 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 2c 20 24 72 s->addRule(RuleSet::TYPE_JOB,.$r
5b920 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 20 66 75 6e ule);.}.break;.}.}.}..public.fun
5b940 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 73 74 61 6c ction.getRulesFor($jobs,.$instal
5b960 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 73 3b 0a 24 ledMap).{.$this->jobs.=.$jobs;.$
5b980 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 74 68 69 73 this->rules.=.new.RuleSet;.$this
5b9a0 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 61 70 3b 0a ->installedMap.=.$installedMap;.
5b9c0 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 70 20 61 73 .foreach.($this->installedMap.as
5b9e0 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 46 6f 72 50 .$package).{.$this->addRulesForP
5ba00 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 52 75 6c 65 ackage($package);.$this->addRule
5ba20 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 3b 0a 7d 0a sForUpdatePackages($package);.}.
5ba40 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 72 65 74 75 .$this->addRulesForJobs();..retu
5ba60 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 0a 0a 0a 0a rn.$this->rules;.}.}.<?php......
5ba80 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
5baa0 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 53 6f 6c 76 ncyResolver;.....class.DebugSolv
5bac0 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 64 20 66 75 er.extends.Solver.{.protected.fu
5bae0 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 65 63 68 6f nction.printDecisionMap().{.echo
5bb00 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 68 20 28 24 ."\nDecisionMap:.\n";.foreach.($
5bb20 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 65 49 64 20 this->decisionMap.as.$packageId.
5bb40 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 3d 3d 3d 20 =>.$level).{.if.($packageId.===.
5bb60 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 3e 20 30 29 0).{.continue;.}.if.($level.>.0)
5bb80 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 6c 2d 3e 70 .{.echo.'....+'...$this->pool->p
5bba0 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 0a 7d 20 65 ackageById($packageId)."\n";.}.e
5bbc0 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 20 20 20 2d lseif.($level.<.0).{.echo.'....-
5bbe0 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 28 24 70 61 '...$this->pool->packageById($pa
5bc00 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 20 27 20 20 ckageId)."\n";.}.else.{.echo.'..
5bc20 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 79 49 64 28 ..?'...$this->pool->packageById(
5bc40 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 5c 6e 22 3b $packageId)."\n";.}.}.echo."\n";
5bc60 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 44 65 63 69 .}..protected.function.printDeci
5bc80 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 51 75 65 75 sionQueue().{.echo."DecisionQueu
5bca0 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 73 69 6f 6e e:.\n";.foreach.($this->decision
5bcc0 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 63 68 6f 20 Queue.as.$i.=>.$literal).{.echo.
5bce0 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 6c 54 6f 53 '....'...$this->pool->literalToS
5bd00 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 73 2d 3e 64 tring($literal)...'.'...$this->d
5bd20 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 22 2e 24 74 ecisionQueueWhy[$i].".level.".$t
5bd40 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 29 5d 2e his->decisionMap[abs($literal)].
5bd60 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 74 65 64 20 "\n";.}.echo."\n";.}..protected.
5bd80 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 68 6f 20 22 function.printWatches().{.echo."
5bda0 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 73 2d 3e 77 \nWatches:\n";.foreach.($this->w
5bdc0 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 63 68 29 20 atches.as.$literalId.=>.$watch).
5bde0 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 6f 6d 49 64 {.echo.'..'.$this->literalFromId
5be00 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 61 72 72 61 ($literalId)."\n";.$queue.=.arra
5be20 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 68 69 6c 65 y(array('....',.$watch));..while
5be40 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 64 65 6e 74 .(!empty($queue)).{.list($indent
5be60 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 29 3b 0a 0a ,.$watch).=.array_pop($queue);..
5be80 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 61 74 63 68 echo.$indent.$watch;..if.($watch
5bea0 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 49 64 28 29 ).{.echo.'.[id='.$watch->getId()
5bec0 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 6f 6d 49 64 .',watch1='.$this->literalFromId
5bee0 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 24 74 68 69 ($watch->watch1).',watch2='.$thi
5bf00 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 63 68 32 29 s->literalFromId($watch->watch2)
5bf20 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 74 63 68 20 ."]";.}..echo."\n";..if.($watch.
5bf40 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 7c 7c 20 24 &&.($watch->next1.==.$watch.||.$
5bf60 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 66 20 28 24 watch->next2.==.$watch)).{.if.($
5bf80 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 68 6f 20 24 watch->next1.==.$watch).{.echo.$
5bfa0 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 7d 0a 69 66 indent."....1.*RECURSION*";.}.if
5bfc0 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 0a 65 63 68 .($watch->next2.==.$watch).{.ech
5bfe0 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 22 3b 0a 7d o.$indent."....2.*RECURSION*";.}
5c000 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 2d 3e 6e 65 .}.elseif.($watch.&&.($watch->ne
5c020 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 64 65 6e 74 xt1.||.$watch->next2)).{.$indent
5c040 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 27 29 2c 20 .=.str_replace(array('1',.'2'),.
5c060 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 71 75 65 75 '.',.$indent);..array_push($queu
5c080 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 77 61 74 63 e,.array($indent.'....2.',.$watc
5c0a0 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 65 2c 20 61 h->next2));.array_push($queue,.a
5c0c0 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 68 2d 3e 6e rray($indent.'....1.',.$watch->n
5c0e0 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 7d 0a 3c 3f ext1));.}.}..echo."\n";.}.}.}.<?
5c100 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
5c120 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 61 73 73 20 r\DependencyResolver;.....class.
5c140 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 49 74 65 72 RuleSetIterator.implements.\Iter
5c160 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 74 65 63 74 ator.{.protected.$rules;.protect
5c180 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 6e 74 4f 66 ed.$types;..protected.$currentOf
5c1a0 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 3b 0a 70 72 fset;.protected.$currentType;.pr
5c1c0 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 0a 70 75 62 otected.$currentTypeOffset;..pub
5c1e0 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 24 lic.function.__construct(array.$
5c200 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 65 73 3b 0a rules).{.$this->rules.=.$rules;.
5c220 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 75 6c 65 73 $this->types.=.array_keys($rules
5c240 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 73 2d 3e 72 );.sort($this->types);..$this->r
5c260 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 63 75 72 72 ewind();.}..public.function.curr
5c280 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 24 74 68 69 ent().{.return.$this->rules[$thi
5c2a0 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 6e 74 4f 66 s->currentType][$this->currentOf
5c2c0 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 79 28 29 0a fset];.}..public.function.key().
5c2e0 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 0a 7d 0a 0a {.return.$this->currentType;.}..
5c300 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 69 73 2d 3e public.function.next().{.$this->
5c320 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 28 24 74 68 currentOffset++;..if.(!isset($th
5c340 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 29 29 20 is->rules[$this->currentType])).
5c360 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 65 6e 74 4f {.return;.}..if.($this->currentO
5c380 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 5b 24 74 68 ffset.>=.sizeof($this->rules[$th
5c3a0 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 63 75 72 72 is->currentType])).{.$this->curr
5c3c0 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 63 75 72 72 entOffset.=.0;..do.{.$this->curr
5c3e0 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 28 24 74 68 entTypeOffset++;..if.(!isset($th
5c400 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 4f 66 66 73 is->types[$this->currentTypeOffs
5c420 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 20 2d 31 3b et])).{.$this->currentType.=.-1;
5c440 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 65 20 3d 20 .break;.}..$this->currentType.=.
5c460 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 4f $this->types[$this->currentTypeO
5c480 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 2d 3e 74 79 ffset];.}.while.(isset($this->ty
5c4a0 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 5d 29 20 26 pes[$this->currentTypeOffset]).&
5c4c0 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 2d 3e 63 75 &.!sizeof($this->rules[$this->cu
5c4e0 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 6e 63 74 69 rrentType]));.}.}..public.functi
5c500 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 4f 66 66 73 on.rewind().{.$this->currentOffs
5c520 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 66 66 73 65 et.=.0;..$this->currentTypeOffse
5c540 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 20 2d 31 3b t.=.-1;.$this->currentType.=.-1;
5c560 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 73 65 74 2b ..do.{.$this->currentTypeOffset+
5c580 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 24 74 68 69 +;..if.(!isset($this->types[$thi
5c5a0 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 68 69 73 2d s->currentTypeOffset])).{.$this-
5c5c0 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 0a 24 74 68 >currentType.=.-1;.break;.}..$th
5c5e0 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 65 73 5b 24 is->currentType.=.$this->types[$
5c600 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 77 68 69 6c this->currentTypeOffset];.}.whil
5c620 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 3e 63 75 72 e.(isset($this->types[$this->cur
5c640 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 24 74 68 69 rentTypeOffset]).&&.!sizeof($thi
5c660 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 29 29 3b 0a s->rules[$this->currentType]));.
5c680 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 0a 72 65 74 }..public.function.valid().{.ret
5c6a0 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 2d 3e 63 75 urn.isset($this->rules[$this->cu
5c6c0 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 72 75 6c 65 rrentType]).&&.isset($this->rule
5c6e0 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 3e 63 75 72 s[$this->currentType][$this->cur
5c700 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 0a 0a 0a 0a rentOffset]);.}.}.<?php.........
5c720 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
5c740 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 65 57 61 74 Resolver;..........class.RuleWat
5c760 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 6e 6b 65 64 chChain.extends.\SplDoublyLinked
5c780 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 3b 0a 0a 0a List.{.protected.$offset.=.0;...
5c7a0 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 66 73 65 74 ....public.function.seek($offset
5c7c0 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 20 3d 20 30 ).{.$this->rewind();.for.($i.=.0
5c7e0 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 3e 6e 65 78 ;.$i.<.$offset;.$i++,.$this->nex
5c800 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 74 69 6f 6e t());.}..........public.function
5c820 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 3e 6b 65 79 .remove().{.$offset.=.$this->key
5c840 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 65 74 29 3b ();.$this->offsetUnset($offset);
5c860 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 3f 70 68 70 .$this->seek($offset);.}.}.<?php
5c880 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
5c8a0 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 6f 73 65 72 ependencyResolver;..use.Composer
5c8c0 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;
5c8e0 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 41 4e 43 48 .....class.Solver.{.const.BRANCH
5c900 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 4c 45 56 45 _LITERALS.=.0;.const.BRANCH_LEVE
5c920 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 72 6f 74 65 L.=.1;..protected.$policy;.prote
5c940 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
5c960 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 64 20 24 72 ;.protected.$rules;.protected.$r
5c980 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 75 70 64 61 uleSetGenerator;.protected.$upda
5c9a0 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 3d 20 61 72 teAll;..protected.$addedMap.=.ar
5c9c0 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 3d 20 61 72 ray();.protected.$updateMap.=.ar
5c9e0 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 3b 0a 70 72 ray();.protected.$watchGraph;.pr
5ca00 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 64 20 24 69 otected.$decisions;.protected.$i
5ca20 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 70 61 67 61 nstalledMap;..protected.$propaga
5ca40 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 20 3d 20 61 teIndex;.protected.$branches.=.a
5ca60 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 3d 20 61 72 rray();.protected.$problems.=.ar
5ca80 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 6c 20 3d 20 ray();.protected.$learnedPool.=.
5caa0 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 63 6f 6e 73 array();..public.function.__cons
5cac0 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
5cae0 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 63 65 20 24 ool.$pool,.RepositoryInterface.$
5cb00 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 20 24 70 6f installed).{.$this->policy.=.$po
5cb20 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 74 68 69 73 licy;.$this->pool.=.$pool;.$this
5cb40 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 68 69 73 2d ->installed.=.$installed;.$this-
5cb60 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 53 65 74 47 >ruleSetGenerator.=.new.RuleSetG
5cb80 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 0a 0a 20 70 enerator($policy,.$pool);.}....p
5cba0 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 6e 52 75 6c rivate.function.makeAssertionRul
5cbc0 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 74 20 3d 20 eDecisions().{.$decisionStart.=.
5cbe0 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 0a 0a 24 72 count($this->decisions).-.1;..$r
5cc00 75 6c 65 73 43 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b ulesCount.=.count($this->rules);
5cc20 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 78 .for.($ruleIndex.=.0;.$ruleIndex
5cc40 20 3c 20 24 72 75 6c 65 73 43 6f 75 6e 74 3b 20 24 72 75 6c 65 49 6e 64 65 78 2b 2b 29 20 7b 0a .<.$rulesCount;.$ruleIndex++).{.
5cc60 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 49 64 28 24 $rule.=.$this->rules->ruleById($
5cc80 72 75 6c 65 49 6e 64 65 78 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 2d 3e 69 73 41 73 73 65 72 ruleIndex);..if.(!$rule->isAsser
5cca0 74 69 6f 6e 28 29 20 7c 7c 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b tion().||.$rule->isDisabled()).{
5ccc0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d .continue;.}..$literals.=.$rule-
5cce0 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 6c 69 74 65 >getLiterals();.$literal.=.$lite
5cd00 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d rals[0];..if.(!$this->decisions-
5cd20 3e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 74 68 69 73 >decided(abs($literal))).{.$this
5cd40 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 31 2c ->decisions->decide($literal,.1,
5cd60 20 24 72 75 6c 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d .$rule);.continue;.}..if.($this-
5cd80 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)).{
5cda0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 .continue;.}....if.(RuleSet::TYP
5cdc0 45 5f 4c 45 41 52 4e 45 44 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 E_LEARNED.===.$rule->getType()).
5cde0 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a {.$rule->disable();.continue;.}.
5ce00 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 .$conflict.=.$this->decisions->d
5ce20 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 63 6f 6e ecisionRule($literal);..if.($con
5ce40 66 6c 69 63 74 20 26 26 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d flict.&&.RuleSet::TYPE_PACKAGE.=
5ce60 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 0a 24 70 72 6f ==.$conflict->getType()).{..$pro
5ce80 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b blem.=.new.Problem($this->pool);
5cea0 0a 0a 24 70 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 ..$problem->addRule($rule);.$pro
5cec0 62 6c 65 6d 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 blem->addRule($conflict);.$this-
5cee0 3e 64 69 73 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 >disableProblem($rule);.$this->p
5cf00 72 6f 62 6c 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 roblems[].=.$problem;.continue;.
5cf20 7d 0a 0a 0a 20 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 }....$problem.=.new.Problem($thi
5cf40 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c s->pool);.$problem->addRule($rul
5cf60 65 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 e);.$problem->addRule($conflict)
5cf80 3b 0a 0a 0a 20 0a 20 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 ;......foreach.($this->rules->ge
5cfa0 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 4f 42 29 20 tIteratorFor(RuleSet::TYPE_JOB).
5cfc0 61 73 20 24 61 73 73 65 72 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 61 73 73 65 72 74 52 75 6c as.$assertRule).{.if.($assertRul
5cfe0 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 7c 7c 20 21 24 61 73 73 65 72 74 52 75 6c 65 2d e->isDisabled().||.!$assertRule-
5d000 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 >isAssertion()).{.continue;.}..$
5d020 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 assertRuleLiterals.=.$assertRule
5d040 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 ->getLiterals();.$assertRuleLite
5d060 72 61 6c 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 ral.=.$assertRuleLiterals[0];..i
5d080 66 20 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 20 21 3d 3d 20 61 62 73 28 24 61 73 73 65 72 74 f.(abs($literal).!==.abs($assert
5d0a0 52 75 6c 65 4c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 72 RuleLiteral)).{.continue;.}..$pr
5d0c0 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 24 74 68 oblem->addRule($assertRule);.$th
5d0e0 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b is->disableProblem($assertRule);
5d100 0a 7d 0a 24 74 68 69 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 .}.$this->problems[].=.$problem;
5d120 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 54 6f 4f 66 66 73 65 ..$this->decisions->resetToOffse
5d140 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 78 20 3d 20 t($decisionStart);.$ruleIndex.=.
5d160 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 73 65 74 75 -1;.}.}..protected.function.setu
5d180 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 74 61 6c 6c pInstalledMap().{.$this->install
5d1a0 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 68 69 73 2d edMap.=.array();.foreach.($this-
5d1c0 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 20 24 70 61 >installed->getPackages().as.$pa
5d1e0 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 5b 24 70 61 ckage).{.$this->installedMap[$pa
5d200 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 7d 0a 0a 66 ckage->getId()].=.$package;.}..f
5d220 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 20 7b 0a 73 oreach.($this->jobs.as.$job).{.s
5d240 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 75 70 64 61 witch.($job['cmd']).{.case.'upda
5d260 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 27 5d 20 61 te':.foreach.($job['packages'].a
5d280 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 73 2d 3e 69 s.$package).{.if.(isset($this->i
5d2a0 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 29 5d 29 29 nstalledMap[$package->getId()]))
5d2c0 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 2d 3e 67 65 .{.$this->updateMap[$package->ge
5d2e0 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 61 73 65 20 tId()].=.true;.}.}.break;..case.
5d300 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 2d 3e 69 6e 'update-all':.foreach.($this->in
5d320 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 68 69 73 2d stalledMap.as.$package).{.$this-
5d340 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 5d 20 3d 20 >updateMap[$package->getId()].=.
5d360 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 6c 27 3a 0a true;.}.break;..case.'install':.
5d380 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 6f 62 6c 65 if.(!$job['packages']).{.$proble
5d3a0 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 m.=.new.Problem($this->pool);.$p
5d3c0 72 6f 62 6c 65 6d 2d 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 roblem->addRule(new.Rule($this->
5d3e0 70 6f 6f 6c 2c 20 61 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 pool,.array(),.null,.null,.$job)
5d400 29 3b 0a 24 74 68 69 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 );.$this->problems[].=.$problem;
5d420 0a 7d 0a 62 72 65 61 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 .}.break;.}.}.}..public.function
5d440 20 73 6f 6c 76 65 28 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 .solve(Request.$request).{.$this
5d460 2d 3e 6a 6f 62 73 20 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 ->jobs.=.$request->getJobs();..$
5d480 74 68 69 73 2d 3e 73 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 this->setupInstalledMap();..$thi
5d4a0 73 2d 3e 64 65 63 69 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 s->decisions.=.new.Decisions($th
5d4c0 69 73 2d 3e 70 6f 6f 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 is->pool);..$this->rules.=.$this
5d4e0 2d 3e 72 75 6c 65 53 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 ->ruleSetGenerator->getRulesFor(
5d500 24 74 68 69 73 2d 3e 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 $this->jobs,.$this->installedMap
5d520 29 3b 0a 24 74 68 69 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 );.$this->watchGraph.=.new.RuleW
5d540 61 74 63 68 47 72 61 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 atchGraph;..foreach.($this->rule
5d560 73 20 61 73 20 24 72 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 s.as.$rule).{.$this->watchGraph-
5d580 3e 69 6e 73 65 72 74 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 >insert(new.RuleWatchNode($rule)
5d5a0 29 3b 0a 7d 0a 0a 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 );.}...$this->makeAssertionRuleD
5d5c0 65 63 69 73 69 6f 6e 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 ecisions();..$this->runSat(true)
5d5e0 3b 0a 0a 0a 20 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 ;....foreach.($this->installedMa
5d600 70 20 61 73 20 24 70 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 p.as.$packageId.=>.$void).{.if.(
5d620 24 74 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 70 61 63 $this->decisions->undecided($pac
5d640 6b 61 67 65 49 64 29 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 kageId)).{.$this->decisions->dec
5d660 69 64 65 28 2d 24 70 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 ide(-$packageId,.1,.null);.}.}..
5d680 69 66 20 28 24 74 68 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 if.($this->problems).{.throw.new
5d6a0 20 53 6f 6c 76 65 72 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 .SolverProblemsException($this->
5d6c0 70 72 6f 62 6c 65 6d 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 problems,.$this->installedMap);.
5d6e0 7d 0a 0a 24 74 72 61 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 }..$transaction.=.new.Transactio
5d700 6e 28 24 74 68 69 73 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 n($this->policy,.$this->pool,.$t
5d720 68 69 73 2d 3e 69 6e 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 his->installedMap,.$this->decisi
5d740 6f 6e 73 29 3b 0a 0a 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 ons);..return.$transaction->getO
5d760 70 65 72 61 74 69 6f 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 perations();.}..protected.functi
5d780 6f 6e 20 6c 69 74 65 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 on.literalFromId($id).{.$package
5d7a0 20 3d 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 28 61 62 73 28 .=.$this->pool->packageById(abs(
5d7c0 24 69 64 29 29 3b 0a 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 $id));..return.new.Literal($pack
5d7e0 61 67 65 2c 20 24 69 64 20 3e 20 30 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 age,.$id.>.0);.}...........prote
5d800 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 0a cted.function.propagate($level).
5d820 7b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 76 61 6c 69 64 {.while.($this->decisions->valid
5d840 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 29 20 7b Offset($this->propagateIndex)).{
5d860 0a 24 64 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 73 2d 3e 61 .$decision.=.$this->decisions->a
5d880 74 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 3b 0a tOffset($this->propagateIndex);.
5d8a0 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e .$conflict.=.$this->watchGraph->
5d8c0 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 0a 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 propagateLiteral(.$decision[Deci
5d8e0 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 2c 0a 24 6c 65 76 65 6c sions::DECISION_LITERAL],.$level
5d900 2c 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 ,.$this->decisions.);..$this->pr
5d920 6f 70 61 67 61 74 65 49 6e 64 65 78 2b 2b 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 29 20 opagateIndex++;..if.($conflict).
5d940 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 6c 69 63 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 {.return.$conflict;.}.}..return.
5d960 6e 75 6c 6c 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 72 65 76 null;.}.....private.function.rev
5d980 65 72 74 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 21 24 74 68 69 73 2d 3e 64 65 63 ert($level).{.while.(!$this->dec
5d9a0 69 73 69 6f 6e 73 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 isions->isEmpty()).{.$literal.=.
5d9c0 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 3b $this->decisions->lastLiteral();
5d9e0 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 ..if.($this->decisions->undecide
5da00 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 d($literal)).{.break;.}..$decisi
5da20 6f 6e 4c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 onLevel.=.$this->decisions->deci
5da40 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 64 65 63 69 73 sionLevel($literal);..if.($decis
5da60 69 6f 6e 4c 65 76 65 6c 20 3c 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a ionLevel.<=.$level).{.break;.}..
5da80 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 76 65 72 74 4c 61 73 74 28 29 3b 0a $this->decisions->revertLast();.
5daa0 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 63 6f 75 6e 74 28 24 74 $this->propagateIndex.=.count($t
5dac0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 his->decisions);.}..while.(!empt
5dae0 79 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 26 26 20 24 74 68 69 73 2d 3e 62 72 61 y($this->branches).&&.$this->bra
5db00 6e 63 68 65 73 5b 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 nches[count($this->branches).-.1
5db20 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 45 56 45 4c 5d 20 3e 3d 20 24 6c 65 76 65 6c 29 ][self::BRANCH_LEVEL].>=.$level)
5db40 20 7b 0a 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 3b 0a 7d .{.array_pop($this->branches);.}
5db60 0a 7d 0a 0a 0a 0a 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 .}.................private.funct
5db80 69 6f 6e 20 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c ion.setPropagateLearn($level,.$l
5dba0 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c iteral,.$disableRules,.Rule.$rul
5dbc0 65 29 0a 7b 0a 24 6c 65 76 65 6c 2b 2b 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 e).{.$level++;..$this->decisions
5dbe0 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 ->decide($literal,.$level,.$rule
5dc00 29 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 );..while.(true).{.$rule.=.$this
5dc20 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 ->propagate($level);..if.(!$rule
5dc40 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 31 29 20 7b ).{.break;.}..if.($level.==.1).{
5dc60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 .return.$this->analyzeUnsolvable
5dc80 28 24 72 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 3b 0a 7d 0a 0a 0a 20 6c 69 73 ($rule,.$disableRules);.}....lis
5dca0 74 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6e 65 77 4c 65 76 65 6c 2c 20 24 6e 65 77 t($learnLiteral,.$newLevel,.$new
5dcc0 52 75 6c 65 2c 20 24 77 68 79 29 20 3d 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 28 24 6c 65 Rule,.$why).=.$this->analyze($le
5dce0 76 65 6c 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 24 6e 65 77 4c 65 76 65 6c 20 3c 3d 20 30 vel,.$rule);..if.($newLevel.<=.0
5dd00 20 7c 7c 20 24 6e 65 77 4c 65 76 65 6c 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 74 68 72 6f 77 .||.$newLevel.>=.$level).{.throw
5dd20 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 67 .new.SolverBugException(."Trying
5dd40 20 74 6f 20 72 65 76 65 72 74 20 74 6f 20 69 6e 76 61 6c 69 64 20 6c 65 76 65 6c 20 22 2e 28 69 .to.revert.to.invalid.level.".(i
5dd60 6e 74 29 20 24 6e 65 77 4c 65 76 65 6c 2e 22 20 66 72 6f 6d 20 6c 65 76 65 6c 20 22 2e 28 69 6e nt).$newLevel.".from.level.".(in
5dd80 74 29 20 24 6c 65 76 65 6c 2e 22 2e 22 0a 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 6e 65 77 t).$level.".".);.}.elseif.(!$new
5dda0 52 75 6c 65 29 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 Rule).{.throw.new.SolverBugExcep
5ddc0 74 69 6f 6e 28 0a 22 4e 6f 20 72 75 6c 65 20 77 61 73 20 6c 65 61 72 6e 65 64 20 66 72 6f 6d 20 tion(."No.rule.was.learned.from.
5dde0 61 6e 61 6c 79 7a 69 6e 67 20 24 72 75 6c 65 20 61 74 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c 2e analyzing.$rule.at.level.$level.
5de00 22 0a 29 3b 0a 7d 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6e 65 77 4c 65 76 65 6c 3b 0a 0a 24 74 68 ".);.}..$level.=.$newLevel;..$th
5de20 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 is->revert($level);..$this->rule
5de40 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c s->add($newRule,.RuleSet::TYPE_L
5de60 45 41 52 4e 45 44 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 6e 65 77 EARNED);..$this->learnedWhy[$new
5de80 52 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 24 77 68 79 3b 0a 0a 24 72 75 6c 65 4e 6f 64 Rule->getId()].=.$why;..$ruleNod
5dea0 65 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 6e 65 77 52 75 6c 65 29 3b e.=.new.RuleWatchNode($newRule);
5dec0 0a 24 72 75 6c 65 4e 6f 64 65 2d 3e 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 24 74 68 69 .$ruleNode->watch2OnHighest($thi
5dee0 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 s->decisions);.$this->watchGraph
5df00 2d 3e 69 6e 73 65 72 74 28 24 72 75 6c 65 4e 6f 64 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 ->insert($ruleNode);..$this->dec
5df20 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6c isions->decide($learnLiteral,.$l
5df40 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 65 76 65 evel,.$newRule);.}..return.$leve
5df60 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 41 6e 64 l;.}..private.function.selectAnd
5df80 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 61 72 72 61 79 20 24 64 65 63 69 73 69 6f 6e 51 Install($level,.array.$decisionQ
5dfa0 75 65 75 65 2c 20 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 ueue,.$disableRules,.Rule.$rule)
5dfc0 0a 7b 0a 0a 20 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e .{...$literals.=.$this->policy->
5dfe0 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f selectPreferedPackages($this->po
5e000 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 ol,.$this->installedMap,.$decisi
5e020 6f 6e 51 75 65 75 65 2c 20 24 72 75 6c 65 2d 3e 67 65 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 onQueue,.$rule->getRequiredPacka
5e040 67 65 28 29 29 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 ge());..$selectedLiteral.=.array
5e060 5f 73 68 69 66 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 _shift($literals);....if.(count(
5e080 24 6c 69 74 65 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 $literals)).{.$this->branches[].
5e0a0 3d 20 61 72 72 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 =.array($literals,.$level);.}..r
5e0c0 65 74 75 72 6e 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 eturn.$this->setPropagateLearn($
5e0e0 6c 65 76 65 6c 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 level,.$selectedLiteral,.$disabl
5e100 65 52 75 6c 65 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 eRules,.$rule);.}..protected.fun
5e120 63 74 69 6f 6e 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 ction.analyze($level,.$rule).{.$
5e140 61 6e 61 6c 79 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 analyzedRule.=.$rule;.$ruleLevel
5e160 20 3d 20 31 3b 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 .=.1;.$num.=.0;.$l1num.=.0;.$see
5e180 6e 20 3d 20 61 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 n.=.array();.$learnedLiterals.=.
5e1a0 61 72 72 61 79 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 array(null);..$decisionId.=.coun
5e1c0 74 28 24 74 68 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 t($this->decisions);..$this->lea
5e1e0 72 6e 65 64 50 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 rnedPool[].=.array();..while.(tr
5e200 75 65 29 20 7b 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 ue).{.$this->learnedPool[count($
5e220 74 68 69 73 2d 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 this->learnedPool).-.1][].=.$rul
5e240 65 3b 0a 0a 66 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 e;..foreach.($rule->getLiterals(
5e260 29 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 3e 64 65 ).as.$literal).{...if.($this->de
5e280 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 0a 63 6f cisions->satisfy($literal)).{.co
5e2a0 6e 74 69 6e 75 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 ntinue;.}..if.(isset($seen[abs($
5e2c0 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 24 73 65 65 6e 5b literal)])).{.continue;.}.$seen[
5e2e0 61 62 73 28 24 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 abs($literal)].=.true;..$l.=.$th
5e300 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 6c 28 24 6c 69 is->decisions->decisionLevel($li
5e320 74 65 72 61 6c 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 teral);..if.(1.===.$l).{.$l1num+
5e340 2b 3b 0a 7d 20 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 +;.}.elseif.($level.===.$l).{.$n
5e360 75 6d 2b 2b 3b 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 um++;.}.else.{...$learnedLiteral
5e380 73 5b 5d 20 3d 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 s[].=.$literal;..if.($l.>.$ruleL
5e3a0 65 76 65 6c 29 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 evel).{.$ruleLevel.=.$l;.}.}.}..
5e3c0 24 6c 31 72 65 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 $l1retry.=.true;.while.($l1retry
5e3e0 29 20 7b 0a 24 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 ).{.$l1retry.=.false;..if.(!$num
5e400 20 26 26 20 21 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 .&&.!--$l1num).{...break.2;.}..w
5e420 68 69 6c 65 20 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 hile.(true).{.if.($decisionId.<=
5e440 20 30 29 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 .0).{.throw.new.SolverBugExcepti
5e460 6f 6e 28 0a 22 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 on(."Reached.invalid.decision.id
5e480 20 24 64 65 63 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 .$decisionId.while.looking.throu
5e4a0 67 68 20 24 72 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 gh.$rule.for.a.literal.present.i
5e4c0 6e 20 74 68 65 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 n.the.analyzed.rule.$analyzedRul
5e4e0 65 2e 22 0a 29 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 e.".);.}..$decisionId--;..$decis
5e500 69 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 ion.=.$this->decisions->atOffset
5e520 28 24 64 65 63 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 ($decisionId);.$literal.=.$decis
5e540 69 6f 6e 5b 44 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 ion[Decisions::DECISION_LITERAL]
5e560 3b 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 61 6c 29 ;..if.(isset($seen[abs($literal)
5e580 5d 29 29 20 7b 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 ])).{.break;.}.}..unset($seen[ab
5e5a0 73 28 24 6c 69 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 s($literal)]);..if.($num.&&.0.==
5e5c0 3d 20 2d 2d 24 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 =.--$num).{.$learnedLiterals[0].
5e5e0 3d 20 2d 61 62 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 =.-abs($literal);..if.(!$l1num).
5e600 7b 0a 62 72 65 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 {.break.2;.}..foreach.($learnedL
5e620 69 74 65 72 61 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 iterals.as.$i.=>.$learnedLiteral
5e640 29 20 7b 0a 69 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 ).{.if.($i.!==.0).{.unset($seen[
5e660 61 62 73 28 24 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 abs($learnedLiteral)]);.}.}...$l
5e680 31 6e 75 6d 2b 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 1num++;.$l1retry.=.true;.}.}..$d
5e6a0 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 73 2d 3e 61 74 4f 66 ecision.=.$this->decisions->atOf
5e6c0 66 73 65 74 28 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 fset($decisionId);.$rule.=.$deci
5e6e0 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 52 45 41 53 4f 4e 5d sion[Decisions::DECISION_REASON]
5e700 3b 0a 7d 0a 0a 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 ;.}..$why.=.count($this->learned
5e720 50 6f 6f 6c 29 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 Pool).-.1;..if.(!$learnedLiteral
5e740 73 5b 30 5d 29 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 s[0]).{.throw.new.SolverBugExcep
5e760 74 69 6f 6e 28 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 tion(."Did.not.find.a.learnable.
5e780 6c 69 74 65 72 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 literal.in.analyzed.rule.$analyz
5e7a0 65 64 52 75 6c 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 edRule.".);.}..$newRule.=.new.Ru
5e7c0 6c 65 28 24 74 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 le($this->pool,.$learnedLiterals
5e7e0 2c 20 52 75 6c 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 ,.Rule::RULE_LEARNED,.$why);..re
5e800 74 75 72 6e 20 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 turn.array($learnedLiterals[0],.
5e820 24 72 75 6c 65 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 $ruleLevel,.$newRule,.$why);.}..
5e840 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 62 private.function.analyzeUnsolvab
5e860 6c 65 52 75 6c 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 leRule($problem,.$conflictRule).
5e880 7b 0a 24 77 68 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 {.$why.=.$conflictRule->getId();
5e8a0 0a 0a 69 66 20 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 ..if.($conflictRule->getType().=
5e8c0 3d 20 52 75 6c 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 =.RuleSet::TYPE_LEARNED).{.$lear
5e8e0 6e 65 64 57 68 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 nedWhy.=.$this->learnedWhy[$why]
5e900 3b 0a 24 70 72 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 ;.$problemRules.=.$this->learned
5e920 50 6f 6f 6c 5b 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 Pool[$learnedWhy];..foreach.($pr
5e940 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 65 29 20 7b 0a 24 74 oblemRules.as.$problemRule).{.$t
5e960 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 62 his->analyzeUnsolvableRule($prob
5e980 6c 65 6d 2c 20 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 lem,.$problemRule);.}..return;.}
5e9a0 0a 0a 69 66 20 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 ..if.($conflictRule->getType().=
5e9c0 3d 20 52 75 6c 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 =.RuleSet::TYPE_PACKAGE).{...ret
5e9e0 75 72 6e 3b 0a 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 urn;.}..$problem->nextSection();
5ea00 0a 24 70 72 6f 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 .$problem->addRule($conflictRule
5ea20 29 3b 0a 7d 0a 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 );.}..private.function.analyzeUn
5ea40 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 73 61 62 6c 65 solvable($conflictRule,.$disable
5ea60 52 75 6c 65 73 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 28 Rules).{.$problem.=.new.Problem(
5ea80 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 $this->pool);.$problem->addRule(
5eaa0 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 $conflictRule);..$this->analyzeU
5eac0 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 63 6f 6e 66 6c 69 63 nsolvableRule($problem,.$conflic
5eae0 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 tRule);..$this->problems[].=.$pr
5eb00 6f 62 6c 65 6d 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 69 74 65 72 61 oblem;..$seen.=.array();.$litera
5eb20 6c 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 ls.=.$conflictRule->getLiterals(
5eb40 29 3b 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 6c 69 74 65 72 );..foreach.($literals.as.$liter
5eb60 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 6e 73 2d 3e 73 61 al).{...if.($this->decisions->sa
5eb80 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 65 3b 0a 7d 0a 24 tisfy($literal)).{.continue;.}.$
5eba0 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 seen[abs($literal)].=.true;.}..f
5ebc0 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 64 65 63 oreach.($this->decisions.as.$dec
5ebe0 69 73 69 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 ision).{.$literal.=.$decision[De
5ec00 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 0a 20 69 cisions::DECISION_LITERAL];....i
5ec20 66 20 28 21 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 f.(!isset($seen[abs($literal)]))
5ec40 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 77 68 79 20 3d 20 24 64 65 63 69 73 69 6f 6e .{.continue;.}..$why.=.$decision
5ec60 5b 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 [Decisions::DECISION_REASON];..$
5ec80 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 77 68 79 29 3b 0a 24 74 68 69 73 2d 3e 61 problem->addRule($why);.$this->a
5eca0 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 24 nalyzeUnsolvableRule($problem,.$
5ecc0 77 68 79 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 77 68 79 2d 3e 67 65 74 4c 69 74 65 why);..$literals.=.$why->getLite
5ece0 72 61 6c 73 28 29 3b 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 rals();..foreach.($literals.as.$
5ed00 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 6e literal).{...if.($this->decision
5ed20 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 65 s->satisfy($literal)).{.continue
5ed40 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b ;.}.$seen[abs($literal)].=.true;
5ed60 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 20 7b 0a 66 6f 72 65 61 .}.}..if.($disableRules).{.forea
5ed80 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d ch.($this->problems[count($this-
5eda0 3e 70 72 6f 62 6c 65 6d 73 29 20 2d 20 31 5d 20 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 >problems).-.1].as.$reason).{.$t
5edc0 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 65 61 73 6f 6e 5b 27 72 75 6c his->disableProblem($reason['rul
5ede0 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 53 6f 6c 76 65 72 28 29 3b 0a 0a e']);.}..$this->resetSolver();..
5ee00 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 69 76 61 74 return.1;.}..return.0;.}..privat
5ee20 65 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 77 68 79 29 0a e.function.disableProblem($why).
5ee40 7b 0a 24 6a 6f 62 20 3d 20 24 77 68 79 2d 3e 67 65 74 4a 6f 62 28 29 3b 0a 0a 69 66 20 28 21 24 {.$job.=.$why->getJob();..if.(!$
5ee60 6a 6f 62 29 20 7b 0a 24 77 68 79 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 3b job).{.$why->disable();..return;
5ee80 0a 7d 0a 0a 0a 20 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 .}....foreach.($this->rules.as.$
5eea0 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 6a 6f 62 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4a rule).{.if.($job.===.$rule->getJ
5eec0 6f 62 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a ob()).{.$rule->disable();.}.}.}.
5eee0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 53 6f 6c 76 65 72 28 29 0a .private.function.resetSolver().
5ef00 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 28 29 3b 0a 0a 24 74 {.$this->decisions->reset();..$t
5ef20 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 24 74 68 69 73 2d 3e his->propagateIndex.=.0;.$this->
5ef40 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 61 62 branches.=.array();..$this->enab
5ef60 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e leDisableLearnedRules();.$this->
5ef80 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 73 28 29 3b 0a 7d 0a makeAssertionRuleDecisions();.}.
5efa0 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 6e 61 62 6c 65 44 ........private.function.enableD
5efc0 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 isableLearnedRules().{.foreach.(
5efe0 24 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 $this->rules->getIteratorFor(Rul
5f000 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 61 73 20 24 72 75 6c 65 29 20 7b 0a eSet::TYPE_LEARNED).as.$rule).{.
5f020 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 72 75 6c 65 2d 3e $why.=.$this->learnedWhy[$rule->
5f040 67 65 74 49 64 28 29 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d getId()];.$problemRules.=.$this-
5f060 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 77 68 79 5d 3b 0a 0a 24 66 6f 75 6e 64 44 69 73 61 62 >learnedPool[$why];..$foundDisab
5f080 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 led.=.false;.foreach.($problemRu
5f0a0 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 70 72 6f 62 les.as.$problemRule).{.if.($prob
5f0c0 6c 65 6d 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 66 6f 75 6e 64 44 lemRule->isDisabled()).{.$foundD
5f0e0 69 73 61 62 6c 65 64 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 isabled.=.true;.break;.}.}..if.(
5f100 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c $foundDisabled.&&.$rule->isEnabl
5f120 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d 20 65 6c 73 65 ed()).{.$rule->disable();.}.else
5f140 69 66 20 28 21 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 if.(!$foundDisabled.&&.$rule->is
5f160 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 65 6e 61 62 6c 65 28 29 3b 0a 7d Disabled()).{.$rule->enable();.}
5f180 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 53 61 74 28 24 64 .}.}..private.function.runSat($d
5f1a0 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f isableRules.=.true).{.$this->pro
5f1c0 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 pagateIndex.=.0;................
5f1e0 0a 20 0a 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 24 64 ....$decisionQueue.=.array();.$d
5f200 65 63 69 73 69 6f 6e 53 75 70 70 6c 65 6d 65 6e 74 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 ecisionSupplementQueue.=.array()
5f220 3b 0a 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6c 65 76 ;.$disableRules.=.array();..$lev
5f240 65 6c 20 3d 20 31 3b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 el.=.1;.$systemLevel.=.$level.+.
5f260 31 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 50 6f 73 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 74 72 1;.$installedPos.=.0;..while.(tr
5f280 75 65 29 20 7b 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 24 63 6f 6e 66 ue).{..if.(1.===.$level).{.$conf
5f2a0 6c 69 63 74 52 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 lictRule.=.$this->propagate($lev
5f2c0 65 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 el);.if.(null.!==.$conflictRule)
5f2e0 20 7b 0a 69 66 20 28 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 .{.if.($this->analyzeUnsolvable(
5f300 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 29 29 20 7b $conflictRule,.$disableRules)).{
5f320 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 .continue;.}..return;.}.}....if.
5f340 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 69 74 65 72 61 ($level.<.$systemLevel).{.$itera
5f360 74 6f 72 20 3d 20 24 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 tor.=.$this->rules->getIteratorF
5f380 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 3b 0a 66 6f 72 65 61 63 68 20 28 or(RuleSet::TYPE_JOB);.foreach.(
5f3a0 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 2d $iterator.as.$rule).{.if.($rule-
5f3c0 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d >isEnabled()).{.$decisionQueue.=
5f3e0 20 61 72 72 61 79 28 29 3b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 74 72 75 65 3b .array();.$noneSatisfied.=.true;
5f400 0a 0a 66 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 ..foreach.($rule->getLiterals().
5f420 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 as.$literal).{.if.($this->decisi
5f440 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 0a 24 6e 6f 6e 65 53 ons->satisfy($literal)).{.$noneS
5f460 61 74 69 73 66 69 65 64 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 atisfied.=.false;.break;.}.if.($
5f480 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d literal.>.0.&&.$this->decisions-
5f4a0 3e 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 24 64 65 63 69 73 69 6f >undecided($literal)).{.$decisio
5f4c0 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e nQueue[].=.$literal;.}.}..if.($n
5f4e0 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 69 6f 6e 51 oneSatisfied.&&.count($decisionQ
5f500 75 65 75 65 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 6e ueue)).{.....if.(count($this->in
5f520 73 74 61 6c 6c 65 64 29 20 21 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d stalled).!=.count($this->updateM
5f540 61 70 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 ap)).{.$prunedQueue.=.array();.f
5f560 6f 72 65 61 63 68 20 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 6c 69 74 65 72 oreach.($decisionQueue.as.$liter
5f580 61 6c 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 al).{.if.(isset($this->installed
5f5a0 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 Map[abs($literal)])).{.$prunedQu
5f5c0 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 eue[].=.$literal;.if.(isset($thi
5f5e0 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a s->updateMap[abs($literal)])).{.
5f600 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 3b 0a 62 $prunedQueue.=.$decisionQueue;.b
5f620 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 24 70 72 reak;.}.}.}.$decisionQueue.=.$pr
5f640 75 6e 65 64 51 75 65 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 unedQueue;.}.}..if.($noneSatisfi
5f660 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a ed.&&.count($decisionQueue)).{..
5f680 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 3d 20 24 74 68 69 73 $oLevel.=.$level;.$level.=.$this
5f6a0 2d 3e 73 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 ->selectAndInstall($level,.$deci
5f6c0 73 69 6f 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 sionQueue,.$disableRules,.$rule)
5f6e0 3b 0a 0a 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 ;..if.(0.===.$level).{.return;.}
5f700 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 3d 20 24 6f 4c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b .if.($level.<=.$oLevel).{.break;
5f720 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 .}.}.}.}..$systemLevel.=.$level.
5f740 2b 20 31 3b 0a 0a 0a 20 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 24 +.1;....$iterator->next();.if.($
5f760 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d iterator->valid()).{.continue;.}
5f780 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b .}..if.($level.<.$systemLevel).{
5f7a0 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 66 6f 72 20 28 .$systemLevel.=.$level;.}..for.(
5f7c0 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 30 3b 20 24 6e 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 $i.=.0,.$n.=.0;.$n.<.count($this
5f7e0 2d 3e 72 75 6c 65 73 29 3b 20 24 69 2b 2b 2c 20 24 6e 2b 2b 29 20 7b 0a 69 66 20 28 24 69 20 3d ->rules);.$i++,.$n++).{.if.($i.=
5f800 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 29 20 7b 0a 24 69 20 3d 20 30 3b =.count($this->rules)).{.$i.=.0;
5f820 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 .}..$rule.=.$this->rules->ruleBy
5f840 49 64 28 24 69 29 3b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 Id($i);.$literals.=.$rule->getLi
5f860 74 65 72 61 6c 73 28 29 3b 0a 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 terals();..if.($rule->isDisabled
5f880 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 ()).{.continue;.}..$decisionQueu
5f8a0 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 66 6f 72 65 61 63 e.=.array();..............foreac
5f8c0 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 69 66 20 28 h.($literals.as.$literal).{.if.(
5f8e0 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 $literal.<=.0).{.if.(!$this->dec
5f900 69 73 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 isions->decidedInstall(abs($lite
5f920 72 61 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 7d 20 65 6c 73 65 20 ral))).{.continue.2;...}.}.else.
5f940 7b 0a 69 66 20 28 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 {.if.($this->decisions->decidedI
5f960 6e 73 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 nstall(abs($literal))).{.continu
5f980 65 20 32 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 e.2;...}.if.($this->decisions->u
5f9a0 6e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 64 65 63 69 ndecided(abs($literal))).{.$deci
5f9c0 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a sionQueue[].=.$literal;.}.}.}...
5f9e0 20 69 66 20 28 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 3c 20 32 29 20 .if.(count($decisionQueue).<.2).
5fa00 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b {.continue;.}..$oLevel.=.$level;
5fa20 0a 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 .$level.=.$this->selectAndInstal
5fa40 6c 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 l($level,.$decisionQueue,.$disab
5fa60 6c 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 leRules,.$rule);..if.(0.===.$lev
5fa80 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 6e 20 3d 20 2d 31 3b 0a 7d 0a 0a 69 el).{.return;.}....$n.=.-1;.}..i
5faa0 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 63 6f 6e 74 f.($level.<.$systemLevel).{.cont
5fac0 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e inue;.}....if.(count($this->bran
5fae0 63 68 65 73 29 29 20 7b 0a 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 ches)).{..$lastLiteral.=.null;.$
5fb00 6c 61 73 74 4c 65 76 65 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 lastLevel.=.null;.$lastBranchInd
5fb20 65 78 20 3d 20 30 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 ex.=.0;.$lastBranchOffset.=.0;.$
5fb40 6c 20 3d 20 30 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 l.=.0;..for.($i.=.count($this->b
5fb60 72 61 6e 63 68 65 73 29 20 2d 20 31 3b 20 24 69 20 3e 3d 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 6c ranches).-.1;.$i.>=.0;.$i--).{.l
5fb80 69 73 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 29 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e ist($literals,.$l).=.$this->bran
5fba0 63 68 65 73 5b 24 69 5d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 ches[$i];..foreach.($literals.as
5fbc0 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 .$offset.=>.$literal).{.if.($lit
5fbe0 65 72 61 6c 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 eral.&&.$literal.>.0.&&.$this->d
5fc00 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
5fc20 29 20 3e 20 24 6c 20 2b 20 31 29 20 7b 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 24 6c 69 ).>.$l.+.1).{.$lastLiteral.=.$li
5fc40 74 65 72 61 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 24 69 3b 0a 24 6c teral;.$lastBranchIndex.=.$i;.$l
5fc60 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 24 6f 66 66 73 65 74 3b 0a 24 6c 61 73 74 astBranchOffset.=.$offset;.$last
5fc80 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 61 73 74 4c 69 74 65 Level.=.$l;.}.}.}..if.($lastLite
5fca0 72 61 6c 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 ral).{.unset($this->branches[$la
5fcc0 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 49 54 45 stBranchIndex][self::BRANCH_LITE
5fce0 52 41 4c 53 5d 5b 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 5d 29 3b 0a 61 72 72 61 79 RALS][$lastBranchOffset]);.array
5fd00 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 _values($this->branches[$lastBra
5fd20 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d nchIndex][self::BRANCH_LITERALS]
5fd40 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 73 74 4c 65 76 65 6c 3b 0a 24 74 68 69 73 2d 3e );..$level.=.$lastLevel;.$this->
5fd60 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 64 revert($level);..$why.=.$this->d
5fd80 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 24 6f 4c 65 76 65 6c ecisions->lastReason();..$oLevel
5fda0 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 65 74 50 72 .=.$level;.$level.=.$this->setPr
5fdc0 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 61 73 74 4c 69 74 65 72 61 opagateLearn($level,.$lastLitera
5fde0 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 77 68 79 29 3b 0a 0a 69 66 20 28 24 6c l,.$disableRules,.$why);..if.($l
5fe00 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 evel.==.0).{.return;.}..continue
5fe20 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ;.}.}..break;.}.}.}.<?php.......
5fe40 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 6e .....namespace.Composer\Dependen
5fe60 63 79 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 cyResolver;..use.Composer\Packag
5fe80 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
5fea0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 65 73 74 0a 7b 0a 70 72 nterface;.....class.Request.{.pr
5fec0 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 70 6f 6f 6c 3b 0a otected.$jobs;.protected.$pool;.
5fee0 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 6f 6f .public.function.__construct(Poo
5ff00 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a l.$pool).{.$this->pool.=.$pool;.
5ff20 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 $this->jobs.=.array();.}..public
5ff40 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 .function.install($packageName,.
5ff60 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 74 72 61 LinkConstraintInterface.$constra
5ff80 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 70 61 63 int.=.null).{.$this->addJob($pac
5ffa0 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 kageName,.'install',.$constraint
5ffc0 29 3b 0a 7d 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 24 70 61 );.}..public.function.update($pa
5ffe0 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 72 66 61 ckageName,.LinkConstraintInterfa
60000 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 73 2d 3e ce.$constraint.=.null).{.$this->
60020 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 75 70 64 61 74 65 27 2c 20 24 addJob($packageName,.'update',.$
60040 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 69 6f 6e 20 constraint);.}..public.function.
60060 72 65 6d 6f 76 65 28 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 remove($packageName,.LinkConstra
60080 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 29 intInterface.$constraint.=.null)
600a0 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 65 2c 20 27 .{.$this->addJob($packageName,.'
600c0 72 65 6d 6f 76 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 remove',.$constraint);.}..protec
600e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 ted.function.addJob($packageName
60100 2c 20 24 63 6d 64 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 ,.$cmd,.LinkConstraintInterface.
60120 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 4e 61 $constraint.=.null).{.$packageNa
60140 6d 65 20 3d 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 3b 0a 24 me.=.strtolower($packageName);.$
60160 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 packages.=.$this->pool->whatProv
60180 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b ides($packageName,.$constraint);
601a0 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 ..$this->jobs[].=.array(.'packag
601c0 65 73 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 2c 0a 27 63 6d 64 27 20 3d 3e 20 24 63 6d 64 2c es'.=>.$packages,.'cmd'.=>.$cmd,
601e0 0a 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a .'packageName'.=>.$packageName,.
60200 27 63 6f 6e 73 74 72 61 69 6e 74 27 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 0a 29 3b 0a 'constraint'.=>.$constraint,.);.
60220 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 41 6c 6c 28 29 0a 7b }..public.function.updateAll().{
60240 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 63 6d 64 27 20 3d 3e 20 .$this->jobs[].=.array('cmd'.=>.
60260 27 75 70 64 61 74 65 2d 61 6c 6c 27 2c 20 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 61 72 72 61 'update-all',.'packages'.=>.arra
60280 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 67 65 74 4a 6f 62 73 y());.}..public.function.getJobs
602a0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 73 3b 0a 7d 0a 7d 0a 3c 3f 70 ().{.return.$this->jobs;.}.}.<?p
602c0 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
602e0 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 0a 0a 63 6c 61 73 73 \DependencyResolver;.......class
60300 20 50 72 6f 62 6c 65 6d 0a 7b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e .Problem.{.....protected.$reason
60320 53 65 65 6e 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 73 20 3d 20 Seen;......protected.$reasons.=.
60340 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 65 63 74 69 6f 6e 20 3d 20 30 array();..protected.$section.=.0
60360 3b 0a 0a 70 72 6f 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 ;..protected.$pool;..public.func
60380 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 29 0a 7b 0a 24 tion.__construct(Pool.$pool).{.$
603a0 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 0a 0a 0a 70 75 62 6c this->pool.=.$pool;.}.......publ
603c0 69 63 20 66 75 6e 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 ic.function.addRule(Rule.$rule).
603e0 7b 0a 24 74 68 69 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 {.$this->addReason($rule->getId(
60400 29 2c 20 61 72 72 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 ),.array(.'rule'.=>.$rule,.'job'
60420 20 3d 3e 20 24 72 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 .=>.$rule->getJob(),.));.}......
60440 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 73 28 29 0a 7b 0a .public.function.getReasons().{.
60460 72 65 74 75 72 6e 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 return.$this->reasons;.}.......p
60480 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 6e 67 28 61 ublic.function.getPrettyString(a
604a0 72 72 61 79 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 rray.$installedMap.=.array()).{.
604c0 24 72 65 61 73 6f 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 $reasons.=.call_user_func_array(
604e0 27 61 72 72 61 79 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 'array_merge',.array_reverse($th
60500 69 73 2d 3e 72 65 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 is->reasons));..if.(count($reaso
60520 6e 73 29 20 3d 3d 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 ns).===.1).{.reset($reasons);.$r
60540 65 61 73 6f 6e 20 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 eason.=.current($reasons);..$rul
60560 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 24 72 65 61 e.=.$reason['rule'];.$job.=.$rea
60580 73 6f 6e 5b 27 6a 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 son['job'];..if.($job.&&.$job['c
605a0 6d 64 27 5d 20 3d 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 md'].===.'install'.&&.empty($job
605c0 5b 27 70 61 63 6b 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 ['packages'])).{...if.(0.===.str
605e0 69 70 6f 73 28 24 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 ipos($job['packageName'],.'ext-'
60600 29 29 20 7b 0a 24 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 )).{.$ext.=.substr($job['package
60620 4e 61 6d 65 27 5d 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 Name'],.4);.$error.=.extension_l
60640 6f 61 64 65 64 28 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 oaded($ext).?.'has.the.wrong.ver
60660 73 69 6f 6e 20 28 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 sion.('.phpversion($ext).').inst
60680 61 6c 6c 65 64 27 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 alled'.:.'is.missing.from.your.s
606a0 79 73 74 65 6d 27 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 ystem';..return."\n....-.The.req
606c0 75 65 73 74 65 64 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 uested.PHP.extension.".$job['pac
606e0 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 6e 74 54 6f 54 65 kageName'].$this->constraintToTe
60700 78 74 28 24 6a 6f 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 xt($job['constraint']).'.'.$erro
60720 72 2e 27 2e 27 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6a r.'.';.}....if.(0.===.stripos($j
60740 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 27 6c 69 62 2d 27 29 29 20 7b 0a 24 6c ob['packageName'],.'lib-')).{.$l
60760 69 62 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 2c ib.=.substr($job['packageName'],
60780 20 34 29 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 .4);..return."\n....-.The.reques
607a0 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 ted.linked.library.".$job['packa
607c0 67 65 4e 61 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 geName'].$this->constraintToText
607e0 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 68 61 73 20 74 68 65 20 77 ($job['constraint']).'.has.the.w
60800 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 69 73 20 6d 69 73 rong.version.installed.or.is.mis
60820 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 sing.from.your.system,.make.sure
60840 20 74 6f 20 68 61 76 65 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 69 6e 67 .to.have.the.extension.providing
60860 20 69 74 2e 27 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 41 2d .it.';.}..if.(!preg_match('{^[A-
60880 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 2b 24 7d 27 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e Za-z0-9_./-]+$}',.$job['packageN
608a0 61 6d 65 27 5d 29 29 20 7b 0a 24 69 6c 6c 65 67 61 6c 43 68 61 72 73 20 3d 20 70 72 65 67 5f 72 ame'])).{.$illegalChars.=.preg_r
608c0 65 70 6c 61 63 65 28 27 7b 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 2b 7d 27 2c 20 27 27 2c eplace('{[A-Za-z0-9_./-]+}',.'',
608e0 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 22 .$job['packageName']);..return."
60900 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e \n....-.The.requested.package.".
60920 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 $job['packageName'].'.could.not.
60940 62 65 20 66 6f 75 6e 64 2c 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 74 73 20 6e 61 6d 65 be.found,.it.looks.like.its.name
60960 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 22 27 2e 24 69 6c 6c 65 67 61 6c 43 68 61 72 73 2e 27 22 .is.invalid,."'.$illegalChars.'"
60980 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 69 6e 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 .is.not.allowed.in.package.names
609a0 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f .';.}..if.(!$this->pool->whatPro
609c0 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 72 65 vides($job['packageName'])).{.re
609e0 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 20 70 61 63 6b turn."\n....-.The.requested.pack
60a00 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 27 20 63 6f 75 6c age.".$job['packageName'].'.coul
60a20 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 76 65 72 73 69 6f 6e 2c 20 74 d.not.be.found.in.any.version,.t
60a40 68 65 72 65 20 6d 61 79 20 62 65 20 61 20 74 79 70 6f 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 here.may.be.a.typo.in.the.packag
60a60 65 20 6e 61 6d 65 2e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 e.name.';.}..return."\n....-.The
60a80 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 .requested.package.".$job['packa
60aa0 67 65 4e 61 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 geName'].$this->constraintToText
60ac0 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 ($job['constraint']).'.could.not
60ae0 20 62 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 .be.found.';.}.}..$messages.=.ar
60b00 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 61 73 6f 6e 73 20 61 73 20 24 72 65 ray();..foreach.($reasons.as.$re
60b20 61 73 6f 6e 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 3b ason).{.$rule.=.$reason['rule'];
60b40 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d 3b 0a 0a 69 66 20 28 24 6a 6f .$job.=.$reason['job'];..if.($jo
60b60 62 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6a 6f 62 54 6f 54 b).{.$messages[].=.$this->jobToT
60b80 65 78 74 28 24 6a 6f 62 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 75 6c 65 29 20 7b 0a 69 66 ext($job);.}.elseif.($rule).{.if
60ba0 20 28 24 72 75 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 24 6d 65 73 73 .($rule.instanceof.Rule).{.$mess
60bc0 61 67 65 73 5b 5d 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 ages[].=.$rule->getPrettyString(
60be0 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c $installedMap);.}.}.}..return."\
60c00 6e 20 20 20 20 2d 20 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 2d 20 22 2c 20 24 6d 65 n....-.".implode("\n....-.",.$me
60c20 73 73 61 67 65 73 29 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 ssages);.}........protected.func
60c40 74 69 6f 6e 20 61 64 64 52 65 61 73 6f 6e 28 24 69 64 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 tion.addReason($id,.$reason).{.i
60c60 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e 5b 24 69 64 5d f.(!isset($this->reasonSeen[$id]
60c80 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e 5b 24 69 64 5d 20 3d 20 74 72 )).{.$this->reasonSeen[$id].=.tr
60ca0 75 65 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 5b 24 74 68 69 73 2d 3e 73 65 63 74 69 6f ue;.$this->reasons[$this->sectio
60cc0 6e 5d 5b 5d 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 n][].=.$reason;.}.}..public.func
60ce0 74 69 6f 6e 20 6e 65 78 74 53 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 63 74 tion.nextSection().{.$this->sect
60d00 69 6f 6e 2b 2b 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 74 69 ion++;.}........protected.functi
60d20 6f 6e 20 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f on.jobToText($job).{.switch.($jo
60d40 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 b['cmd']).{.case.'install':.if.(
60d60 21 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 4e 6f 20 !$job['packages']).{.return.'No.
60d80 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 20 74 6f 20 73 61 74 69 73 66 79 20 69 6e 73 74 61 6c 6c package.found.to.satisfy.install
60da0 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
60dc0 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[
60de0 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 'constraint']);.}..return.'Insta
60e00 6c 6c 61 74 69 6f 6e 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 llation.request.for.'.$job['pack
60e20 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 6e 74 54 6f 54 65 78 ageName'].$this->constraintToTex
60e40 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 2d 3e 20 73 61 74 69 73 t($job['constraint']).'.->.satis
60e60 66 69 61 62 6c 65 20 62 79 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 fiable.by.'.$this->getPackageLis
60e80 74 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 75 t($job['packages']).'.';.case.'u
60ea0 70 64 61 74 65 27 3a 0a 72 65 74 75 72 6e 20 27 55 70 64 61 74 65 20 72 65 71 75 65 73 74 20 66 pdate':.return.'Update.request.f
60ec0 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 2d 3e or.'.$job['packageName'].$this->
60ee0 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 69 6e constraintToText($job['constrain
60f00 74 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 72 65 74 75 72 6e 20 t']).'.';.case.'remove':.return.
60f20 27 52 65 6d 6f 76 61 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 'Removal.request.for.'.$job['pac
60f40 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 6e 74 54 6f 54 65 kageName'].$this->constraintToTe
60f60 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 27 3b 0a 7d 0a 0a 72 65 xt($job['constraint']).'';.}..re
60f80 74 75 72 6e 20 27 4a 6f 62 28 63 6d 64 3d 27 2e 24 6a 6f 62 5b 27 63 6d 64 27 5d 2e 27 2c 20 74 turn.'Job(cmd='.$job['cmd'].',.t
60fa0 61 72 67 65 74 3d 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 2c 20 70 arget='.$job['packageName'].',.p
60fc0 61 63 6b 61 67 65 73 3d 5b 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 ackages=['.$this->getPackageList
60fe0 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 2e 27 5d 29 27 3b 0a 7d 0a 0a 70 72 6f 74 ($job['packages']).'])';.}..prot
61000 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 70 ected.function.getPackageList($p
61020 61 63 6b 61 67 65 73 29 0a 7b 0a 24 70 72 65 70 61 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a ackages).{.$prepared.=.array();.
61040 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 67 65 29 20 foreach.($packages.as.$package).
61060 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d {.$prepared[$package->getName()]
61080 5b 27 6e 61 6d 65 27 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 ['name'].=.$package->getPrettyNa
610a0 6d 65 28 29 3b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d me();.$prepared[$package->getNam
610c0 65 28 29 5d 5b 27 76 65 72 73 69 6f 6e 73 27 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 e()]['versions'][$package->getVe
610e0 72 73 69 6f 6e 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 56 65 rsion()].=.$package->getPrettyVe
61100 72 73 69 6f 6e 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 72 65 70 61 72 65 64 20 61 73 rsion();.}.foreach.($prepared.as
61120 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b .$name.=>.$package).{.$prepared[
61140 24 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2e 27 5b 27 2e 69 6d $name].=.$package['name'].'['.im
61160 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 73 27 5d plode(',.',.$package['versions']
61180 29 2e 27 5d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 ).']';.}..return.implode(',.',.$
611a0 70 72 65 70 61 72 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 prepared);.}........protected.fu
611c0 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 63 6f 6e 73 74 72 61 nction.constraintToText($constra
611e0 69 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 3f 20 27 20 int).{.return.($constraint).?.'.
61200 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 '.$constraint->getPrettyString()
61220 20 3a 20 27 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
61240 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
61260 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 47 72 61 r;............class.RuleWatchGra
61280 70 68 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 43 68 61 69 6e 73 20 3d 20 61 72 ph.{.protected.$watchChains.=.ar
612a0 72 61 79 28 29 3b 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 ray();..............public.funct
612c0 69 6f 6e 20 69 6e 73 65 72 74 28 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 20 24 6e 6f 64 65 29 0a ion.insert(RuleWatchNode.$node).
612e0 7b 0a 69 66 20 28 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 69 73 41 73 73 65 72 74 {.if.($node->getRule()->isAssert
61300 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 ion()).{.return;.}..foreach.(arr
61320 61 79 28 24 6e 6f 64 65 2d 3e 77 61 74 63 68 31 2c 20 24 6e 6f 64 65 2d 3e 77 61 74 63 68 32 29 ay($node->watch1,.$node->watch2)
61340 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 .as.$literal).{.if.(!isset($this
61360 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 ->watchChains[$literal])).{.$thi
61380 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 s->watchChains[$literal].=.new.R
613a0 75 6c 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 uleWatchChain;.}..$this->watchCh
613c0 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a ains[$literal]->unshift($node);.
613e0 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c }.}.........................publ
61400 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 24 64 65 ic.function.propagateLiteral($de
61420 63 69 64 65 64 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 73 cidedLiteral,.$level,.$decisions
61440 29 0a 7b 0a 0a 20 0a 20 0a 20 24 6c 69 74 65 72 61 6c 20 3d 20 2d 24 64 65 63 69 64 65 64 4c 69 ).{.......$literal.=.-$decidedLi
61460 74 65 72 61 6c 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 teral;..if.(!isset($this->watchC
61480 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b hains[$literal])).{.return.null;
614a0 0a 7d 0a 0a 24 63 68 61 69 6e 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b .}..$chain.=.$this->watchChains[
614c0 24 6c 69 74 65 72 61 6c 5d 3b 0a 0a 24 63 68 61 69 6e 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 77 68 $literal];..$chain->rewind();.wh
614e0 69 6c 65 20 28 24 63 68 61 69 6e 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 24 6e 6f 64 65 20 3d 20 ile.($chain->valid()).{.$node.=.
61500 24 63 68 61 69 6e 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 24 6f 74 68 65 72 57 61 74 63 68 20 3d $chain->current();.$otherWatch.=
61520 20 24 6e 6f 64 65 2d 3e 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 3b .$node->getOtherWatch($literal);
61540 0a 0a 69 66 20 28 21 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 69 73 44 69 73 61 62 ..if.(!$node->getRule()->isDisab
61560 6c 65 64 28 29 20 26 26 20 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6f led().&&.!$decisions->satisfy($o
61580 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 24 72 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 6e therWatch)).{.$ruleLiterals.=.$n
615a0 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a ode->getRule()->getLiterals();..
615c0 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 5f 66 69 6c $alternativeLiterals.=.array_fil
615e0 74 65 72 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 72 75 ter($ruleLiterals,.function.($ru
61600 6c 65 4c 69 74 65 72 61 6c 29 20 75 73 65 20 28 24 6c 69 74 65 72 61 6c 2c 20 24 6f 74 68 65 72 leLiteral).use.($literal,.$other
61620 57 61 74 63 68 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 Watch,.$decisions).{.return.$lit
61640 65 72 61 6c 20 21 3d 3d 20 24 72 75 6c 65 4c 69 74 65 72 61 6c 20 26 26 0a 24 6f 74 68 65 72 57 eral.!==.$ruleLiteral.&&.$otherW
61660 61 74 63 68 20 21 3d 3d 20 24 72 75 6c 65 4c 69 74 65 72 61 6c 20 26 26 0a 21 24 64 65 63 69 73 atch.!==.$ruleLiteral.&&.!$decis
61680 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 3b 0a 7d 29 ions->conflict($ruleLiteral);.})
616a0 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 20 7b 0a 72 ;..if.($alternativeLiterals).{.r
616c0 65 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 3b 0a 24 74 68 69 eset($alternativeLiterals);.$thi
616e0 73 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 2c 20 63 75 72 72 65 6e 74 28 24 s->moveWatch($literal,.current($
61700 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 2c 20 24 6e 6f 64 65 29 3b 0a 63 6f alternativeLiterals),.$node);.co
61720 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c ntinue;.}..if.($decisions->confl
61740 69 63 74 28 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 6f 64 65 ict($otherWatch)).{.return.$node
61760 2d 3e 67 65 74 52 75 6c 65 28 29 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 ->getRule();.}..$decisions->deci
61780 64 65 28 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 6c 65 76 65 6c 2c 20 24 6e 6f 64 65 2d 3e 67 de($otherWatch,.$level,.$node->g
617a0 65 74 52 75 6c 65 28 29 29 3b 0a 7d 0a 0a 24 63 68 61 69 6e 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a etRule());.}..$chain->next();.}.
617c0 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 .return.null;.}...........protec
617e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 74 65 ted.function.moveWatch($fromLite
61800 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 2c 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 21 69 ral,.$toLiteral,.$node).{.if.(!i
61820 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 74 6f 4c 69 74 65 72 sset($this->watchChains[$toLiter
61840 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 74 6f 4c 69 al])).{.$this->watchChains[$toLi
61860 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 0a 0a teral].=.new.RuleWatchChain;.}..
61880 24 6e 6f 64 65 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 $node->moveWatch($fromLiteral,.$
618a0 74 6f 4c 69 74 65 72 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 toLiteral);.$this->watchChains[$
618c0 66 72 6f 6d 4c 69 74 65 72 61 6c 5d 2d 3e 72 65 6d 6f 76 65 28 29 3b 0a 24 74 68 69 73 2d 3e 77 fromLiteral]->remove();.$this->w
618e0 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 atchChains[$toLiteral]->unshift(
61900 24 6e 6f 64 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 $node);.}.}.<?php............nam
61920 65 73 70 61 63 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 69 espace.Composer\Config;........i
61940 6e 74 65 72 66 61 63 65 20 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b nterface.ConfigSourceInterface.{
61960 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 52 65 70 6f 73 69 .......public.function.addReposi
61980 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c tory($name,.$config);.......publ
619a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 ic.function.removeRepository($na
619c0 6d 65 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 61 64 64 43 me);........public.function.addC
619e0 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a onfigSetting($name,.$value);....
61a00 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 ...public.function.removeConfigS
61a20 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 etting($name);.........public.fu
61a40 6e 63 74 69 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 nction.addLink($type,.$name,.$va
61a60 6c 75 65 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 65 6d lue);........public.function.rem
61a80 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a oveLink($type,.$name);.}.<?php..
61aa0 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 6e ..........namespace.Composer\Con
61ac0 66 69 67 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 fig;..use.Composer\Json\JsonFile
61ae0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 ;.use.Composer\Json\JsonManipula
61b00 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 tor;........class.JsonConfigSour
61b20 63 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 ce.implements.ConfigSourceInterf
61b40 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 6d 61 ace.{.private.$file;.private.$ma
61b60 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e nipulator;.......public.function
61b80 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 66 69 6c 65 29 0a 7b 0a 24 .__construct(JsonFile.$file).{.$
61ba0 74 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 70 75 62 6c 69 63 this->file.=.$file;.}.....public
61bc0 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 .function.addRepository($name,.$
61be0 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 config).{.$this->manipulateJson(
61c00 27 61 64 64 52 65 70 6f 73 69 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 2c 'addRepository',.$name,.$config,
61c20 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 72 65 70 6f 2c 20 24 72 65 70 .function.(&$config,.$repo,.$rep
61c40 6f 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 oConfig).{.$config['repositories
61c60 27 5d 5b 24 72 65 70 6f 5d 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 29 3b 0a 7d 0a 0a '][$repo].=.$repoConfig;.});.}..
61c80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 ...public.function.removeReposit
61ca0 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 ory($name).{.$this->manipulateJs
61cc0 6f 6e 28 27 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c 20 66 75 on('removeRepository',.$name,.fu
61ce0 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 72 65 70 6f 29 20 7b 0a 75 6e 73 65 74 nction.(&$config,.$repo).{.unset
61d00 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 29 ($config['repositories'][$repo])
61d20 3b 0a 7d 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 64 64 43 ;.});.}.....public.function.addC
61d40 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 onfigSetting($name,.$value).{.$t
61d60 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 43 6f 6e 66 69 67 53 65 his->manipulateJson('addConfigSe
61d80 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 6f 6e 20 tting',.$name,.$value,.function.
61da0 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 2c 20 24 76 61 6c 29 20 7b 0a 24 63 6f 6e 66 69 67 (&$config,.$key,.$val).{.$config
61dc0 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 3b 0a 7d 29 3b 0a 7d 0a 0a ['config'][$key].=.$val;.});.}..
61de0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 ...public.function.removeConfigS
61e00 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 etting($name).{.$this->manipulat
61e20 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 eJson('removeConfigSetting',.$na
61e40 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 29 20 7b 0a me,.function.(&$config,.$key).{.
61e60 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 29 3b 0a unset($config['config'][$key]);.
61e80 7d 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 64 64 4c 69 6e });.}.....public.function.addLin
61ea0 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d k($type,.$name,.$value).{.$this-
61ec0 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 4c 69 6e 6b 27 2c 20 24 74 79 70 65 >manipulateJson('addLink',.$type
61ee0 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e ,.$name,.$value,.function.(&$con
61f00 66 69 67 2c 20 24 6b 65 79 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 5b 24 6e 61 6d fig,.$key).{.$config[$type][$nam
61f20 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 e].=.$value;.});.}.....public.fu
61f40 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 0a nction.removeLink($type,.$name).
61f60 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 53 {.$this->manipulateJson('removeS
61f80 75 62 4e 6f 64 65 27 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 ubNode',.$type,.$name,.function.
61fa0 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 (&$config,.$key).{.unset($config
61fc0 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 [$type][$name]);.});.}..protecte
61fe0 64 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 24 6d 65 74 68 6f d.function.manipulateJson($metho
62000 64 2c 20 24 61 72 67 73 2c 20 24 66 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 61 72 67 73 20 3d 20 66 d,.$args,.$fallback).{.$args.=.f
62020 75 6e 63 5f 67 65 74 5f 61 72 67 73 28 29 3b 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 unc_get_args();...array_shift($a
62040 72 67 73 29 3b 0a 24 66 61 6c 6c 62 61 63 6b 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 61 72 67 rgs);.$fallback.=.array_pop($arg
62060 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 s);..if.($this->file->exists()).
62080 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 73 28 {.$contents.=.file_get_contents(
620a0 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 20 65 6c 73 65 20 $this->file->getPath());.}.else.
620c0 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 7b 5c 6e 20 20 20 20 5c 22 63 6f 6e 66 69 67 5c 22 {.$contents.=."{\n....\"config\"
620e0 3a 20 7b 5c 6e 20 20 20 20 7d 5c 6e 7d 5c 6e 22 3b 0a 7d 0a 24 6d 61 6e 69 70 75 6c 61 74 6f 72 :.{\n....}\n}\n";.}.$manipulator
62100 20 3d 20 6e 65 77 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 .=.new.JsonManipulator($contents
62120 29 3b 0a 0a 24 6e 65 77 46 69 6c 65 20 3d 20 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 );..$newFile.=.!$this->file->exi
62140 73 74 73 28 29 3b 0a 0a 0a 20 69 66 20 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 sts();....if.(call_user_func_arr
62160 61 79 28 61 72 72 61 79 28 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2c 20 24 6d 65 74 68 6f 64 29 2c ay(array($manipulator,.$method),
62180 20 24 61 72 67 73 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 .$args)).{.file_put_contents($th
621a0 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 6f is->file->getPath(),.$manipulato
621c0 72 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 r->getContents());.}.else.{...$c
621e0 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 61 72 72 onfig.=.$this->file->read();.arr
62200 61 79 5f 75 6e 73 68 69 66 74 28 24 61 72 67 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 63 61 6c 6c ay_unshift($args,.$config);.call
62220 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 24 66 61 6c 6c 62 61 63 6b 2c 20 24 61 72 67 _user_func_array($fallback,.$arg
62240 73 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 63 6f 6e 66 69 67 29 3b s);.$this->file->write($config);
62260 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 46 69 6c 65 29 20 7b 0a 63 68 6d 6f 64 28 24 74 68 69 73 2d .}..if.($newFile).{.chmod($this-
62280 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 7d 0a 7d 0a 3c >file->getPath(),.0600);.}.}.}.<
622a0 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
622c0 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e er;..use.Composer\Config\JsonCon
622e0 66 69 67 53 6f 75 72 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 figSource;.use.Composer\Json\Jso
62300 6e 46 69 6c 65 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 nFile;.use.Composer\IO\IOInterfa
62320 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 72 63 68 69 76 65 ce;.use.Composer\Package\Archive
62340 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 43 6f 6d 70 6f r;.use.Composer\Repository\Compo
62360 73 65 72 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 65 70 6f serRepository;.use.Composer\Repo
62380 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
623a0 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 75 73 65 mposer\Util\ProcessExecutor;.use
623c0 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;
623e0 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 46 .use.Symfony\Component\Console\F
62400 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 75 ormatter\OutputFormatterStyle;.u
62420 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 se.Composer\Script\EventDispatch
62440 65 72 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 6f er;.use.Composer\Autoload\Autolo
62460 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 61 63 74 6f adGenerator;.........class.Facto
62480 72 79 0a 7b 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 ry.{....public.static.function.c
624a0 72 65 61 74 65 43 6f 6e 66 69 67 28 29 0a 7b 0a 0a 20 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 reateConfig().{...$home.=.getenv
624c0 28 27 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 27 29 3b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 67 ('COMPOSER_HOME');.$cacheDir.=.g
624e0 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 43 41 43 48 45 5f 44 49 52 27 29 3b 0a 69 66 20 etenv('COMPOSER_CACHE_DIR');.if.
62500 28 21 24 68 6f 6d 65 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 (!$home).{.if.(defined('PHP_WIND
62520 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 69 66 20 28 21 67 65 74 65 OWS_VERSION_MAJOR')).{.if.(!gete
62540 6e 76 28 27 41 50 50 44 41 54 41 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 nv('APPDATA')).{.throw.new.\Runt
62560 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 41 50 50 44 41 54 41 20 6f 72 20 43 4f 4d imeException('The.APPDATA.or.COM
62580 50 4f 53 45 52 5f 48 4f 4d 45 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 POSER_HOME.environment.variable.
625a0 6d 75 73 74 20 62 65 20 73 65 74 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 20 74 6f 20 72 75 6e 20 must.be.set.for.composer.to.run.
625c0 63 6f 72 72 65 63 74 6c 79 27 29 3b 0a 7d 0a 24 68 6f 6d 65 20 3d 20 73 74 72 74 72 28 67 65 74 correctly');.}.$home.=.strtr(get
625e0 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 20 2e 20 27 2f 43 env('APPDATA'),.'\\',.'/')...'/C
62600 6f 6d 70 6f 73 65 72 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 67 65 74 65 6e 76 28 27 omposer';.}.else.{.if.(!getenv('
62620 48 4f 4d 45 27 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 HOME')).{.throw.new.\RuntimeExce
62640 70 74 69 6f 6e 28 27 54 68 65 20 48 4f 4d 45 20 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 ption('The.HOME.or.COMPOSER_HOME
62660 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 73 65 .environment.variable.must.be.se
62680 74 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 20 74 6f 20 72 75 6e 20 63 6f 72 72 65 63 74 6c 79 27 t.for.composer.to.run.correctly'
626a0 29 3b 0a 7d 0a 24 68 6f 6d 65 20 3d 20 72 74 72 69 6d 28 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 );.}.$home.=.rtrim(getenv('HOME'
626c0 29 2c 20 27 2f 27 29 20 2e 20 27 2f 2e 63 6f 6d 70 6f 73 65 72 27 3b 0a 7d 0a 7d 0a 69 66 20 28 ),.'/')...'/.composer';.}.}.if.(
626e0 21 24 63 61 63 68 65 44 69 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 !$cacheDir).{.if.(defined('PHP_W
62700 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 69 66 20 28 24 63 INDOWS_VERSION_MAJOR')).{.if.($c
62720 61 63 68 65 44 69 72 20 3d 20 67 65 74 65 6e 76 28 27 4c 4f 43 41 4c 41 50 50 44 41 54 41 27 29 acheDir.=.getenv('LOCALAPPDATA')
62740 29 20 7b 0a 24 63 61 63 68 65 44 69 72 20 2e 3d 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a 7d 20 ).{.$cacheDir..=.'/Composer';.}.
62760 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 67 65 74 65 6e 76 28 27 41 50 50 44 41 else.{.$cacheDir.=.getenv('APPDA
62780 54 41 27 29 20 2e 20 27 2f 43 6f 6d 70 6f 73 65 72 2f 63 61 63 68 65 27 3b 0a 7d 0a 24 63 61 63 TA')...'/Composer/cache';.}.$cac
627a0 68 65 44 69 72 20 3d 20 73 74 72 74 72 28 24 63 61 63 68 65 44 69 72 2c 20 27 5c 5c 27 2c 20 27 heDir.=.strtr($cacheDir,.'\\',.'
627c0 2f 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 68 6f 6d 65 2e /');.}.else.{.$cacheDir.=.$home.
627e0 27 2f 63 61 63 68 65 27 3b 0a 7d 0a 7d 0a 0a 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 61 72 '/cache';.}.}........foreach.(ar
62800 72 61 79 28 24 68 6f 6d 65 2c 20 24 63 61 63 68 65 44 69 72 29 20 61 73 20 24 64 69 72 29 20 7b ray($home,.$cacheDir).as.$dir).{
62820 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 20 2e 20 27 2f 2e 68 74 61 63 .if.(!file_exists($dir...'/.htac
62840 63 65 73 73 27 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 40 cess')).{.if.(!is_dir($dir)).{.@
62860 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 40 66 69 6c 65 mkdir($dir,.0777,.true);.}.@file
62880 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 64 69 72 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 _put_contents($dir...'/.htaccess
628a0 27 2c 20 27 44 65 6e 79 20 66 72 6f 6d 20 61 6c 6c 27 29 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6e 66 69 ',.'Deny.from.all');.}.}..$confi
628c0 67 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 28 29 3b 0a 0a 0a 20 24 63 6f 6e 66 69 67 2d 3e 6d 65 g.=.new.Config();....$config->me
628e0 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 61 72 72 61 79 28 27 68 6f 6d rge(array('config'.=>.array('hom
62900 65 27 20 3d 3e 20 24 68 6f 6d 65 2c 20 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 24 63 61 63 e'.=>.$home,.'cache-dir'.=>.$cac
62920 68 65 44 69 72 29 29 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 heDir)));..$file.=.new.JsonFile(
62940 24 68 6f 6d 65 2e 27 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 $home.'/config.json');.if.($file
62960 2d 3e 65 78 69 73 74 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 ->exists()).{.$config->merge($fi
62980 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e 73 65 74 43 6f 6e 66 69 le->read());.}.$config->setConfi
629a0 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 66 69 gSource(new.JsonConfigSource($fi
629c0 6c 65 29 29 3b 0a 0a 0a 20 24 6c 65 67 61 63 79 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 0a 27 le));....$legacyPaths.=.array(.'
629e0 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 2f 63 61 63 68 65 cache-repo-dir'.=>.array('/cache
62a00 27 20 3d 3e 20 27 2f 68 74 74 70 2a 27 2c 20 27 2f 63 61 63 68 65 2e 73 76 6e 27 20 3d 3e 20 27 '.=>.'/http*',.'/cache.svn'.=>.'
62a20 2f 2a 27 2c 20 27 2f 63 61 63 68 65 2e 67 69 74 68 75 62 27 20 3d 3e 20 27 2f 2a 27 29 2c 0a 27 /*',.'/cache.github'.=>.'/*'),.'
62a40 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 2f 63 61 63 68 65 2e cache-vcs-dir'.=>.array('/cache.
62a60 67 69 74 27 20 3d 3e 20 27 2f 2a 27 2c 20 27 2f 63 61 63 68 65 2e 68 67 27 20 3d 3e 20 27 2f 2a git'.=>.'/*',.'/cache.hg'.=>.'/*
62a80 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 '),.'cache-files-dir'.=>.array('
62aa0 2f 63 61 63 68 65 2e 66 69 6c 65 73 27 20 3d 3e 20 27 2f 2a 27 29 2c 0a 29 3b 0a 66 6f 72 65 61 /cache.files'.=>.'/*'),.);.forea
62ac0 63 68 20 28 24 6c 65 67 61 63 79 50 61 74 68 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 6f 6c 64 ch.($legacyPaths.as.$key.=>.$old
62ae0 50 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 6c 64 50 61 74 68 73 20 61 73 20 24 Paths).{.foreach.($oldPaths.as.$
62b00 6f 6c 64 50 61 74 68 20 3d 3e 20 24 6d 61 74 63 68 29 20 7b 0a 24 64 69 72 20 3d 20 24 63 6f 6e oldPath.=>.$match).{.$dir.=.$con
62b20 66 69 67 2d 3e 67 65 74 28 24 6b 65 79 29 3b 0a 69 66 20 28 27 2f 63 61 63 68 65 2e 67 69 74 68 fig->get($key);.if.('/cache.gith
62b40 75 62 27 20 3d 3d 3d 20 24 6f 6c 64 50 61 74 68 29 20 7b 0a 24 64 69 72 20 2e 3d 20 27 2f 67 69 ub'.===.$oldPath).{.$dir..=.'/gi
62b60 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d 0a 24 6f 6c 64 50 61 74 68 20 3d 20 24 63 6f 6e 66 69 67 2d thub.com';.}.$oldPath.=.$config-
62b80 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 24 6f 6c 64 50 61 74 68 3b 0a 24 6f 6c 64 50 61 74 68 4d >get('home').$oldPath;.$oldPathM
62ba0 61 74 63 68 20 3d 20 24 6f 6c 64 50 61 74 68 20 2e 20 24 6d 61 74 63 68 3b 0a 69 66 20 28 69 73 atch.=.$oldPath...$match;.if.(is
62bc0 5f 64 69 72 28 24 6f 6c 64 50 61 74 68 29 20 26 26 20 24 64 69 72 20 21 3d 3d 20 24 6f 6c 64 50 _dir($oldPath).&&.$dir.!==.$oldP
62be0 61 74 68 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 69 66 20 28 ath).{.if.(!is_dir($dir)).{.if.(
62c00 21 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 63 6f 6e !@mkdir($dir,.0777,.true)).{.con
62c20 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 68 69 6c 64 72 65 tinue;.}.}.if.(is_array($childre
62c40 6e 20 3d 20 67 6c 6f 62 28 24 6f 6c 64 50 61 74 68 4d 61 74 63 68 29 29 29 20 7b 0a 66 6f 72 65 n.=.glob($oldPathMatch))).{.fore
62c60 61 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 40 72 65 6e ach.($children.as.$child).{.@ren
62c80 61 6d 65 28 24 63 68 69 6c 64 2c 20 24 64 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 63 ame($child,.$dir.'/'.basename($c
62ca0 68 69 6c 64 29 29 3b 0a 7d 0a 7d 0a 40 72 6d 64 69 72 28 24 6f 6c 64 50 61 74 68 29 3b 0a 7d 0a hild));.}.}.@rmdir($oldPath);.}.
62cc0 7d 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 69 63 20 73 }.}..return.$config;.}..public.s
62ce0 74 61 74 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 tatic.function.getComposerFile()
62d00 0a 7b 0a 72 65 74 75 72 6e 20 74 72 69 6d 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 27 .{.return.trim(getenv('COMPOSER'
62d20 29 29 20 3f 3a 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 )).?:.'composer.json';.}..public
62d40 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 41 64 64 69 74 69 6f 6e 61 .static.function.createAdditiona
62d60 6c 53 74 79 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 68 69 67 68 6c lStyles().{.return.array(.'highl
62d80 69 67 68 74 27 20 3d 3e 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c ight'.=>.new.OutputFormatterStyl
62da0 65 28 27 72 65 64 27 29 2c 0a 27 77 61 72 6e 69 6e 67 27 20 3d 3e 20 6e 65 77 20 4f 75 74 70 75 e('red'),.'warning'.=>.new.Outpu
62dc0 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 79 65 6c 6c 6f 77 tFormatterStyle('black',.'yellow
62de0 27 29 2c 0a 29 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 '),.);.}..public.static.function
62e00 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 73 28 49 4f 49 6e 74 .createDefaultRepositories(IOInt
62e20 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 20 24 63 6f 6e 66 69 erface.$io.=.null,.Config.$confi
62e40 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 65 72 20 24 72 6d 20 g.=.null,.RepositoryManager.$rm.
62e60 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 29 3b 0a 0a 69 66 20 =.null).{.$repos.=.array();..if.
62e80 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 61 74 69 63 3a 3a 63 (!$config).{.$config.=.static::c
62ea0 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 29 20 7b 0a 69 66 20 reateConfig();.}.if.(!$rm).{.if.
62ec0 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 69 64 41 72 67 75 6d (!$io).{.throw.new.\InvalidArgum
62ee0 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 6f 6e 20 72 65 71 75 entException('This.function.requ
62f00 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 65 20 6f 72 20 61 20 ires.either.an.IOInterface.or.a.
62f20 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 61 63 74 6f 72 79 20 RepositoryManager');.}.$factory.
62f40 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 6f 72 79 2d 3e 63 72 =.new.static;.$rm.=.$factory->cr
62f60 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 63 6f 6e 66 eateRepositoryManager($io,.$conf
62f80 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 3e 67 65 74 52 65 70 ig);.}..foreach.($config->getRep
62fa0 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 24 72 65 70 6f 29 20 ositories().as.$index.=>.$repo).
62fc0 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 0a 74 68 72 6f 77 20 {.if.(!is_array($repo)).{.throw.
62fe0 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 52 new.\UnexpectedValueException('R
63000 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 73 6f 6e 5f 65 6e 63 epository.'.$index.'.('.json_enc
63020 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 6e 20 61 72 72 61 79 ode($repo).').should.be.an.array
63040 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 6e 27 29 3b 0a 7d 0a ,.'.gettype($repo).'.given');.}.
63060 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 29 20 7b 0a 74 68 72 if.(!isset($repo['type'])).{.thr
63080 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
630a0 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 73 6f 6e 5f ('Repository.'.$index.'.('.json_
630c0 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 65 20 61 20 74 79 70 encode($repo).').must.have.a.typ
630e0 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 5f 69 6e 74 28 24 69 e.defined');.}.$name.=.is_int($i
63100 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 27 5d 29 20 3f 20 70 ndex).&&.isset($repo['url']).?.p
63120 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 69 27 2c 20 27 27 2c reg_replace('{^https?://}i',.'',
63140 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 77 68 69 6c 65 20 28 .$repo['url']).:.$index;.while.(
63160 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 6e 61 6d 65 20 2e 3d isset($repos[$name])).{.$name..=
63180 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 72 6d 2d 3e 63 72 65 .'2';.}.$repos[$name].=.$rm->cre
631a0 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 27 5d 2c 20 24 72 65 ateRepository($repo['type'],.$re
631c0 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 0a 0a 0a 0a 0a 0a 0a po);.}..return.$repos;.}........
631e0 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 43 6f 6d 70 6f 73 65 ...public.function.createCompose
63200 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 43 6f 6e 66 69 67 20 r(IOInterface.$io,.$localConfig.
63220 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 24 6c 6f 63 61 6c 43 =.null).{...if.(null.===.$localC
63240 6f 6e 66 69 67 29 20 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a onfig).{.$localConfig.=.static::
63260 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 69 73 5f 73 74 72 getComposerFile();.}..if.(is_str
63280 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 6f 73 65 72 46 69 ing($localConfig)).{.$composerFi
632a0 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 20 6e 65 77 20 4a le.=.$localConfig;.$file.=.new.J
632c0 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 52 65 6d 6f 74 65 sonFile($localConfig,.new.Remote
632e0 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 69 6c 65 2d 3e 65 Filesystem($io));..if.(!$file->e
63300 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 67 20 3d 3d 3d 20 xists()).{.if.($localConfig.===.
63320 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 65 20 3d 20 27 43 'composer.json').{.$message.=.'C
63340 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 6f 6d 70 6f 73 65 omposer.could.not.find.a.compose
63360 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 0a 7d 20 65 6c 73 r.json.file.in.'.getcwd();.}.els
63380 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 6f 75 6c 64 20 6e e.{.$message.=.'Composer.could.n
633a0 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 2e 24 6c 6f 63 61 ot.find.the.config.file:.'.$loca
633c0 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 20 27 54 6f 20 69 lConfig;.}.$instructions.=.'To.i
633e0 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 65 20 63 72 65 61 nitialize.a.project,.please.crea
63400 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 20 64 65 73 63 72 te.a.composer.json.file.as.descr
63420 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 6f 73 65 72 2e 6f ibed.in.the.http://getcomposer.o
63440 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 69 6f 6e 27 3b 0a rg/."Getting.Started".section';.
63460 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
63480 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 72 75 63 74 69 6f ion($message.PHP_EOL.$instructio
634a0 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 65 6d 61 28 4a 73 ns);.}..$file->validateSchema(Js
634c0 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 6c 43 6f 6e 66 69 onFile::LAX_SCHEMA);.$localConfi
634e0 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 6f 6e 66 69 67 20 g.=.$file->read();.}....$config.
63500 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 24 63 6f 6e 66 69 =.static::createConfig();.$confi
63520 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 0a 20 69 66 20 28 24 g->merge($localConfig);....if.($
63540 74 6f 6b 65 6e 73 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 tokens.=.$config->get('github-oa
63560 75 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 64 6f uth')).{.foreach.($tokens.as.$do
63580 6d 61 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 main.=>.$token).{.if.(!preg_matc
635a0 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5d 2b 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 74 68 h('{^[a-z0-9]+$}',.$token)).{.th
635c0 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 74 69 6f row.new.\UnexpectedValueExceptio
635e0 6e 28 27 59 6f 75 72 20 67 69 74 68 75 62 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 n('Your.github.oauth.token.for.'
63600 2e 24 64 6f 6d 61 69 6e 2e 27 20 63 6f 6e 74 61 69 6e 73 20 69 6e 76 61 6c 69 64 20 63 68 61 72 .$domain.'.contains.invalid.char
63620 61 63 74 65 72 73 3a 20 22 27 2e 24 74 6f 6b 65 6e 2e 27 22 27 29 3b 0a 7d 0a 24 69 6f 2d 3e 73 acters:."'.$token.'"');.}.$io->s
63640 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e etAuthentication($domain,.$token
63660 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 7d 0a 7d 0a 0a 24 76 65 6e 64 6f 72 ,.'x-oauth-basic');.}.}..$vendor
63680 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 2d 64 69 72 27 29 Dir.=.$config->get('vendor-dir')
636a0 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 62 69 6e 2d 64 69 ;.$binDir.=.$config->get('bin-di
636c0 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 65 74 54 69 6d 65 r');....ProcessExecutor::setTime
636e0 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 6f 63 65 73 73 2d out((int).$config->get('process-
63700 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 2d 3e 63 72 65 61 timeout'));....$rm.=.$this->crea
63720 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 63 6f 6e 66 69 67 teRepositoryManager($io,.$config
63740 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 69 74 6f 72 79 28 );....$this->addLocalRepository(
63760 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 65 72 20 3d 20 6e $rm,.$vendorDir);....$loader.=.n
63780 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 61 67 65 4c 6f 61 ew.Package\Loader\RootPackageLoa
637a0 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 65 20 3d 20 24 6c der($rm,.$config);.$package.=.$l
637c0 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 0a 0a 0a 20 24 64 oader->load($localConfig);....$d
637e0 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 61 6e 61 67 65 72 m.=.$this->createDownloadManager
63800 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 69 6d 20 3d 20 24 74 68 69 73 2d 3e ($io,.$config);....$im.=.$this->
63820 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 0a 0a 20 createInstallationManager();....
63840 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 24 63 6f 6d $composer.=.new.Composer();.$com
63860 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 63 6f 6d 70 poser->setConfig($config);.$comp
63880 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 24 63 6f 6d oser->setPackage($package);.$com
638a0 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 24 72 6d 29 poser->setRepositoryManager($rm)
638c0 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 67 65 72 28 ;.$composer->setDownloadManager(
638e0 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 74 69 6f 6e $dm);.$composer->setInstallation
63900 4d 61 6e 61 67 65 72 28 24 69 6d 29 3b 0a 0a 0a 20 24 64 69 73 70 61 74 63 68 65 72 20 3d 20 6e Manager($im);....$dispatcher.=.n
63920 65 77 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 ew.EventDispatcher($composer,.$i
63940 6f 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 o);.$composer->setEventDispatche
63960 72 28 24 64 69 73 70 61 74 63 68 65 72 29 3b 0a 0a 0a 20 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 r($dispatcher);....$generator.=.
63980 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 24 64 69 73 70 61 74 63 68 65 new.AutoloadGenerator($dispatche
639a0 72 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 r);.$composer->setAutoloadGenera
639c0 74 6f 72 28 24 67 65 6e 65 72 61 74 6f 72 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 72 65 61 74 tor($generator);....$this->creat
639e0 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 65 eDefaultInstallers($im,.$compose
63a00 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 73 r,.$io);....$this->purgePackages
63a20 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 73 ($rm,.$im);....if.(isset($compos
63a40 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 3d erFile)).{.$lockFile.=."json".==
63a60 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 4e =.pathinfo($composerFile,.PATHIN
63a80 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 72 FO_EXTENSION).?.substr($composer
63aa0 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 46 File,.0,.-4).'lock'.:.$composerF
63ac0 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 63 ile...'.lock';.$locker.=.new.Pac
63ae0 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 69 kage\Locker(new.JsonFile($lockFi
63b00 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 20 le,.new.RemoteFilesystem($io)),.
63b20 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 65 $rm,.$im,.md5_file($composerFile
63b40 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 72 ));.$composer->setLocker($locker
63b60 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 0a );.}..return.$composer;.}.......
63b80 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 74 protected.function.createReposit
63ba0 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 66 oryManager(IOInterface.$io,.Conf
63bc0 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 6f ig.$config).{.$rm.=.new.Reposito
63be0 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 65 ryManager($io,.$config);.$rm->se
63c00 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 6f tRepositoryClass('composer',.'Co
63c20 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 69 mposer\Repository\ComposerReposi
63c40 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 28 tory');.$rm->setRepositoryClass(
63c60 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 52 'vcs',.'Composer\Repository\VcsR
63c80 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 43 epository');.$rm->setRepositoryC
63ca0 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 69 lass('package',.'Composer\Reposi
63cc0 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 73 tory\PackageRepository');.$rm->s
63ce0 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 6f etRepositoryClass('pear',.'Compo
63d00 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 3b ser\Repository\PearRepository');
63d20 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 20 .$rm->setRepositoryClass('git',.
63d40 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 6f 'Composer\Repository\VcsReposito
63d60 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 73 ry');.$rm->setRepositoryClass('s
63d80 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 70 vn',.'Composer\Repository\VcsRep
63da0 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 61 ository');.$rm->setRepositoryCla
63dc0 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 63 ss('hg',.'Composer\Repository\Vc
63de0 73 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 sRepository');.$rm->setRepositor
63e00 79 43 6c 61 73 73 28 27 61 72 74 69 66 61 63 74 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 yClass('artifact',.'Composer\Rep
63e20 6f 73 69 74 6f 72 79 5c 41 72 74 69 66 61 63 74 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 0a 72 ository\ArtifactRepository');..r
63e40 65 74 75 72 6e 20 24 72 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 eturn.$rm;.}......protected.func
63e60 74 69 6f 6e 20 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f tion.addLocalRepository(Reposito
63e80 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 24 72 6d ryManager.$rm,.$vendorDir).{.$rm
63ea0 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 52 65 70 6f 73 69 74 ->setLocalRepository(new.Reposit
63ec0 6f 72 79 5c 49 6e 73 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 ory\InstalledFilesystemRepositor
63ee0 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 y(new.JsonFile($vendorDir.'/comp
63f00 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a oser/installed.json')));.}......
63f20 0a 70 75 62 6c 69 63 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 .public.function.createDownloadM
63f40 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 66 69 67 20 24 anager(IOInterface.$io,.Config.$
63f60 63 6f 6e 66 69 67 29 0a 7b 0a 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 63 6f config).{.$cache.=.null;.if.($co
63f80 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 29 20 3e 20 30 nfig->get('cache-files-ttl').>.0
63fa0 29 20 7b 0a 24 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e ).{.$cache.=.new.Cache($io,.$con
63fc0 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 29 2c 20 27 61 2d fig->get('cache-files-dir'),.'a-
63fe0 7a 30 2d 39 5f 2e 2f 27 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 z0-9_./');.}..$dm.=.new.Download
64000 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
64020 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
64040 69 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d itDownloader($io,.$config));.$dm
64060 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 73 76 6e 27 2c 20 6e 65 77 20 44 6f 77 6e 6c ->setDownloader('svn',.new.Downl
64080 6f 61 64 65 72 5c 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 oader\SvnDownloader($io,.$config
640a0 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 68 67 27 2c 20 6e 65 77 ));.$dm->setDownloader('hg',.new
640c0 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 48 67 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 .Downloader\HgDownloader($io,.$c
640e0 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 7a 69 70 onfig));.$dm->setDownloader('zip
64100 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 61 64 65 72 28 ',.new.Downloader\ZipDownloader(
64120 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 $io,.$config,.$cache));.$dm->set
64140 44 6f 77 6e 6c 6f 61 64 65 72 28 27 74 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 Downloader('tar',.new.Downloader
64160 5c 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 63 61 \TarDownloader($io,.$config,.$ca
64180 63 68 65 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 61 72 27 che));.$dm->setDownloader('phar'
641a0 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 65 72 28 ,.new.Downloader\PharDownloader(
641c0 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 $io,.$config,.$cache));.$dm->set
641e0 44 6f 77 6e 6c 6f 61 64 65 72 28 27 66 69 6c 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 Downloader('file',.new.Downloade
64200 72 5c 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 r\FileDownloader($io,.$config,.$
64220 63 61 63 68 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 cache));..return.$dm;.}........p
64240 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 41 72 63 68 69 76 65 4d 61 6e 61 ublic.function.createArchiveMana
64260 67 65 72 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 ger(Config.$config,.Downloader\D
64280 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 ownloadManager.$dm.=.null).{.if.
642a0 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 6d 29 20 7b 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 (null.===.$dm).{.$dm.=.$this->cr
642c0 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 6e 65 77 20 49 4f 5c 4e 75 6c 6c 49 eateDownloadManager(new.IO\NullI
642e0 4f 28 29 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 61 6d 20 3d 20 6e 65 77 20 41 72 63 68 O(),.$config);.}..$am.=.new.Arch
64300 69 76 65 72 5c 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 28 24 64 6d 29 3b 0a 24 61 6d 2d 3e 61 iver\ArchiveManager($dm);.$am->a
64320 64 64 41 72 63 68 69 76 65 72 28 6e 65 77 20 41 72 63 68 69 76 65 72 5c 50 68 61 72 41 72 63 68 ddArchiver(new.Archiver\PharArch
64340 69 76 65 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 iver);..return.$am;.}.....protec
64360 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 69 6f 6e 4d ted.function.createInstallationM
64380 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c anager().{.return.new.Installer\
643a0 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 InstallationManager();.}.......p
643c0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 49 rotected.function.createDefaultI
643e0 6e 73 74 61 6c 6c 65 72 73 28 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e nstallers(Installer\Installation
64400 4d 61 6e 61 67 65 72 20 24 69 6d 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c Manager.$im,.Composer.$composer,
64420 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 .IOInterface.$io).{.$im->addInst
64440 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 4c 69 62 72 61 72 79 49 6e 73 74 61 aller(new.Installer\LibraryInsta
64460 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 6e 75 6c 6c 29 29 3b 0a 24 69 6d ller($io,.$composer,.null));.$im
64480 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 50 65 61 ->addInstaller(new.Installer\Pea
644a0 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 2c 20 27 70 65 61 72 rInstaller($io,.$composer,.'pear
644c0 2d 6c 69 62 72 61 72 79 27 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e -library'));.$im->addInstaller(n
644e0 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 65 72 49 6e 73 74 61 6c 6c 65 72 28 ew.Installer\InstallerInstaller(
64500 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c $io,.$composer));.$im->addInstal
64520 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 ler(new.Installer\MetapackageIns
64540 74 61 6c 6c 65 72 28 24 69 6f 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 taller($io));.}......protected.f
64560 75 6e 63 74 69 6f 6e 20 70 75 72 67 65 50 61 63 6b 61 67 65 73 28 52 65 70 6f 73 69 74 6f 72 79 unction.purgePackages(Repository
64580 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 49 6e 73 74 61 6c 6c 65 \RepositoryManager.$rm,.Installe
645a0 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 29 0a 7b 0a 24 72 65 r\InstallationManager.$im).{.$re
645c0 70 6f 20 3d 20 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a po.=.$rm->getLocalRepository();.
645e0 66 6f 72 65 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 foreach.($repo->getPackages().as
64600 20 24 70 61 63 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 .$package).{.if.(!$im->isPackage
64620 49 6e 73 74 61 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 Installed($repo,.$package)).{.$r
64640 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 7d 0a epo->removePackage($package);.}.
64660 7d 0a 7d 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
64680 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 24 63 6f 6e 66 69 n.create(IOInterface.$io,.$confi
646a0 67 20 3d 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 g.=.null).{.$factory.=.new.stati
646c0 63 28 29 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 c();..return.$factory->createCom
646e0 70 6f 73 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 poser($io,.$config);.}.}.<?php..
64700 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 55 74 69 ..........namespace.Composer\Uti
64720 6c 3b 0a 0a 75 73 65 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 l;..use.RecursiveDirectoryIterat
64740 6f 72 3b 0a 75 73 65 20 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f or;.use.RecursiveIteratorIterato
64760 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 r;......class.Filesystem.{.priva
64780 74 65 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e te.$processExecutor;..public.fun
647a0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f ction.__construct(ProcessExecuto
647c0 72 20 24 65 78 65 63 75 74 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f r.$executor.=.null).{.$this->pro
647e0 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 24 65 78 65 63 75 74 6f 72 20 3f 3a 20 6e 65 77 20 cessExecutor.=.$executor.?:.new.
64800 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ProcessExecutor();.}..public.fun
64820 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 69 73 5f 64 69 72 ction.remove($file).{.if.(is_dir
64840 28 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 ($file)).{.return.$this->removeD
64860 69 72 65 63 74 6f 72 79 28 24 66 69 6c 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 irectory($file);.}..if.(file_exi
64880 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 75 6e 6c 69 6e 6b 28 24 66 69 6c sts($file)).{.return.unlink($fil
648a0 65 29 3b 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 0a e);.}..return.false;.}..........
648c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 .public.function.removeDirectory
648e0 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 72 65 ($directory).{.if.(!is_dir($dire
64900 63 74 6f 72 79 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 66 ctory)).{.return.true;.}..if.(!f
64920 75 6e 63 74 69 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 72 unction_exists('proc_open')).{.r
64940 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 eturn.$this->removeDirectoryPhp(
64960 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 $directory);.}..if.(defined('PHP
64980 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
649a0 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
649c0 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)
649e0 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.
64a00 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
64a20 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
64a40 63 65 73 73 28 29 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 6f 75 74 70 75 74 29 20 3d cess()->execute($cmd,.$output).=
64a60 3d 3d 20 30 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 72 65 74 75 ==.0;....clearstatcache();..retu
64a80 72 6e 20 24 72 65 73 75 6c 74 20 26 26 20 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 rn.$result.&&.!is_dir($directory
64aa0 29 3b 0a 7d 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 );.}............public.function.
64ac0 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b removeDirectoryPhp($directory).{
64ae0 0a 24 69 74 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 .$it.=.new.RecursiveDirectoryIte
64b00 72 61 74 6f 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 rator($directory,.RecursiveDirec
64b20 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 toryIterator::SKIP_DOTS);.$ri.=.
64b40 6e 65 77 20 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 24 69 new.RecursiveIteratorIterator($i
64b60 74 2c 20 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 3a 3a 43 48 t,.RecursiveIteratorIterator::CH
64b80 49 4c 44 5f 46 49 52 53 54 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 ILD_FIRST);..foreach.($ri.as.$fi
64ba0 6c 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 6d 64 69 le).{.if.($file->isDir()).{.rmdi
64bc0 72 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 20 65 6c 73 65 20 r($file->getPathname());.}.else.
64be0 7b 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a {.unlink($file->getPathname());.
64c00 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 72 6d 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d }.}..return.rmdir($directory);.}
64c20 0a 0a 70 75 62 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 ..public.function.ensureDirector
64c40 79 45 78 69 73 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 yExists($directory).{.if.(!is_di
64c60 72 28 24 64 69 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 r($directory)).{.if.(file_exists
64c80 28 24 64 69 72 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 ($directory)).{.throw.new.\Runti
64ca0 6d 65 45 78 63 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 meException(.$directory.'.exists
64cc0 20 61 6e 64 20 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 .and.is.not.a.directory.'.);.}.i
64ce0 66 20 28 21 40 6d 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 f.(!@mkdir($directory,.0777,.tru
64d00 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 78 63 65 70 74 69 6f e)).{.throw.new.\RuntimeExceptio
64d20 6e 28 0a 24 64 69 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 n(.$directory.'.does.not.exist.a
64d40 6e 64 20 63 6f 75 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 nd.could.not.be.created.'.);.}.}
64d60 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 63 6f 70 .}...........public.function.cop
64d80 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a yThenRemove($source,.$target).{.
64da0 24 69 74 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 $it.=.new.RecursiveDirectoryIter
64dc0 61 74 6f 72 28 24 73 6f 75 72 63 65 2c 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 ator($source,.RecursiveDirectory
64de0 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 20 Iterator::SKIP_DOTS);.$ri.=.new.
64e00 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 24 69 74 2c 20 52 RecursiveIteratorIterator($it,.R
64e20 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 53 45 4c 46 5f 46 ecursiveIteratorIterator::SELF_F
64e40 49 52 53 54 29 3b 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 61 72 67 65 74 IRST);..if.(!file_exists($target
64e60 29 29 20 7b 0a 6d 6b 64 69 72 28 24 74 61 72 67 65 74 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b )).{.mkdir($target,.0777,.true);
64e80 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 74 61 .}..foreach.($ri.as.$file).{.$ta
64ea0 72 67 65 74 50 61 74 68 20 3d 20 24 74 61 72 67 65 74 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 rgetPath.=.$target...DIRECTORY_S
64ec0 45 50 41 52 41 54 4f 52 20 2e 20 24 72 69 2d 3e 67 65 74 53 75 62 50 61 74 68 4e 61 6d 65 28 29 EPARATOR...$ri->getSubPathName()
64ee0 3b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 6d 6b 64 69 72 28 24 74 ;.if.($file->isDir()).{.mkdir($t
64f00 61 72 67 65 74 50 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 6f 70 79 28 24 66 69 6c 65 2d argetPath);.}.else.{.copy($file-
64f20 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 2c 20 24 74 61 72 67 65 74 50 61 74 68 29 3b 0a 7d 0a >getPathname(),.$targetPath);.}.
64f40 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 73 6f }..$this->removeDirectoryPhp($so
64f60 75 72 63 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 61 6d 65 urce);.}..public.function.rename
64f80 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d ($source,.$target).{.if.(true.==
64fa0 3d 20 40 72 65 6e 61 6d 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 29 20 7b 0a 72 =.@rename($source,.$target)).{.r
64fc0 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 eturn;.}..if.(!function_exists('
64fe0 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 proc_open')).{.return.$this->cop
65000 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d yThenRemove($source,.$target);.}
65020 0a 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
65040 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e ON_BUILD')).{...$command.=.sprin
65060 74 66 28 27 78 63 6f 70 79 20 25 73 20 25 73 20 2f 45 20 2f 49 20 2f 51 27 2c 20 65 73 63 61 70 tf('xcopy.%s.%s./E./I./Q',.escap
65080 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 eshellarg($source),.escapeshella
650a0 72 67 28 24 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 rg($target));.$result.=.$this->p
650c0 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 rocessExecutor->execute($command
650e0 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b ,.$output);....clearstatcache();
65100 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 ..if.(0.===.$result).{.$this->re
65120 6d 6f 76 65 28 24 73 6f 75 72 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 move($source);..return;.}..retur
65140 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c n.$this->copyThenRemove($source,
65160 20 24 74 61 72 67 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 0a 20 24 63 6f 6d 6d 61 6e 64 .$target);.}.else.{.....$command
65180 20 3d 20 73 70 72 69 6e 74 66 28 27 6d 76 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 .=.sprintf('mv.%s.%s',.escapeshe
651a0 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 llarg($source),.escapeshellarg($
651c0 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 target));.$result.=.$this->proce
651e0 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f ssExecutor->execute($command,.$o
65200 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 69 66 utput);....clearstatcache();..if
65220 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a .(0.===.$result).{.return;.}.}..
65240 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 73 70 72 69 throw.new.\RuntimeException(spri
65260 6e 74 66 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 6e 61 6d 65 20 22 25 73 22 20 74 6f 20 22 25 ntf('Could.not.rename."%s".to."%
65280 73 22 2e 27 2c 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a s".',.$source,.$target));.}.....
652a0 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 73 .....public.function.findShortes
652c0 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 3d tPath($from,.$to,.$directories.=
652e0 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 65 .false).{.if.(!$this->isAbsolute
65300 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 74 Path($from).||.!$this->isAbsolut
65320 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 64 ePath($to)).{.throw.new.\Invalid
65340 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 6d ArgumentException(sprintf('$from
65360 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 6c .(%s).and.$to.(%s).must.be.absol
65380 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 66 ute.paths.',.$from,.$to));.}..$f
653a0 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 rom.=.lcfirst($this->normalizePa
653c0 74 68 28 24 66 72 6f 6d 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d th($from));.$to.=.lcfirst($this-
653e0 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 64 69 72 65 >normalizePath($to));..if.($dire
65400 63 74 6f 72 69 65 73 29 20 7b 0a 24 66 72 6f 6d 20 2e 3d 20 27 2f 64 75 6d 6d 79 5f 66 69 6c 65 ctories).{.$from..=.'/dummy_file
65420 27 3b 0a 7d 0a 0a 69 66 20 28 64 69 72 6e 61 6d 65 28 24 66 72 6f 6d 29 20 3d 3d 3d 20 64 69 72 ';.}..if.(dirname($from).===.dir
65440 6e 61 6d 65 28 24 74 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2e 2f 27 2e 62 61 73 65 6e 61 6d name($to)).{.return.'./'.basenam
65460 65 28 24 74 6f 29 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 e($to);.}..$commonPath.=.$to;.wh
65480 69 6c 65 20 28 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 ile.(strpos($from,.$commonPath).
654a0 21 3d 3d 20 30 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 !==.0.&&.'/'.!==.$commonPath.&&.
654c0 21 70 72 65 67 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 !preg_match('{^[a-z]:/?$}i',.$co
654e0 6d 6d 6f 6e 50 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 mmonPath).&&.'.'.!==.$commonPath
65500 29 20 7b 0a 24 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 ).{.$commonPath.=.strtr(dirname(
65520 24 63 6f 6d 6d 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 $commonPath),.'\\',.'/');.}..if.
65540 28 30 20 21 3d 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 (0.!==.strpos($from,.$commonPath
65560 29 20 7c 7c 20 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 ).||.'/'.===.$commonPath.||.'.'.
65580 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 3b 0a 7d ===.$commonPath).{.return.$to;.}
655a0 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 ..$commonPath.=.rtrim($commonPat
655c0 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 h,.'/')...'/';.$sourcePathDepth.
655e0 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 =.substr_count(substr($from,.str
65600 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 27 2f 27 29 3b 0a 24 63 6f 6d 6d 6f 6e len($commonPath)),.'/');.$common
65620 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2e 2e 2f 27 2c 20 24 73 6f PathCode.=.str_repeat('../',.$so
65640 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 63 6f 6d 6d 6f 6e urcePathDepth);..return.($common
65660 50 61 74 68 43 6f 64 65 20 2e 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 PathCode...substr($to,.strlen($c
65680 6f 6d 6d 6f 6e 50 61 74 68 29 29 29 20 3f 3a 20 27 2e 2f 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ommonPath))).?:.'./';.}.........
656a0 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 73 74 50 61 74 .public.function.findShortestPat
656c0 68 43 6f 64 65 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 3d hCode($from,.$to,.$directories.=
656e0 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 65 .false).{.if.(!$this->isAbsolute
65700 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 74 Path($from).||.!$this->isAbsolut
65720 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 64 ePath($to)).{.throw.new.\Invalid
65740 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 6d ArgumentException(sprintf('$from
65760 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 6c .(%s).and.$to.(%s).must.be.absol
65780 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 66 ute.paths.',.$from,.$to));.}..$f
657a0 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 rom.=.lcfirst($this->normalizePa
657c0 74 68 28 24 66 72 6f 6d 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d th($from));.$to.=.lcfirst($this-
657e0 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 66 72 6f 6d >normalizePath($to));..if.($from
65800 20 3d 3d 3d 20 24 74 6f 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 .===.$to).{.return.$directories.
65820 3f 20 27 5f 5f 44 49 52 5f 5f 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f 27 3b 0a 7d 0a 0a 24 63 6f ?.'__DIR__'.:.'__FILE__';.}..$co
65840 6d 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 mmonPath.=.$to;.while.(strpos($f
65860 72 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 rom,.$commonPath).!==.0.&&.'/'.!
65880 3d 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 ==.$commonPath.&&.!preg_match('{
658a0 5e 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 ^[a-z]:/?$}i',.$commonPath).&&.'
658c0 2e 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 .'.!==.$commonPath).{.$commonPat
658e0 68 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 h.=.strtr(dirname($commonPath),.
65900 27 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 '\\',.'/');.}..if.(0.!==.strpos(
65920 24 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 $from,.$commonPath).||.'/'.===.$
65940 63 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 commonPath.||.'.'.===.$commonPat
65960 68 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 74 6f 2c 20 74 72 75 65 h).{.return.var_export($to,.true
65980 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 6d 6f );.}..$commonPath.=.rtrim($commo
659a0 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 74 nPath,.'/')...'/';.if.(strpos($t
659c0 6f 2c 20 24 66 72 6f 6d 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 27 5f o,.$from.'/').===.0).{.return.'_
659e0 5f 44 49 52 5f 5f 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 73 75 62 73 74 72 28 24 74 6f _DIR__...'.var_export(substr($to
65a00 2c 20 73 74 72 6c 65 6e 28 24 66 72 6f 6d 29 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 73 6f 75 72 ,.strlen($from)),.true);.}.$sour
65a20 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 73 75 62 73 74 cePathDepth.=.substr_count(subst
65a40 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 29 29 2c 20 27 r($from,.strlen($commonPath)),.'
65a60 2f 27 29 20 2b 20 24 64 69 72 65 63 74 6f 72 69 65 73 3b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 /').+.$directories;.$commonPathC
65a80 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 64 69 72 6e 61 6d 65 28 27 2c 20 24 73 6f ode.=.str_repeat('dirname(',.$so
65aa0 75 72 63 65 50 61 74 68 44 65 70 74 68 29 2e 27 5f 5f 44 49 52 5f 5f 27 2e 73 74 72 5f 72 65 70 urcePathDepth).'__DIR__'.str_rep
65ac0 65 61 74 28 27 29 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b 0a 24 72 65 6c eat(')',.$sourcePathDepth);.$rel
65ae0 54 61 72 67 65 74 20 3d 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d Target.=.substr($to,.strlen($com
65b00 6d 6f 6e 50 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f monPath));..return.$commonPathCo
65b20 64 65 20 2e 20 28 73 74 72 6c 65 6e 28 24 72 65 6c 54 61 72 67 65 74 29 20 3f 20 27 2e 27 20 2e de...(strlen($relTarget).?.'.'..
65b40 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f 27 20 2e 20 24 72 65 6c 54 61 72 67 65 74 2c 20 74 72 .var_export('/'...$relTarget,.tr
65b60 75 65 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ue).:.'');.}........public.funct
65b80 69 6f 6e 20 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 ion.isAbsolutePath($path).{.retu
65ba0 72 6e 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 2f 27 20 7c rn.substr($path,.0,.1).===.'/'.|
65bc0 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 31 29 20 3d 3d 3d 20 27 3a 27 3b 0a 7d |.substr($path,.1,.1).===.':';.}
65be0 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 69 7a 65 28 24 70 .........public.function.size($p
65c00 61 74 68 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 70 61 74 68 29 29 20 ath).{.if.(!file_exists($path)).
65c20 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 22 24 {.throw.new.\RuntimeException("$
65c40 70 61 74 68 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 29 3b 0a 7d 0a 69 66 20 28 69 73 path.does.not.exist.");.}.if.(is
65c60 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 72 _dir($path)).{.return.$this->dir
65c80 65 63 74 6f 72 79 53 69 7a 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 69 6c ectorySize($path);.}..return.fil
65ca0 65 73 69 7a 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 esize($path);.}.........public.f
65cc0 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 24 unction.normalizePath($path).{.$
65ce0 70 61 72 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 74 72 28 24 parts.=.array();.$path.=.strtr($
65d00 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 70 72 65 66 69 78 20 3d 20 27 27 3b 0a path,.'\\',.'/');.$prefix.=.'';.
65d20 24 61 62 73 6f 6c 75 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 $absolute.=.false;..if.(preg_mat
65d40 63 68 28 27 7b 5e 28 5b 30 2d 39 61 2d 7a 5d 2b 3a 28 3f 3a 2f 2f 28 3f 3a 5b 61 2d 7a 5d 3a 29 ch('{^([0-9a-z]+:(?://(?:[a-z]:)
65d60 3f 29 3f 29 7d 69 27 2c 20 24 70 61 74 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 72 65 66 ?)?)}i',.$path,.$match)).{.$pref
65d80 69 78 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 ix.=.$match[1];.$path.=.substr($
65da0 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 29 3b 0a 7d 0a 0a 69 66 20 28 73 path,.strlen($prefix));.}..if.(s
65dc0 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 2f 27 29 20 7b 0a 24 61 ubstr($path,.0,.1).===.'/').{.$a
65de0 62 73 6f 6c 75 74 65 20 3d 20 74 72 75 65 3b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 bsolute.=.true;.$path.=.substr($
65e00 70 61 74 68 2c 20 31 29 3b 0a 7d 0a 0a 24 75 70 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 path,.1);.}..$up.=.false;.foreac
65e20 68 20 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 74 68 29 20 61 73 20 24 63 68 75 6e 6b h.(explode('/',.$path).as.$chunk
65e40 29 20 7b 0a 69 66 20 28 27 2e 2e 27 20 3d 3d 3d 20 24 63 68 75 6e 6b 20 26 26 20 28 24 61 62 73 ).{.if.('..'.===.$chunk.&&.($abs
65e60 6f 6c 75 74 65 20 7c 7c 20 24 75 70 29 29 20 7b 0a 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 olute.||.$up)).{.array_pop($part
65e80 73 29 3b 0a 24 75 70 20 3d 20 21 28 65 6d 70 74 79 28 24 70 61 72 74 73 29 20 7c 7c 20 27 2e 2e s);.$up.=.!(empty($parts).||.'..
65ea0 27 20 3d 3d 3d 20 65 6e 64 28 24 70 61 72 74 73 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2e '.===.end($parts));.}.elseif.('.
65ec0 27 20 21 3d 3d 20 24 63 68 75 6e 6b 20 26 26 20 27 27 20 21 3d 3d 20 24 63 68 75 6e 6b 29 20 7b '.!==.$chunk.&&.''.!==.$chunk).{
65ee0 0a 24 70 61 72 74 73 5b 5d 20 3d 20 24 63 68 75 6e 6b 3b 0a 24 75 70 20 3d 20 27 2e 2e 27 20 21 .$parts[].=.$chunk;.$up.=.'..'.!
65f00 3d 3d 20 24 63 68 75 6e 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 28 ==.$chunk;.}.}..return.$prefix.(
65f20 24 61 62 73 6f 6c 75 74 65 20 3f 20 27 2f 27 20 3a 20 27 27 29 2e 69 6d 70 6c 6f 64 65 28 27 2f $absolute.?.'/'.:.'').implode('/
65f40 27 2c 20 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ',.$parts);.}..protected.functio
65f60 6e 20 64 69 72 65 63 74 6f 72 79 53 69 7a 65 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 24 69 n.directorySize($directory).{.$i
65f80 74 20 3d 20 6e 65 77 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 t.=.new.RecursiveDirectoryIterat
65fa0 6f 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 or($directory,.RecursiveDirector
65fc0 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 yIterator::SKIP_DOTS);.$ri.=.new
65fe0 20 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 24 69 74 2c 20 .RecursiveIteratorIterator($it,.
66000 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 3a 3a 43 48 49 4c 44 RecursiveIteratorIterator::CHILD
66020 5f 46 49 52 53 54 29 3b 0a 0a 24 73 69 7a 65 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 _FIRST);..$size.=.0;.foreach.($r
66040 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 46 69 6c 65 28 i.as.$file).{.if.($file->isFile(
66060 29 29 20 7b 0a 24 73 69 7a 65 20 2b 3d 20 24 66 69 6c 65 2d 3e 67 65 74 53 69 7a 65 28 29 3b 0a )).{.$size.+=.$file->getSize();.
66080 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 69 7a 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 }.}..return.$size;.}..protected.
660a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e function.getProcess().{.return.n
660c0 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a ew.ProcessExecutor;.}.}.<?php...
660e0 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 55 74 69 6c .........namespace.Composer\Util
66100 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 63 65 3b 0a ;..use.Composer\IO\IOInterface;.
66120 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 6f 73 65 use.Composer\Config;.use.Compose
66140 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 6e 3b r\Downloader\TransportException;
66160 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 0a 0a 0a .use.Composer\Json\JsonFile;....
66180 0a 63 6c 61 73 73 20 47 69 74 48 75 62 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 .class.GitHub.{.protected.$io;.p
661a0 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f rotected.$config;.protected.$pro
661c0 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 cess;.protected.$remoteFilesyste
661e0 6d 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 63 6f m;..........public.function.__co
66200 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 43 6f 6e 66 69 67 20 nstruct(IOInterface.$io,.Config.
66220 24 63 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 $config,.ProcessExecutor.$proces
66240 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 65 6d 6f s.=.null,.RemoteFilesystem.$remo
66260 74 65 46 69 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 teFilesystem.=.null).{.$this->io
66280 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 6f 6e 66 69 67 3b .=.$io;.$this->config.=.$config;
662a0 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 3f 3a 20 6e 65 .$this->process.=.$process.?:.ne
662c0 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 72 65 6d 6f 74 65 w.ProcessExecutor;.$this->remote
662e0 46 69 6c 65 73 79 73 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 Filesystem.=.$remoteFilesystem.?
66300 3a 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 3b 0a 7d 0a 0a :.new.RemoteFilesystem($io);.}..
66320 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f ......public.function.authorizeO
66340 41 75 74 68 28 24 6f 72 69 67 69 6e 55 72 6c 29 0a 7b 0a 69 66 20 28 27 67 69 74 68 75 62 2e 63 Auth($originUrl).{.if.('github.c
66360 6f 6d 27 20 21 3d 3d 20 24 6f 72 69 67 69 6e 55 72 6c 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c om'.!==.$originUrl).{.return.fal
66380 73 65 3b 0a 7d 0a 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 73 se;.}....if.(0.===.$this->proces
663a0 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 63 6f 6e 66 69 67 20 67 69 74 68 75 62 2e 61 63 s->execute('git.config.github.ac
663c0 63 65 73 73 74 6f 6b 65 6e 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 cesstoken',.$output)).{.$this->i
663e0 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c o->setAuthentication($originUrl,
66400 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 .trim($output),.'x-oauth-basic')
66420 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;
66440 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 61 75 74 68 6f .}.........public.function.autho
66460 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6f 72 69 67 69 6e 55 72 rizeOAuthInteractively($originUr
66480 6c 2c 20 24 6d 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 61 74 74 65 6d 70 74 43 6f l,.$message.=.null).{.$attemptCo
664a0 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 69 66 20 28 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 74 68 69 unter.=.0;..if.($message).{.$thi
664c0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d s->io->write($message);.}.$this-
664e0 3e 69 6f 2d 3e 77 72 69 74 65 28 27 54 68 65 20 63 72 65 64 65 6e 74 69 61 6c 73 20 77 69 6c 6c >io->write('The.credentials.will
66500 20 62 65 20 73 77 61 70 70 65 64 20 66 6f 72 20 61 6e 20 4f 41 75 74 68 20 74 6f 6b 65 6e 20 73 .be.swapped.for.an.OAuth.token.s
66520 74 6f 72 65 64 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 tored.in.'.$this->config->get('h
66540 6f 6d 65 27 29 2e 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 2c 20 79 6f 75 72 20 70 61 73 73 77 6f ome').'/config.json,.your.passwo
66560 72 64 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 73 74 6f 72 65 64 27 29 3b 0a 24 74 68 69 73 2d 3e rd.will.not.be.stored');.$this->
66580 69 6f 2d 3e 77 72 69 74 65 28 27 54 6f 20 72 65 76 6f 6b 65 20 61 63 63 65 73 73 20 74 6f 20 74 io->write('To.revoke.access.to.t
665a0 68 69 73 20 74 6f 6b 65 6e 20 79 6f 75 20 63 61 6e 20 76 69 73 69 74 20 68 74 74 70 73 3a 2f 2f his.token.you.can.visit.https://
665c0 67 69 74 68 75 62 2e 63 6f 6d 2f 73 65 74 74 69 6e 67 73 2f 61 70 70 6c 69 63 61 74 69 6f 6e 73 github.com/settings/applications
665e0 27 29 3b 0a 77 68 69 6c 65 20 28 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 2b 2b 20 3c 20 35 ');.while.($attemptCounter++.<.5
66600 29 20 7b 0a 74 72 79 20 7b 0a 24 75 73 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d ).{.try.{.$username.=.$this->io-
66620 3e 61 73 6b 28 27 55 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 >ask('Username:.');.$password.=.
66640 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 $this->io->askAndHideAnswer('Pas
66660 73 77 6f 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 65 6e 74 sword:.');.$this->io->setAuthent
66680 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 ication($originUrl,.$username,.$
666a0 70 61 73 73 77 6f 72 64 29 3b 0a 0a 0a 20 24 61 70 70 4e 61 6d 65 20 3d 20 27 43 6f 6d 70 6f 73 password);....$appName.=.'Compos
666c0 65 72 27 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 3e 65 er';.if.(0.===.$this->process->e
666e0 78 65 63 75 74 65 28 27 68 6f 73 74 6e 61 6d 65 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 xecute('hostname',.$output)).{.$
66700 61 70 70 4e 61 6d 65 20 2e 3d 20 27 20 6f 6e 20 27 20 2e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 appName..=.'.on.'...trim($output
66720 29 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 );.}..$contents.=.JsonFile::pars
66740 65 4a 73 6f 6e 28 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 eJson($this->remoteFilesystem->g
66760 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 27 68 74 74 70 73 3a 2f 2f etContents($originUrl,.'https://
66780 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 27 2c 20 api.github.com/authorizations',.
667a0 66 61 6c 73 65 2c 20 61 72 72 61 79 28 0a 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 false,.array(.'http'.=>.array(.'
667c0 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 method'.=>.'POST',.'follow_locat
667e0 69 6f 6e 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 22 43 6f 6e 74 ion'.=>.false,.'header'.=>."Cont
66800 65 6e 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 72 5c 6e 22 2c ent-Type:.application/json\r\n",
66820 0a 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 61 72 72 61 79 28 .'content'.=>.json_encode(array(
66840 0a 27 73 63 6f 70 65 73 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 70 6f 27 29 2c 0a 27 6e 6f 74 .'scopes'.=>.array('repo'),.'not
66860 65 27 20 3d 3e 20 24 61 70 70 4e 61 6d 65 2c 0a 27 6e 6f 74 65 5f 75 72 6c 27 20 3d 3e 20 27 68 e'.=>.$appName,.'note_url'.=>.'h
66880 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 27 2c 0a 29 29 2c 0a 29 0a ttps://getcomposer.org/',.)),.).
668a0 29 29 29 3b 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
668c0 20 24 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 .$e).{.if.(in_array($e->getCode(
668e0 29 2c 20 61 72 72 61 79 28 34 30 33 2c 20 34 30 31 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f ),.array(403,.401))).{.$this->io
66900 2d 3e 77 72 69 74 65 28 27 49 6e 76 61 6c 69 64 20 63 72 65 64 65 6e 74 69 61 6c 73 2e 27 29 3b ->write('Invalid.credentials.');
66920 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 .continue;.}..throw.$e;.}..$this
66940 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 ->io->setAuthentication($originU
66960 72 6c 2c 20 24 63 6f 6e 74 65 6e 74 73 5b 27 74 6f 6b 65 6e 27 5d 2c 20 27 78 2d 6f 61 75 74 68 rl,.$contents['token'],.'x-oauth
66980 2d 62 61 73 69 63 27 29 3b 0a 0a 0a 20 24 67 69 74 68 75 62 54 6f 6b 65 6e 73 20 3d 20 24 74 68 -basic');....$githubTokens.=.$th
669a0 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 20 is->config->get('github-oauth').
669c0 3f 3a 20 61 72 72 61 79 28 29 3b 0a 24 67 69 74 68 75 62 54 6f 6b 65 6e 73 5b 24 6f 72 69 67 69 ?:.array();.$githubTokens[$origi
669e0 6e 55 72 6c 5d 20 3d 20 24 63 6f 6e 74 65 6e 74 73 5b 27 74 6f 6b 65 6e 27 5d 3b 0a 24 74 68 69 nUrl].=.$contents['token'];.$thi
66a00 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d 3e 61 64 s->config->getConfigSource()->ad
66a20 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 2c 20 24 dConfigSetting('github-oauth',.$
66a40 67 69 74 68 75 62 54 6f 6b 65 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a githubTokens);..return.true;.}..
66a60 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 22 49 6e 76 throw.new.\RuntimeException("Inv
66a80 61 6c 69 64 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 35 20 74 69 6d 65 73 20 alid.GitHub.credentials.5.times.
66aa0 69 6e 20 61 20 72 6f 77 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 in.a.row,.aborting.");.}.}.<?php
66ac0 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 55 ............namespace.Composer\U
66ae0 74 69 6c 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 72 6f 63 til;..use.Symfony\Component\Proc
66b00 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 ess\Process;.use.Composer\IO\IOI
66b20 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 45 78 65 63 75 nterface;.....class.ProcessExecu
66b40 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 74 69 6d 65 6f 75 74 20 tor.{.protected.static.$timeout.
66b60 3d 20 33 30 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 70 74 75 72 65 4f 75 74 70 75 74 =.300;..protected.$captureOutput
66b80 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 ;.protected.$errorOutput;.protec
66ba0 74 65 64 20 24 69 6f 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 ted.$io;..public.function.__cons
66bc0 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 29 0a 7b 0a truct(IOInterface.$io.=.null).{.
66be0 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 70 75 62 $this->io.=.$io;.}...........pub
66c00 6c 69 63 20 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 lic.function.execute($command,.&
66c20 24 6f 75 74 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 $output.=.null,.$cwd.=.null).{.$
66c40 74 68 69 73 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 this->captureOutput.=.count(func
66c60 5f 67 65 74 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 _get_args()).>.1;.$this->errorOu
66c80 74 70 75 74 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 tput.=.null;.$process.=.new.Proc
66ca0 65 73 73 28 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 ess($command,.$cwd,.null,.null,.
66cc0 73 74 61 74 69 63 3a 3a 67 65 74 54 69 6d 65 6f 75 74 28 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 static::getTimeout());..if.($thi
66ce0 73 2d 3e 69 6f 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b s->io.&&.$this->io->isDebug()).{
66d00 0a 24 73 61 66 65 43 6f 6d 6d 61 6e 64 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 .$safeCommand.=.preg_replace('{(
66d20 3a 2f 2f 5b 5e 3a 2f 5c 73 5d 2b 3a 29 5b 5e 40 5c 73 2f 5d 2b 7d 69 27 2c 20 27 24 31 2a 2a 2a ://[^:/\s]+:)[^@\s/]+}i',.'$1***
66d40 2a 27 2c 20 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 *',.$command);.$this->io->write(
66d60 27 45 78 65 63 75 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 28 27 2e 28 24 63 77 64 20 3f 3a 20 27 'Executing.command.('.($cwd.?:.'
66d80 43 57 44 27 29 2e 27 29 3a 20 27 2e 24 73 61 66 65 43 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 24 63 CWD').'):.'.$safeCommand);.}..$c
66da0 61 6c 6c 62 61 63 6b 20 3d 20 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 20 3f allback.=.is_callable($output).?
66dc0 20 24 6f 75 74 70 75 74 20 3a 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6f 75 74 70 75 74 48 .$output.:.array($this,.'outputH
66de0 61 6e 64 6c 65 72 27 29 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 24 63 61 6c 6c 62 61 63 andler');.$process->run($callbac
66e00 6b 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 26 26 k);..if.($this->captureOutput.&&
66e20 20 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 .!is_callable($output)).{.$outpu
66e40 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 24 74 t.=.$process->getOutput();.}..$t
66e60 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 his->errorOutput.=.$process->get
66e80 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 2d ErrorOutput();..return.$process-
66ea0 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 >getExitCode();.}..public.functi
66ec0 6f 6e 20 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 on.splitLines($output).{.return.
66ee0 28 28 73 74 72 69 6e 67 29 20 24 6f 75 74 70 75 74 20 3d 3d 3d 20 27 27 29 20 3f 20 61 72 72 61 ((string).$output.===.'').?.arra
66f00 79 28 29 20 3a 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 72 3f 5c 6e 7d 27 2c 20 24 6f 75 74 y().:.preg_split('{\r?\n}',.$out
66f20 70 75 74 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 65 put);.}.......public.function.ge
66f40 74 45 72 72 6f 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 65 tErrorOutput().{.return.$this->e
66f60 72 72 6f 72 4f 75 74 70 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f rrorOutput;.}..public.function.o
66f80 75 74 70 75 74 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 utputHandler($type,.$buffer).{.i
66fa0 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 29 20 7b 0a 72 65 74 75 72 f.($this->captureOutput).{.retur
66fc0 6e 3b 0a 7d 0a 0a 65 63 68 6f 20 24 62 75 66 66 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 n;.}..echo.$buffer;.}..public.st
66fe0 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 atic.function.getTimeout().{.ret
67000 75 72 6e 20 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 urn.static::$timeout;.}..public.
67020 73 74 61 74 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 65 static.function.setTimeout($time
67040 6f 75 74 29 0a 7b 0a 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f out).{.static::$timeout.=.$timeo
67060 75 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 61 ut;.}.}.<?php............namespa
67080 63 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 ce.Composer\Util;..use.Composer\
670a0 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 6e 74 65 Composer;.use.Composer\IO\IOInte
670c0 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 54 rface;.use.Composer\Downloader\T
670e0 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 ransportException;......class.Re
67100 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 moteFilesystem.{.private.$io;.pr
67120 69 76 61 74 65 20 24 66 69 72 73 74 43 61 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 62 79 74 65 73 ivate.$firstCall;.private.$bytes
67140 4d 61 78 3b 0a 70 72 69 76 61 74 65 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 Max;.private.$originUrl;.private
67160 20 24 66 69 6c 65 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 .$fileUrl;.private.$fileName;.pr
67180 69 76 61 74 65 20 24 72 65 74 72 79 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 3b ivate.$retry;.private.$progress;
671a0 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 50 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 .private.$lastProgress;.private.
671c0 24 6f 70 74 69 6f 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $options;........public.function
671e0 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 2c 20 24 6f .__construct(IOInterface.$io,.$o
67200 70 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 69 6f 20 3d 20 ptions.=.array()).{.$this->io.=.
67220 24 69 6f 3b 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 $io;.$this->options.=.$options;.
67240 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 63 6f }.............public.function.co
67260 70 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 py($originUrl,.$fileUrl,.$fileNa
67280 6d 65 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 2c 20 24 6f 70 74 69 6f 6e 73 20 3d me,.$progress.=.true,.$options.=
672a0 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6f .array()).{.return.$this->get($o
672c0 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 24 66 riginUrl,.$fileUrl,.$options,.$f
672e0 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ileName,.$progress);.}..........
67300 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 73 28 24 6f ..public.function.getContents($o
67320 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 73 20 3d 20 riginUrl,.$fileUrl,.$progress.=.
67340 74 72 75 65 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 true,.$options.=.array()).{.retu
67360 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 rn.$this->get($originUrl,.$fileU
67380 72 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a rl,.$options,.null,.$progress);.
673a0 7d 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 }.............protected.function
673c0 20 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 .get($originUrl,.$fileUrl,.$addi
673e0 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 66 69 6c 65 4e 61 tionalOptions.=.array(),.$fileNa
67400 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 me.=.null,.$progress.=.true).{.$
67420 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 this->bytesMax.=.0;.$this->origi
67440 6e 55 72 6c 20 3d 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 nUrl.=.$originUrl;.$this->fileUr
67460 6c 20 3d 20 24 66 69 6c 65 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 20 3d 20 l.=.$fileUrl;.$this->fileName.=.
67480 24 66 69 6c 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 3d 20 24 70 72 $fileName;.$this->progress.=.$pr
674a0 6f 67 72 65 73 73 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 6e 75 ogress;.$this->lastProgress.=.nu
674c0 6c 6c 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e ll;..$options.=.$this->getOption
674e0 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f sForUrl($originUrl,.$additionalO
67500 70 74 69 6f 6e 73 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 ptions);.if.($this->io->isDebug(
67520 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 44 6f 77 6e 6c 6f 61 64 69 )).{.$this->io->write('Downloadi
67540 6e 67 20 27 2e 24 66 69 6c 65 55 72 6c 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 ng.'.$fileUrl);.}.if.(isset($opt
67560 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 29 29 20 7b 0a 24 66 69 6c 65 55 72 ions['github-token'])).{.$fileUr
67580 6c 20 2e 3d 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 66 69 6c 65 55 72 6c 2c l..=.(false.===.strpos($fileUrl,
675a0 20 27 3f 27 29 20 3f 20 27 3f 27 20 3a 20 27 26 27 29 20 2e 20 27 61 63 63 65 73 73 5f 74 6f 6b .'?').?.'?'.:.'&')...'access_tok
675c0 65 6e 3d 27 2e 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 3b 0a 75 en='.$options['github-token'];.u
675e0 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 29 3b 0a nset($options['github-token']);.
67600 7d 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
67620 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
67640 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
67660 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)
67680 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
676a0 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
676c0 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 mment>",.false);.}..$errorMessag
676e0 65 20 3d 20 27 27 3b 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d 20 30 3b 0a 24 72 65 73 75 6c 74 20 e.=.'';.$errorCode.=.0;.$result.
67700 3d 20 66 61 6c 73 65 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 =.false;.set_error_handler(funct
67720 69 6f 6e 20 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 ion.($code,.$msg).use.(&$errorMe
67740 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 ssage).{.if.($errorMessage).{.$e
67760 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 rrorMessage..=."\n";.}.$errorMes
67780 73 61 67 65 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 5f 67 65 74 sage..=.preg_replace('{^file_get
677a0 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b _contents\(.*?\):.}',.'',.$msg);
677c0 0a 7d 29 3b 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f .});.try.{.$result.=.file_get_co
677e0 6e 74 65 6e 74 73 28 24 66 69 6c 65 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 74 78 29 3b 0a 7d ntents($fileUrl,.false,.$ctx);.}
67800 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 65 20 .catch.(\Exception.$e).{.if.($e.
67820 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 instanceof.TransportException.&&
67840 20 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d .!empty($http_response_header[0]
67860 29 29 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e )).{.$e->setHeaders($http_respon
67880 73 65 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 se_header);.}.}.if.($errorMessag
678a0 65 20 26 26 20 21 69 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 e.&&.!ini_get('allow_url_fopen')
678c0 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 ).{.$errorMessage.=.'allow_url_f
678e0 6f 70 65 6e 20 6d 75 73 74 20 62 65 20 65 6e 61 62 6c 65 64 20 69 6e 20 70 68 70 2e 69 6e 69 20 open.must.be.enabled.in.php.ini.
67900 28 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2e 27 29 27 3b 0a 7d 0a 72 65 73 74 6f 72 65 5f ('.$errorMessage.')';.}.restore_
67920 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 20 26 error_handler();.if.(isset($e).&
67940 26 20 21 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a &.!$this->retry).{.throw.$e;.}..
67960 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 ..if.(!empty($http_response_head
67980 65 72 5b 30 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 5c 53 2b er[0]).&&.preg_match('{^HTTP/\S+
679a0 20 28 5b 34 35 5d 5c 64 5c 64 29 7d 69 27 2c 20 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 .([45]\d\d)}i',.$http_response_h
679c0 65 61 64 65 72 5b 30 5d 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 66 eader[0],.$match)).{.$result.=.f
679e0 61 6c 73 65 3b 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a alse;.$errorCode.=.$match[1];.}.
67a00 0a 0a 20 69 66 20 28 24 72 65 73 75 6c 74 20 26 26 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 ...if.($result.&&.extension_load
67a20 65 64 28 27 7a 6c 69 62 27 29 20 26 26 20 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 ed('zlib').&&.substr($fileUrl,.0
67a40 2c 20 34 29 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c ,.4).===.'http').{.$decode.=.fal
67a60 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 se;.foreach.($http_response_head
67a80 65 72 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 er.as.$header).{.if.(preg_match(
67aa0 27 7b 5e 63 6f 6e 74 65 6e 74 2d 65 6e 63 6f 64 69 6e 67 3a 20 2a 67 7a 69 70 20 2a 24 7d 69 27 '{^content-encoding:.*gzip.*$}i'
67ac0 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 74 72 75 65 3b 0a 63 6f ,.$header)).{.$decode.=.true;.co
67ae0 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e ntinue;.}.elseif.(preg_match('{^
67b00 48 54 54 50 2f 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 HTTP/}i',.$header)).{.$decode.=.
67b20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 63 6f 64 65 29 20 7b 0a 69 66 20 28 76 false;.}.}..if.($decode).{.if.(v
67b40 65 72 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 34 ersion_compare(PHP_VERSION,.'5.4
67b60 2e 30 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 7a 6c 69 62 5f 64 65 63 .0',.'>=')).{.$result.=.zlib_dec
67b80 6f 64 65 28 24 72 65 73 75 6c 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 ode($result);.}.else.{...$result
67ba0 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 27 63 6f 6d 70 72 65 73 73 2e 7a .=.file_get_contents('compress.z
67bc0 6c 69 62 3a 2f 2f 64 61 74 61 3a 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 63 74 65 74 2d 73 74 72 lib://data:application/octet-str
67be0 65 61 6d 3b 62 61 73 65 36 34 2c 27 2e 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 72 65 73 75 eam;base64,'.base64_encode($resu
67c00 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 lt));.}.}.}..if.($this->progress
67c20 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 22 20 20 20 20 44 6f ).{.$this->io->overwrite("....Do
67c40 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 31 30 30 25 3c 2f 63 6f 6d 6d 65 6e wnloading:.<comment>100%</commen
67c60 74 3e 22 29 3b 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 t>");.}....if.(false.!==.$result
67c80 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 66 69 6c 65 4e 61 6d 65 29 20 7b 0a 69 66 20 28 27 27 .&&.null.!==.$fileName).{.if.(''
67ca0 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 .===.$result).{.throw.new.Transp
67cc0 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e ortException('"'.$this->fileUrl.
67ce0 27 22 20 61 70 70 65 61 72 73 20 62 72 6f 6b 65 6e 2c 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 '".appears.broken,.and.returned.
67d00 61 6e 20 65 6d 70 74 79 20 32 30 30 20 72 65 73 70 6f 6e 73 65 27 29 3b 0a 7d 0a 0a 24 65 72 72 an.empty.200.response');.}..$err
67d20 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 orMessage.=.'';.set_error_handle
67d40 72 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 65 20 28 26 24 r(function.($code,.$msg).use.(&$
67d60 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 errorMessage).{.if.($errorMessag
67d80 65 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 24 65 e).{.$errorMessage..=."\n";.}.$e
67da0 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 rrorMessage..=.preg_replace('{^f
67dc0 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 27 27 2c ile_put_contents\(.*?\):.}',.'',
67de0 20 24 6d 73 67 29 3b 0a 7d 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 28 62 6f 6f 6c 29 20 66 69 6c .$msg);.});.$result.=.(bool).fil
67e00 65 5f 70 75 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 e_put_contents($fileName,.$resul
67e20 74 29 3b 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 t);.restore_error_handler();.if.
67e40 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 65 77 20 (false.===.$result).{.throw.new.
67e60 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 74 68 69 73 TransportException('The."'.$this
67e80 2d 3e 66 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 ->fileUrl.'".file.could.not.be.w
67ea0 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 3a 20 27 2e 24 65 72 72 6f ritten.to.'.$fileName.':.'.$erro
67ec0 72 4d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 74 72 79 rMessage);.}.}..if.($this->retry
67ee0 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 ).{.$this->retry.=.false;..retur
67f00 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 n.$this->get($this->originUrl,.$
67f20 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e this->fileUrl,.$additionalOption
67f40 73 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 s,.$this->fileName,.$this->progr
67f60 65 73 73 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 ess);.}..if.(false.===.$result).
67f80 7b 0a 24 65 20 3d 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 {.$e.=.new.TransportException('T
67fa0 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 6f 75 he."'.$this->fileUrl.'".file.cou
67fc0 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 3a 20 27 2e 24 65 72 72 6f 72 4d 65 ld.not.be.downloaded:.'.$errorMe
67fe0 73 73 61 67 65 2c 20 24 65 72 72 6f 72 43 6f 64 65 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 ssage,.$errorCode);.if.(!empty($
68000 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a 24 65 2d 3e http_response_header[0])).{.$e->
68020 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 setHeaders($http_response_header
68040 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c );.}..throw.$e;.}..return.$resul
68060 74 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 6e 63 74 69 t;.}............protected.functi
68080 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 6e 43 6f 64 65 on.callbackGet($notificationCode
680a0 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 73 61 67 65 43 ,.$severity,.$message,.$messageC
680c0 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 74 65 73 4d 61 ode,.$bytesTransferred,.$bytesMa
680e0 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 6f 64 65 29 20 x).{.switch.($notificationCode).
68100 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 45 3a 0a 63 61 {.case.STREAM_NOTIFY_FAILURE:.ca
68120 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 55 49 52 45 44 3a 0a se.STREAM_NOTIFY_AUTH_REQUIRED:.
68140 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 20 7b 0a 69 66 20 28 if.(401.===.$messageCode).{.if.(
68160 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 28 29 29 20 7b 0a 24 !$this->io->isInteractive()).{.$
68180 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 2d 3e 66 69 6c 65 55 message.=."The.'"...$this->fileU
681a0 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 65 6e 74 69 63 61 74 rl..."'.URL.required.authenticat
681c0 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 68 65 20 69 6e 74 65 ion.\nYou.must.be.using.the.inte
681e0 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 6e 65 77 20 54 72 61 ractive.console";..throw.new.Tra
68200 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 20 34 30 31 29 3b 0a nsportException($message,.401);.
68220 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 20 20 20 20 41 75 74 }..$this->io->overwrite('....Aut
68240 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 66 6f 3e 27 2e 70 61 hentication.required.(<info>'.pa
68260 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 48 50 5f 55 52 4c 5f rse_url($this->fileUrl,.PHP_URL_
68280 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 6e 61 6d 65 20 3d 20 HOST).'</info>):');.$username.=.
682a0 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 72 6e 61 6d 65 3a 20 $this->io->ask('......Username:.
682c0 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
682e0 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 72 64 3a 20 27 29 3b dHideAnswer('......Password:.');
68300 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 .$this->io->setAuthentication($t
68320 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 20 24 70 61 73 73 his->originUrl,.$username,.$pass
68340 77 6f 72 64 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 74 68 72 word);..$this->retry.=.true;.thr
68360 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 27 52 45 54 52 59 ow.new.TransportException('RETRY
68380 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 ');.break;.}..if.($notificationC
683a0 6f 64 65 20 3d 3d 3d 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 51 55 49 ode.===.STREAM_NOTIFY_AUTH_REQUI
683c0 52 45 44 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 RED).{.break;.}..throw.new.Trans
683e0 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c portException('The."'.$this->fil
68400 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 64 6f 77 6e 6c 6f eUrl.'".file.could.not.be.downlo
68420 61 64 65 64 20 28 27 2e 74 72 69 6d 28 24 6d 65 73 73 61 67 65 29 2e 27 29 27 2c 20 24 6d 65 73 aded.('.trim($message).')',.$mes
68440 73 61 67 65 43 6f 64 65 29 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 sageCode);..case.STREAM_NOTIFY_A
68460 55 54 48 5f 52 45 53 55 4c 54 3a 0a 69 66 20 28 34 30 33 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 UTH_RESULT:.if.(403.===.$message
68480 43 6f 64 65 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 Code).{.$message.=."The.'"...$th
684a0 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 63 6f 75 6c 64 20 6e 6f 74 20 62 is->fileUrl..."'.URL.could.not.b
684c0 65 20 61 63 63 65 73 73 65 64 3a 20 22 20 2e 20 24 6d 65 73 73 61 67 65 3b 0a 0a 74 68 72 6f 77 e.accessed:."...$message;..throw
684e0 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 6d 65 73 73 61 67 65 .new.TransportException($message
68500 2c 20 34 30 33 29 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 4f ,.403);.}.break;..case.STREAM_NO
68520 54 49 46 59 5f 46 49 4c 45 5f 53 49 5a 45 5f 49 53 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 TIFY_FILE_SIZE_IS:.if.($this->by
68540 74 65 73 4d 61 78 20 3c 20 24 62 79 74 65 73 4d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 79 74 tesMax.<.$bytesMax).{.$this->byt
68560 65 73 4d 61 78 20 3d 20 24 62 79 74 65 73 4d 61 78 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 esMax.=.$bytesMax;.}.break;..cas
68580 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 50 52 4f 47 52 45 53 53 3a 0a 69 66 20 28 24 74 e.STREAM_NOTIFY_PROGRESS:.if.($t
685a0 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 67 his->bytesMax.>.0.&&.$this->prog
685c0 72 65 73 73 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 30 3b 0a 0a 69 66 20 28 24 ress).{.$progression.=.0;..if.($
685e0 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 this->bytesMax.>.0).{.$progressi
68600 6f 6e 20 3d 20 72 6f 75 6e 64 28 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 20 2f 20 24 on.=.round($bytesTransferred./.$
68620 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 2a 20 31 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 28 30 this->bytesMax.*.100);.}..if.((0
68640 20 3d 3d 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 25 20 35 29 20 26 26 20 24 70 72 6f 67 72 .===.$progression.%.5).&&.$progr
68660 65 73 73 69 6f 6e 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 29 20 ession.!==.$this->lastProgress).
68680 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 24 70 72 6f 67 72 65 73 {.$this->lastProgress.=.$progres
686a0 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 22 20 20 20 20 sion;.$this->io->overwrite("....
686c0 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 24 70 72 6f 67 72 65 73 73 69 Downloading:.<comment>$progressi
686e0 6f 6e 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 62 72 65 61 on%</comment>",.false);.}.}.brea
68700 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 k;..default:.break;.}.}..protect
68720 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 ed.function.getOptionsForUrl($or
68740 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 0a 7b 0a 24 iginUrl,.$additionalOptions).{.$
68760 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 73 70 72 69 6e 74 66 28 0a 27 55 73 65 72 2d headers.=.array(.sprintf(.'User-
68780 41 67 65 6e 74 3a 20 43 6f 6d 70 6f 73 65 72 2f 25 73 20 28 25 73 3b 20 25 73 3b 20 50 48 50 20 Agent:.Composer/%s.(%s;.%s;.PHP.
687a0 25 73 2e 25 73 2e 25 73 29 27 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 3d 3d %s.%s.%s)',.Composer::VERSION.==
687c0 3d 20 27 31 2e 30 2e 30 2d 61 6c 70 68 61 37 27 20 3f 20 27 73 6f 75 72 63 65 27 20 3a 20 43 6f =.'1.0.0-alpha7'.?.'source'.:.Co
687e0 6d 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 mposer::VERSION,.php_uname('s'),
68800 0a 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 .php_uname('r'),.PHP_MAJOR_VERSI
68820 4f 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 ON,.PHP_MINOR_VERSION,.PHP_RELEA
68840 53 45 5f 56 45 52 53 49 4f 4e 0a 29 0a 29 3b 0a 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c SE_VERSION.).);..if.(extension_l
68860 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 29 20 7b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 oaded('zlib')).{.$headers[].=.'A
68880 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 70 27 3b 0a 7d 0a 0a 24 6f 70 74 69 6f ccept-Encoding:.gzip';.}..$optio
688a0 6e 73 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 28 24 74 68 ns.=.array_replace_recursive($th
688c0 69 73 2d 3e 6f 70 74 69 6f 6e 73 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 is->options,.$additionalOptions)
688e0 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 ;..if.($this->io->hasAuthenticat
68900 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 ion($originUrl)).{.$auth.=.$this
68920 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 ->io->getAuthentication($originU
68940 72 6c 29 3b 0a 69 66 20 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 6f 72 69 67 69 rl);.if.('github.com'.===.$origi
68960 6e 55 72 6c 20 26 26 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 20 3d 3d 3d 20 24 61 75 74 nUrl.&&.'x-oauth-basic'.===.$aut
68980 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 h['password']).{.$options['githu
689a0 62 2d 74 6f 6b 65 6e 27 5d 20 3d 20 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d b-token'].=.$auth['username'];.}
689c0 20 65 6c 73 65 20 7b 0a 24 61 75 74 68 53 74 72 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 .else.{.$authStr.=.base64_encode
689e0 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 20 24 61 75 74 68 ($auth['username']...':'...$auth
68a00 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 75 74 ['password']);.$headers[].=.'Aut
68a20 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 27 2e 24 61 75 74 68 53 74 72 3b 0a 7d 0a horization:.Basic.'.$authStr;.}.
68a40 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 }..if.(isset($options['http']['h
68a60 65 61 64 65 72 27 5d 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 73 5b 27 eader']).&&.!is_array($options['
68a80 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 http']['header'])).{.$options['h
68aa0 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 ttp']['header'].=.explode("\r\n"
68ac0 2c 20 74 72 69 6d 28 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 ,.trim($options['http']['header'
68ae0 5d 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 ],."\r\n"));.}.foreach.($headers
68b00 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b .as.$header).{.$options['http'][
68b20 27 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 24 68 65 61 64 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 'header'][].=.$header;.}..return
68b40 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 0a .$options;.}.}.<?php............
68b60 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 0a namespace.Composer\Util;........
68b80 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
68ba0 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
68bc0 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
68be0 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
68c00 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
68c20 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 0a 20 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 ('http'.=>.array(...'follow_loca
68c40 74 69 6f 6e 27 20 3d 3e 20 31 2c 0a 27 6d 61 78 5f 72 65 64 69 72 65 63 74 73 27 20 3d 3e 20 32 tion'.=>.1,.'max_redirects'.=>.2
68c60 30 2c 0a 29 29 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 48 0,.));....if.(!empty($_SERVER['H
68c80 54 54 50 5f 50 52 4f 58 59 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b TTP_PROXY']).||.!empty($_SERVER[
68ca0 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 29 20 7b 0a 0a 20 24 70 72 6f 78 79 20 3d 20 70 61 72 'http_proxy'])).{...$proxy.=.par
68cc0 73 65 5f 75 72 6c 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f se_url(!empty($_SERVER['http_pro
68ce0 78 79 27 5d 29 20 3f 20 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 20 3a xy']).?.$_SERVER['http_proxy'].:
68d00 20 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 69 66 20 .$_SERVER['HTTP_PROXY']);.}..if.
68d20 28 21 65 6d 70 74 79 28 24 70 72 6f 78 79 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 3d 20 69 (!empty($proxy)).{.$proxyURL.=.i
68d40 73 73 65 74 28 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b sset($proxy['scheme']).?.$proxy[
68d60 27 73 63 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 20 3a 20 27 27 3b 0a 24 70 72 6f 78 79 55 52 'scheme']...'://'.:.'';.$proxyUR
68d80 4c 20 2e 3d 20 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 29 20 3f 20 24 70 72 L..=.isset($proxy['host']).?.$pr
68da0 6f 78 79 5b 27 68 6f 73 74 27 5d 20 3a 20 27 27 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 oxy['host'].:.'';..if.(isset($pr
68dc0 6f 78 79 5b 27 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 22 oxy['port'])).{.$proxyURL..=.":"
68de0 20 2e 20 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 ...$proxy['port'];.}.elseif.('ht
68e00 74 70 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 37 tp://'.==.substr($proxyURL,.0,.7
68e20 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 38 30 22 3b 0a 7d 20 65 6c 73 65 69 )).{.$proxyURL..=.":80";.}.elsei
68e40 66 20 28 27 68 74 74 70 73 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 f.('https://'.==.substr($proxyUR
68e60 4c 2c 20 30 2c 20 38 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 34 34 33 22 3b L,.0,.8)).{.$proxyURL..=.":443";
68e80 0a 7d 0a 0a 0a 20 24 70 72 6f 78 79 55 52 4c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 .}....$proxyURL.=.str_replace(ar
68ea0 72 61 79 28 27 68 74 74 70 3a 2f 2f 27 2c 20 27 68 74 74 70 73 3a 2f 2f 27 29 2c 20 61 72 72 61 ray('http://',.'https://'),.arra
68ec0 79 28 27 74 63 70 3a 2f 2f 27 2c 20 27 73 73 6c 3a 2f 2f 27 29 2c 20 24 70 72 6f 78 79 55 52 4c y('tcp://',.'ssl://'),.$proxyURL
68ee0 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 72 6f 78 79 55 52 4c 2c 20 );..if.(0.===.strpos($proxyURL,.
68f00 27 73 73 6c 3a 27 29 20 26 26 20 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 'ssl:').&&.!extension_loaded('op
68f20 65 6e 73 73 6c 27 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 enssl')).{.throw.new.\RuntimeExc
68f40 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 70 65 6e eption('You.must.enable.the.open
68f60 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 75 73 65 20 61 20 70 72 6f 78 79 20 6f 76 65 ssl.extension.to.use.a.proxy.ove
68f80 72 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 r.https');.}..$options['http']['
68fa0 70 72 6f 78 79 27 5d 20 3d 20 24 70 72 6f 78 79 55 52 4c 3b 0a 0a 0a 20 24 72 65 71 46 75 6c 6c proxy'].=.$proxyURL;....$reqFull
68fc0 55 72 69 45 6e 76 20 3d 20 67 65 74 65 6e 76 28 27 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 51 55 UriEnv.=.getenv('HTTP_PROXY_REQU
68fe0 45 53 54 5f 46 55 4c 4c 55 52 49 27 29 3b 0a 69 66 20 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e EST_FULLURI');.if.($reqFullUriEn
69000 76 20 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d v.===.false.||.$reqFullUriEnv.==
69020 3d 20 27 27 20 7c 7c 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 46 75 6c 6c 55 72 69 45 =.''.||.(strtolower($reqFullUriE
69040 6e 76 29 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 72 65 71 46 75 nv).!==.'false'.&&.(bool).$reqFu
69060 6c 6c 55 72 69 45 6e 76 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 72 llUriEnv)).{.$options['http']['r
69080 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 equest_fulluri'].=.true;.}..if.(
690a0 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d isset($proxy['user'])).{.$auth.=
690c0 20 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 .$proxy['user'];.if.(isset($prox
690e0 79 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 2e 3d 20 27 3a 27 20 2e 20 24 70 72 y['pass'])).{.$auth..=.':'...$pr
69100 6f 78 79 5b 27 70 61 73 73 27 5d 3b 0a 7d 0a 24 61 75 74 68 20 3d 20 62 61 73 65 36 34 5f 65 6e oxy['pass'];.}.$auth.=.base64_en
69120 63 6f 64 65 28 24 61 75 74 68 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 64 65 66 61 75 code($auth);....if.(isset($defau
69140 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a ltOptions['http']['header'])).{.
69160 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 if.(is_string($defaultOptions['h
69180 74 74 70 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 ttp']['header'])).{.$defaultOpti
691a0 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 61 79 28 24 64 ons['http']['header'].=.array($d
691c0 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 efaultOptions['http']['header'])
691e0 3b 0a 7d 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 ;.}.$defaultOptions['http']['hea
69200 64 65 72 27 5d 5b 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 der'][].=."Proxy-Authorization:.
69220 42 61 73 69 63 20 7b 24 61 75 74 68 7d 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 70 74 69 6f 6e Basic.{$auth}";.}.else.{.$option
69240 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 61 79 28 22 50 72 6f s['http']['header'].=.array("Pro
69260 78 79 2d 41 75 74 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 22 xy-Authorization:.Basic.{$auth}"
69280 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 );.}.}.}..$options.=.array_repla
692a0 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 4f ce_recursive($options,.$defaultO
692c0 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 ptions);..if.(isset($options['ht
692e0 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 tp']['header'])).{.$options['htt
69300 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 73 65 6c 66 3a 3a 66 69 78 48 74 74 70 48 65 61 p']['header'].=.self::fixHttpHea
69320 64 65 72 46 69 65 6c 64 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 derField($options['http']['heade
69340 72 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 63 r']);.}..return.stream_context_c
69360 72 65 61 74 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d 73 29 3b reate($options,.$defaultParams);
69380 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e .}............private.static.fun
693a0 63 74 69 6f 6e 20 66 69 78 48 74 74 70 48 65 61 64 65 72 46 69 65 6c 64 28 24 68 65 61 64 65 72 ction.fixHttpHeaderField($header
693c0 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 68 65 61 64 65 72 29 29 20 7b 0a 24 68 ).{.if.(!is_array($header)).{.$h
693e0 65 61 64 65 72 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 2c 20 24 68 65 61 64 65 72 29 eader.=.explode("\r\n",.$header)
69400 3b 0a 7d 0a 75 61 73 6f 72 74 28 24 68 65 61 64 65 72 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 65 ;.}.uasort($header,.function.($e
69420 6c 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6e 74 65 6e l).{.return.preg_match('{^conten
69440 74 2d 74 79 70 65 7d 69 27 2c 20 24 65 6c 29 20 3f 20 31 20 3a 20 2d 31 3b 0a 7d 29 3b 0a 0a 72 t-type}i',.$el).?.1.:.-1;.});..r
69460 65 74 75 72 6e 20 24 68 65 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a eturn.$header;.}.}.<?php........
69480 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 75 73 ....namespace.Composer\Util;..us
694a0 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 41 72 72 61 79 4c e.Composer\Package\Loader\ArrayL
694c0 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 65 5c 4c 6f 61 64 oader;.use.Composer\Package\Load
694e0 65 72 5c 56 61 6c 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 er\ValidatingArrayLoader;.use.Co
69500 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 49 6e 76 61 6c 69 64 50 61 63 mposer\Package\Loader\InvalidPac
69520 6b 61 67 65 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 kageException;.use.Composer\Json
69540 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 0a 75 73 65 20 43 6f \JsonValidationException;.use.Co
69560 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 6f 6d 70 6f mposer\IO\IOInterface;.use.Compo
69580 73 65 72 5c 4a 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 ser\Json\JsonFile;........class.
695a0 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a ConfigValidator.{.private.$io;..
695c0 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
695e0 74 65 72 66 61 63 65 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 terface.$io).{.$this->io.=.$io;.
69600 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 76 61 6c 69 64 61 }.........public.function.valida
69620 74 65 28 24 66 69 6c 65 29 0a 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 te($file).{.$errors.=.array();.$
69640 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 77 61 72 6e 69 6e publishErrors.=.array();.$warnin
69660 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 24 6c 61 78 56 61 6c 69 64 20 3d 20 66 61 6c gs.=.array();....$laxValid.=.fal
69680 73 65 3b 0a 24 76 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 se;.$valid.=.false;.try.{.$json.
696a0 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 =.new.JsonFile($file,.new.Remote
696c0 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 6d 61 6e 69 66 65 73 Filesystem($this->io));.$manifes
696e0 74 20 3d 20 24 6a 73 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 t.=.$json->read();..$json->valid
69700 61 74 65 53 63 68 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 ateSchema(JsonFile::LAX_SCHEMA);
69720 0a 24 6c 61 78 56 61 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 .$laxValid.=.true;.$json->valida
69740 74 65 53 63 68 65 6d 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 teSchema();.$valid.=.true;.}.cat
69760 63 68 20 28 4a 73 6f 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 ch.(JsonValidationException.$e).
69780 7b 0a 66 6f 72 65 61 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 {.foreach.($e->getErrors().as.$m
697a0 65 73 73 61 67 65 29 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 essage).{.if.($laxValid).{.$publ
697c0 69 73 68 45 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b ishErrors[].=.$message;.}.else.{
697e0 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 .$errors[].=.$message;.}.}.}.cat
69800 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 5b 5d 20 3d ch.(\Exception.$e).{.$errors[].=
69820 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 .$e->getMessage();..return.array
69840 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 ($errors,.$publishErrors,.$warni
69860 6e 67 73 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b ngs);.}....if.(!empty($manifest[
69880 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 6d 'license'])).{...if.(is_array($m
698a0 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 anifest['license'])).{.foreach.(
698c0 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 $manifest['license'].as.$key.=>.
698e0 24 6c 69 63 65 6e 73 65 29 20 7b 0a 69 66 20 28 27 70 72 6f 70 72 69 65 74 61 72 79 27 20 3d 3d $license).{.if.('proprietary'.==
69900 3d 20 24 6c 69 63 65 6e 73 65 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c =.$license).{.unset($manifest['l
69920 69 63 65 6e 73 65 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6c 69 63 65 6e 73 65 icense'][$key]);.}.}.}..$license
69940 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 Validator.=.new.SpdxLicenseIdent
69960 69 66 69 65 72 28 29 3b 0a 69 66 20 28 27 70 72 6f 70 72 69 65 74 61 72 79 27 20 21 3d 3d 20 24 ifier();.if.('proprietary'.!==.$
69980 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 26 26 20 61 72 72 61 79 28 29 20 21 manifest['license'].&&.array().!
699a0 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 26 26 20 21 24 6c 69 63 ==.$manifest['license'].&&.!$lic
699c0 65 6e 73 65 56 61 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 enseValidator->validate($manifes
699e0 74 5b 27 6c 69 63 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 t['license'])).{.$warnings[].=.s
69a00 70 72 69 6e 74 66 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 printf(.'License.%s.is.not.a.val
69a20 69 64 20 53 50 44 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 id.SPDX.license.identifier,.see.
69a40 68 74 74 70 3a 2f 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 http://www.spdx.org/licenses/.if
69a60 20 79 6f 75 20 75 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 63 65 6e 73 65 2e 27 0a 2e 22 5c 6e 49 .you.use.an.open.license.'.."\nI
69a80 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 73 20 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 2c f.the.software.is.closed-source,
69aa0 20 79 6f 75 20 6d 61 79 20 75 73 65 20 5c 22 70 72 6f 70 72 69 65 74 61 72 79 5c 22 20 61 73 20 .you.may.use.\"proprietary\".as.
69ac0 6c 69 63 65 6e 73 65 2e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 6d 61 6e 69 66 65 73 74 license.",.json_encode($manifest
69ae0 5b 27 6c 69 63 65 6e 73 65 27 5d 29 0a 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 77 61 72 6e ['license']).);.}.}.else.{.$warn
69b00 69 6e 67 73 5b 5d 20 3d 20 27 4e 6f 20 6c 69 63 65 6e 73 65 20 73 70 65 63 69 66 69 65 64 2c 20 ings[].=.'No.license.specified,.
69b20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 64 6f 20 73 6f 2e 20 46 6f 72 20 it.is.recommended.to.do.so..For.
69b40 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 20 73 6f 66 74 77 61 72 65 20 79 6f 75 20 6d 61 79 20 75 closed-source.software.you.may.u
69b60 73 65 20 22 70 72 6f 70 72 69 65 74 61 72 79 22 20 61 73 20 6c 69 63 65 6e 73 65 2e 27 3b 0a 7d se."proprietary".as.license.';.}
69b80 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 20 ..if.(!empty($manifest['name']).
69ba0 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 41 2d 5a 5d 7d 27 2c 20 24 6d 61 6e 69 66 65 &&.preg_match('{[A-Z]}',.$manife
69bc0 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 20 3d 20 70 72 st['name'])).{.$suggestName.=.pr
69be0 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 28 5b 61 2d 7a 5d 29 28 5b 41 2d 5a 5d 29 7c 28 eg_replace('{(?:([a-z])([A-Z])|(
69c00 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b 61 2d 7a 5d 29 29 7d 27 2c 20 27 5c 5c 31 5c 5c 33 2d 5c [A-Z])([A-Z][a-z]))}',.'\\1\\3-\
69c20 5c 32 5c 5c 34 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 73 75 67 \2\\4',.$manifest['name']);.$sug
69c40 67 65 73 74 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 75 67 67 65 73 74 4e 61 gestName.=.strtolower($suggestNa
69c60 6d 65 29 3b 0a 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 4e 61 me);..$warnings[].=.sprintf(.'Na
69c80 6d 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 62 65 73 74 20 me."%s".does.not.match.the.best.
69ca0 70 72 61 63 74 69 63 65 20 28 65 2e 67 2e 20 6c 6f 77 65 72 2d 63 61 73 65 64 2f 77 69 74 68 2d practice.(e.g..lower-cased/with-
69cc0 64 61 73 68 65 73 29 2e 20 57 65 20 73 75 67 67 65 73 74 20 75 73 69 6e 67 20 22 25 73 22 20 69 dashes)..We.suggest.using."%s".i
69ce0 6e 73 74 65 61 64 2e 20 41 73 20 73 75 63 68 20 79 6f 75 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 nstead..As.such.you.will.not.be.
69d00 61 62 6c 65 20 74 6f 20 73 75 62 6d 69 74 20 69 74 20 74 6f 20 50 61 63 6b 61 67 69 73 74 2e 27 able.to.submit.it.to.Packagist.'
69d20 2c 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 2c 0a 24 73 75 67 67 65 73 74 4e 61 6d ,.$manifest['name'],.$suggestNam
69d40 65 0a 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 e.);.}..try.{.$loader.=.new.Vali
69d60 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 datingArrayLoader(new.ArrayLoade
69d80 72 28 29 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 r());.if.(!isset($manifest['vers
69da0 69 6f 6e 27 5d 29 29 20 7b 0a 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d ion'])).{.$manifest['version'].=
69dc0 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 .'1.0.0';.}.if.(!isset($manifest
69de0 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 20 3d ['name'])).{.$manifest['name'].=
69e00 20 27 64 75 6d 6d 79 2f 64 75 6d 6d 79 27 3b 0a 7d 0a 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 .'dummy/dummy';.}.$loader->load(
69e20 24 6d 61 6e 69 66 65 73 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 49 6e 76 61 6c 69 64 50 61 63 6b $manifest);.}.catch.(InvalidPack
69e40 61 67 65 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 20 61 72 72 ageException.$e).{.$errors.=.arr
69e60 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 ay_merge($errors,.$e->getErrors(
69e80 29 29 3b 0a 7d 0a 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 ));.}..$warnings.=.array_merge($
69ea0 77 61 72 6e 69 6e 67 73 2c 20 24 6c 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 warnings,.$loader->getWarnings()
69ec0 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 );..return.array($errors,.$publi
69ee0 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a shErrors,.$warnings);.}.}.<?php.
69f00 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 55 74 ...........namespace.Composer\Ut
69f20 69 6c 3b 0a 0a 0a 0a 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 il;.......class.ErrorHandler.{..
69f40 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 69 6f 6e ..........public.static.function
69f60 20 68 61 6e 64 6c 65 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 .handle($level,.$message,.$file,
69f80 20 24 6c 69 6e 65 29 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 .$line).{...if.(!error_reporting
69fa0 28 29 29 20 7b 0a 72 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 ()).{.return;.}..if.(ini_get('xd
69fc0 65 62 75 67 2e 73 63 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 ebug.scream')).{.$message..=."\n
69fe0 5c 6e 57 61 72 6e 69 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 \nWarning:.You.have.xdebug.screa
6a000 6d 20 65 6e 61 62 6c 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 m.enabled,.the.warning.above.may
6a020 20 62 65 22 2e 0a 22 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 .be".."\na.legitimately.suppress
6a040 65 64 20 65 72 72 6f 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 ed.error.that.you.were.not.suppo
6a060 73 65 64 20 74 6f 20 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 sed.to.see.";.}..throw.new.\Erro
6a080 72 45 78 63 65 70 74 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 rException($message,.0,.$level,.
6a0a0 24 66 69 6c 65 2c 20 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 $file,.$line);.}.......public.st
6a0c0 61 74 69 63 20 66 75 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 atic.function.register().{.set_e
6a0e0 72 72 6f 72 5f 68 61 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 rror_handler(array(__CLASS__,.'h
6a100 61 6e 64 6c 65 27 29 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 andle'));.}.}.<?php............n
6a120 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 75 73 65 20 43 6f 6d amespace.Composer\Util;..use.Com
6a140 70 6f 73 65 72 5c 4a 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 poser\Json\JsonFile;........clas
6a160 73 20 53 70 64 78 4c 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 s.SpdxLicenseIdentifier.{....pri
6a180 76 61 74 65 20 24 69 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 vate.$identifiers;..public.funct
6a1a0 69 6f 6e 20 5f 5f 63 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 ion.__construct().{.$this->initI
6a1c0 64 65 6e 74 69 66 69 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 dentifiers();.}........public.fu
6a1e0 6e 63 74 69 6f 6e 20 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 nction.validate($license).{.if.(
6a200 69 73 5f 61 72 72 61 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 is_array($license)).{.$count.=.c
6a220 6f 75 6e 74 28 24 6c 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 ount($license);.if.($count.!==.c
6a240 6f 75 6e 74 28 61 72 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 ount(array_filter($license,.'is_
6a260 73 74 72 69 6e 67 27 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 string'))).{.throw.new.\InvalidA
6a280 72 67 75 6d 65 6e 74 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 rgumentException('Array.of.strin
6a2a0 67 73 20 65 78 70 65 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 gs.expected.');.}.$license.=.$co
6a2c0 75 6e 74 20 3e 20 31 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 unt.>.1.?.'('.implode('.or.',.$l
6a2e0 69 63 65 6e 73 65 29 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 icense).')'.:.(string).reset($li
6a300 63 65 6e 73 65 29 3b 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 cense);.}.if.(!is_string($licens
6a320 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
6a340 45 78 63 65 70 74 69 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 Exception(sprintf(.'Array.or.Str
6a360 69 6e 67 20 65 78 70 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 ing.expected,.%s.given.',.gettyp
6a380 65 28 24 6c 69 63 65 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 e($license).));.}..return.$this-
6a3a0 3e 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 65 29 3b >isValidLicenseString($license);
6a3c0 0a 7d 0a 0a 0a 0a 0a 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 .}.....private.function.initIden
6a3e0 74 69 66 69 65 72 73 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 tifiers().{.$jsonFile.=.new.Json
6a400 46 69 6c 65 28 5f 5f 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 File(__DIR__...'/../../../res/sp
6a420 64 78 2d 69 64 65 6e 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 dx-identifier.json');.$this->ide
6a440 6e 74 69 66 69 65 72 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 ntifiers.=.$jsonFile->read();.}.
6a460 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 56 61 6c 69 64 4c 69 ......private.function.isValidLi
6a480 63 65 6e 73 65 49 64 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 censeIdentifier($identifier).{.r
6a4a0 65 74 75 72 6e 20 69 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 eturn.in_array($identifier,.$thi
6a4c0 73 2d 3e 69 64 65 6e 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 s->identifiers);.}........privat
6a4e0 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 53 74 72 69 6e 67 28 e.function.isValidLicenseString(
6a500 24 6c 69 63 65 6e 73 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 $license).{.$tokens.=.array(.'po
6a520 27 20 3d 3e 20 27 5c 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 '.=>.'\(',.'pc'.=>.'\)',.'op'.=>
6a540 20 27 28 3f 3a 6f 72 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 .'(?:or|and)',.'lix'.=>.'(?:NONE
6a560 7c 4e 4f 41 53 53 45 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 |NOASSERTION)',.'lir'.=>.'Licens
6a580 65 52 65 66 2d 5c 64 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 eRef-\d+',.'lic'.=>.'[-+_.a-zA-Z
6a5a0 30 2d 39 5d 7b 33 2c 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 0-9]{3,}',.'ws'.=>.'\s+',.'_'.=>
6a5c0 20 27 2e 27 2c 0a 29 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 .'.',.);..$next.=.function.().us
6a5e0 65 20 28 24 6c 69 63 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 e.($license,.$tokens).{.static.$
6a600 6f 66 66 73 65 74 20 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 offset.=.0;..if.($offset.>=.strl
6a620 65 6e 28 24 6c 69 63 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 en($license)).{.return.null;.}..
6a640 66 6f 72 65 61 63 68 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 foreach.($tokens.as.$name.=>.$to
6a660 6b 65 6e 29 20 7b 0a 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 ken).{.if.(false.===.$r.=.preg_m
6a680 61 74 63 68 28 27 7b 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 atch('{'...$token...'}',.$licens
6a6a0 65 2c 20 24 6d 61 74 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 e,.$matches,.PREG_OFFSET_CAPTURE
6a6c0 2c 20 24 6f 66 66 73 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 ,.$offset)).{.throw.new.\Runtime
6a6e0 45 78 63 65 70 74 69 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 Exception('Pattern.for.token.%s.
6a700 66 61 69 6c 65 64 20 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 failed.(regex.error).',.$name);.
6a720 7d 0a 69 66 20 28 24 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 }.if.($r.===.0).{.continue;.}.if
6a740 20 28 24 6d 61 74 63 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 .($matches[0][1].!==.$offset).{.
6a760 63 6f 6e 74 69 6e 75 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 continue;.}.$offset.+=.strlen($m
6a780 61 74 63 68 65 73 5b 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 atches[0][0]);..return.array($na
6a7a0 6d 65 2c 20 24 6d 61 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 me,.$matches[0][0]);.}..throw.ne
6a7c0 77 20 5c 52 75 6e 74 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 w.\RuntimeException('At.least.th
6a7e0 65 20 6c 61 73 74 20 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 e.last.pattern.needs.to.match,.b
6a800 75 74 20 69 74 20 64 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 ut.it.did.not.(dot-match-all.is.
6a820 6d 69 73 73 69 6e 67 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 missing?).');.};..$open.=.0;.$re
6a840 71 75 69 72 65 20 3d 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 quire.=.1;.$lastop.=.null;..whil
6a860 65 20 28 6c 69 73 74 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 e.(list($token,.$string).=.$next
6a880 28 29 29 20 7b 0a 73 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 ()).{.switch.($token).{.case.'po
6a8a0 27 3a 0a 69 66 20 28 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 ':.if.($open.||.!$require).{.ret
6a8c0 75 72 6e 20 66 61 6c 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 urn.false;.}.$open.=.1;.break;.c
6a8e0 61 73 65 20 27 70 63 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 ase.'pc':.if.($open.!==.1.||.$re
6a900 71 75 69 72 65 20 7c 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 quire.||.!$lastop).{.return.fals
6a920 65 3b 0a 7d 0a 24 6f 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 e;.}.$open.=.2;.break;.case.'op'
6a940 3a 0a 69 66 20 28 24 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 :.if.($require.||.!$open).{.retu
6a960 72 6e 20 66 61 6c 73 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 rn.false;.}.$lastop.||.$lastop.=
6a980 20 24 73 74 72 69 6e 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 .$string;.if.($lastop.!==.$strin
6a9a0 67 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 3d 20 g).{.return.false;.}.$require.=.
6a9c0 31 3b 0a 62 72 65 61 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 1;.break;.case.'lix':.if.($open)
6a9e0 20 7b 0a 72 65 74 75 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 .{.return.false;.}.goto.lir;.cas
6aa00 65 20 27 6c 69 63 27 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 e.'lic':.if.(!$this->isValidLice
6aa20 6e 73 65 49 64 65 6e 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 nseIdentifier($string)).{.return
6aa40 20 66 61 6c 73 65 3b 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 .false;.}...case.'lir':.lir:.if.
6aa60 28 21 24 72 65 71 75 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 (!$require).{.return.false;.}.$r
6aa80 65 71 75 69 72 65 20 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 equire.=.0;.break;.case.'ws':.br
6aaa0 65 61 6b 3b 0a 63 61 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 eak;.case.'_':.return.false;.def
6aac0 61 75 6c 74 3a 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 ault:.throw.new.\RuntimeExceptio
6aae0 6e 28 73 70 72 69 6e 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 n(sprintf('Unparsed.token:.%s.',
6ab00 20 70 72 69 6e 74 5f 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 .print_r($token,.true)));.}.}..r
6ab20 65 74 75 72 6e 20 21 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 eturn.!($open.%.2.||.$require);.
6ab40 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
6ab60 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 49 4f 5c 49 omposer\Util;..use.Composer\IO\I
6ab80 4f 49 6e 74 65 72 66 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 OInterface;......class.Svn.{....
6aba0 70 72 6f 74 65 63 74 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 protected.$credentials;.....prot
6abc0 65 63 74 65 64 20 24 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 ected.$hasAuth;.....protected.$i
6abe0 6f 3b 0a 0a 0a 0a 0a 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 o;.....protected.$url;.....prote
6ac00 63 74 65 64 20 24 63 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 cted.$cacheCredentials.=.true;..
6ac20 0a 0a 0a 70 72 6f 74 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 ...protected.$process;.......pub
6ac40 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 75 72 6c 2c 20 49 lic.function.__construct($url,.I
6ac60 4f 49 6e 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 OInterface.$io,.ProcessExecutor.
6ac80 24 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 75 72 6c 20 3d 20 $process.=.null).{.$this->url.=.
6aca0 24 75 72 6c 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 70 72 $url;.$this->io.=.$io;.$this->pr
6acc0 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 73 73 45 ocess.=.$process.?:.new.ProcessE
6ace0 78 65 63 75 74 6f 72 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 xecutor;.}................public
6ad00 20 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 24 75 72 6c .function.execute($command,.$url
6ad20 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 6c 2c 20 24 76 65 ,.$cwd.=.null,.$path.=.null,.$ve
6ad40 72 62 6f 73 65 20 3d 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 rbose.=.false).{.$svnCommand.=.$
6ad60 74 68 69 73 2d 3e 67 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 this->getCommand($command,.$url,
6ad80 20 24 70 61 74 68 29 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 .$path);.$output.=.null;.$io.=.$
6ada0 74 68 69 73 2d 3e 69 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 this->io;.$handler.=.function.($
6adc0 74 79 70 65 2c 20 24 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 type,.$buffer).use.(&$output,.$i
6ade0 6f 2c 20 24 76 65 72 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 o,.$verbose).{.if.($type.!==.'ou
6ae00 74 27 29 20 7b 0a 72 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 t').{.return;.}.$output..=.$buff
6ae20 65 72 3b 0a 69 66 20 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 er;.if.($verbose).{.$io->write($
6ae40 62 75 66 66 65 72 2c 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 buffer,.false);.}.};.$status.=.$
6ae60 74 68 69 73 2d 3e 70 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 this->process->execute($svnComma
6ae80 6e 64 2c 20 24 68 61 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 nd,.$handler,.$cwd);.if.(0.===.$
6aea0 73 74 61 74 75 73 29 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 status).{.return.$output;.}..if.
6aec0 28 65 6d 70 74 79 28 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 (empty($output)).{.$output.=.$th
6aee0 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 3b 0a 7d is->process->getErrorOutput();.}
6af00 0a 0a 0a 20 69 66 20 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 ....if.(false.===.stripos($outpu
6af20 74 2c 20 27 43 6f 75 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 t,.'Could.not.authenticate.to.se
6af40 72 76 65 72 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 45 78 63 rver:')).{.throw.new.\RuntimeExc
6af60 65 70 74 69 6f 6e 28 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 eption($output);.}....if.(!$this
6af80 2d 3e 69 6f 2d 3e 69 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 ->io->isInteractive()).{.throw.n
6afa0 65 77 20 5c 52 75 6e 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 ew.\RuntimeException(.'can.not.a
6afc0 73 6b 20 66 6f 72 20 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 sk.for.authentication.in.non.int
6afe0 65 72 61 63 74 69 76 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 eractive.mode.('.$output.')'.);.
6b000 7d 0a 0a 0a 20 0a 0a 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 }........if.(!$this->hasAuth()).
6b020 7b 0a 24 74 68 69 73 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 {.$this->doAuthDance();....retur
6b040 6e 20 24 74 68 69 73 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 n.$this->execute($command,.$url,
6b060 20 24 63 77 64 2c 20 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 .$cwd,.$path,.$verbose);.}..thro
6b080 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 77 72 6f 6e 67 20 w.new.\RuntimeException(.'wrong.
6b0a0 63 72 65 64 65 6e 74 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 credentials.provided.('.$output.
6b0c0 27 29 27 0a 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 ')'.);.}.......protected.functio
6b0e0 6e 20 64 6f 41 75 74 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 n.doAuthDance().{.$this->io->wri
6b100 74 65 28 22 54 68 65 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 te("The.Subversion.server.({$thi
6b120 73 2d 3e 75 72 6c 7d 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 s->url}).requested.credentials:"
6b140 29 3b 0a 0a 24 74 68 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 );..$this->hasAuth.=.true;.$this
6b160 2d 3e 63 72 65 64 65 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 ->credentials['username'].=.$thi
6b180 73 2d 3e 69 6f 2d 3e 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 s->io->ask("Username:.");.$this-
6b1a0 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 74 68 69 73 >credentials['password'].=.$this
6b1c0 2d 3e 69 6f 2d 3e 61 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 ->io->askAndHideAnswer("Password
6b1e0 3a 20 22 29 3b 0a 0a 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 :.");..$this->cacheCredentials.=
6b200 20 24 74 68 69 73 2d 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 .$this->io->askConfirmation("Sho
6b220 75 6c 64 20 53 75 62 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 uld.Subversion.cache.these.crede
6b240 6e 74 69 61 6c 73 3f 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 ntials?.(yes/no).",.true);..retu
6b260 72 6e 20 24 74 68 69 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 rn.$this;.}...........protected.
6b280 66 75 6e 63 74 69 6f 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 function.getCommand($cmd,.$url,.
6b2a0 24 70 61 74 68 20 3d 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 $path.=.null).{.$cmd.=.sprintf('
6b2c0 25 73 20 25 73 25 73 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 %s.%s%s.%s',.$cmd,.'--non-intera
6b2e0 63 74 69 76 65 20 27 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 ctive.',.$this->getCredentialStr
6b300 69 6e 67 28 29 2c 0a 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 ing(),.escapeshellarg($url).);..
6b320 69 66 20 28 24 70 61 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 if.($path).{.$cmd..=.'.'...escap
6b340 65 73 68 65 6c 6c 61 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 eshellarg($path);.}..return.$cmd
6b360 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 67 ;.}.........protected.function.g
6b380 65 74 43 72 65 64 65 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 etCredentialString().{.if.(!$thi
6b3a0 73 2d 3e 68 61 73 41 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 s->hasAuth()).{.return.'';.}..re
6b3c0 74 75 72 6e 20 73 70 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 turn.sprintf(.'.%s--username.%s.
6b3e0 2d 2d 70 61 73 73 77 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 --password.%s.',.$this->getAuthC
6b400 61 63 68 65 28 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 ache(),.escapeshellarg($this->ge
6b420 74 55 73 65 72 6e 61 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 tUsername()),.escapeshellarg($th
6b440 69 73 2d 3e 67 65 74 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 is->getPassword()).);.}........p
6b460 72 6f 74 65 63 74 65 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 rotected.function.getPassword().
6b480 7b 0a 69 66 20 28 24 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 {.if.($this->credentials.===.nul
6b4a0 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 6e 28 22 l).{.throw.new.\LogicException("
6b4c0 4e 6f 20 73 76 6e 20 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 No.svn.auth.detected.");.}..retu
6b4e0 72 6e 20 69 73 73 65 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 rn.isset($this->credentials['pas
6b500 73 77 6f 72 64 27 5d 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 sword']).?.$this->credentials['p
6b520 61 73 73 77 6f 72 64 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 assword'].:.'';.}........protect
6b540 65 64 20 66 75 6e 63 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 ed.function.getUsername().{.if.(
6b560 24 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 $this->credentials.===.null).{.t
6b580 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 22 4e 6f 20 73 76 6e hrow.new.\LogicException("No.svn
6b5a0 20 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 24 74 68 .auth.detected.");.}..return.$th
6b5c0 69 73 2d 3e 63 72 65 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 is->credentials['username'];.}..
6b5e0 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 41 75 74 68 28 .....protected.function.hasAuth(
6b600 29 0a 7b 0a 69 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 ).{.if.(null.!==.$this->hasAuth)
6b620 20 7b 0a 72 65 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 .{.return.$this->hasAuth;.}..$ur
6b640 69 20 3d 20 70 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 i.=.parse_url($this->url);.if.(e
6b660 6d 70 74 79 28 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 mpty($uri['user'])).{.return.$th
6b680 69 73 2d 3e 68 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 is->hasAuth.=.false;.}..$this->c
6b6a0 72 65 64 65 6e 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 redentials['username'].=.$uri['u
6b6c0 73 65 72 27 5d 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 ser'];.if.(!empty($uri['pass']))
6b6e0 20 7b 0a 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 .{.$this->credentials['password'
6b700 5d 20 3d 20 24 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 ].=.$uri['pass'];.}..return.$thi
6b720 73 2d 3e 68 61 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 s->hasAuth.=.true;.}.......prote
6b740 63 74 65 64 20 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 cted.function.getAuthCache().{.r
6b760 65 74 75 72 6e 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 eturn.$this->cacheCredentials.?.
6b780 27 27 20 3a 20 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 ''.:.'--no-auth-cache.';.}.}.<?p
6b7a0 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
6b7c0 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b ;..use.Composer\Package\RootPack
6b7e0 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 6b 61 ageInterface;.use.Composer\Packa
6b800 67 65 5c 4c 6f 63 6b 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 ge\Locker;.use.Composer\Reposito
6b820 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 6d 70 6f 73 ry\RepositoryManager;.use.Compos
6b840 65 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 er\Installer\InstallationManager
6b860 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
6b880 61 64 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 adManager;.use.Composer\Script\E
6b8a0 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 41 75 74 ventDispatcher;.use.Composer\Aut
6b8c0 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 63 6c oload\AutoloadGenerator;......cl
6b8e0 61 73 73 20 43 6f 6d 70 6f 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 56 45 52 53 49 4f 4e 20 3d 20 27 ass.Composer.{.const.VERSION.=.'
6b900 31 2e 30 2e 30 2d 61 6c 70 68 61 37 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 1.0.0-alpha7';.....private.$pack
6b920 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 0a 0a 70 72 age;.....private.$locker;.....pr
6b940 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 0a 0a 70 72 ivate.$repositoryManager;.....pr
6b960 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 70 72 69 76 ivate.$downloadManager;.....priv
6b980 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 0a 0a 70 72 ate.$installationManager;.....pr
6b9a0 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 76 65 6e ivate.$config;.....private.$even
6b9c0 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 6c 6f tDispatcher;.....private.$autolo
6b9e0 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f adGenerator;......public.functio
6ba00 6e 20 73 65 74 50 61 63 6b 61 67 65 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 n.setPackage(RootPackageInterfac
6ba20 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 20 24 e.$package).{.$this->package.=.$
6ba40 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 20 67 package;.}.....public.function.g
6ba60 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 63 6b etPackage().{.return.$this->pack
6ba80 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 43 6f age;.}.....public.function.setCo
6baa0 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 63 6f nfig(Config.$config).{.$this->co
6bac0 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 75 6e nfig.=.$config;.}.....public.fun
6bae0 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 69 73 ction.getConfig().{.return.$this
6bb00 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 6e 20 ->config;.}.....public.function.
6bb20 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 68 69 setLocker(Locker.$locker).{.$thi
6bb40 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 6c 69 s->locker.=.$locker;.}.....publi
6bb60 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 6e 20 c.function.getLocker().{.return.
6bb80 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 6e 63 $this->locker;.}.....public.func
6bba0 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 73 69 tion.setRepositoryManager(Reposi
6bbc0 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 3e 72 toryManager.$manager).{.$this->r
6bbe0 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 0a 0a epositoryManager.=.$manager;.}..
6bc00 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 79 ...public.function.getRepository
6bc20 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 73 69 Manager().{.return.$this->reposi
6bc40 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 74 69 toryManager;.}.....public.functi
6bc60 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 4d 61 on.setDownloadManager(DownloadMa
6bc80 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 6f 61 nager.$manager).{.$this->downloa
6bca0 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 6c 69 dManager.=.$manager;.}.....publi
6bcc0 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 29 0a c.function.getDownloadManager().
6bce0 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 72 3b {.return.$this->downloadManager;
6bd00 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 61 6c .}.....public.function.setInstal
6bd20 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 67 65 lationManager(InstallationManage
6bd40 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 69 6f r.$manager).{.$this->installatio
6bd60 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 6c 69 nManager.=.$manager;.}.....publi
6bd80 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 67 65 c.function.getInstallationManage
6bda0 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 6f 6e r().{.return.$this->installation
6bdc0 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 74 69 6f 6e 20 73 Manager;.}.....public.function.s
6bde0 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 etEventDispatcher(EventDispatche
6be00 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 76 65 r.$eventDispatcher).{.$this->eve
6be20 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b ntDispatcher.=.$eventDispatcher;
6be40 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 76 65 6e 74 44 .}.....public.function.getEventD
6be60 69 73 70 61 74 63 68 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 76 65 6e ispatcher().{.return.$this->even
6be80 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tDispatcher;.}.....public.functi
6bea0 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 41 75 74 6f 6c 6f 61 64 on.setAutoloadGenerator(Autoload
6bec0 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 29 0a 7b 0a Generator.$autoloadGenerator).{.
6bee0 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 6f $this->autoloadGenerator.=.$auto
6bf00 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 loadGenerator;.}.....public.func
6bf20 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 tion.getAutoloadGenerator().{.re
6bf40 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d turn.$this->autoloadGenerator;.}
6bf60 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
6bf80 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4d 61 6e 69 70 mposer\Json;.....class.JsonManip
6bfa0 75 6c 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 52 45 43 55 52 53 45 ulator.{.private.static.$RECURSE
6bfc0 5f 42 4c 4f 43 4b 53 20 3d 20 27 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a _BLOCKS.=.'(?:[^{}]*|\{(?:[^{}]*
6bfe0 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 5b 5e 7b 7d 5d |\{(?:[^{}]*|\{(?:[^{}]*|\{[^{}]
6c000 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 27 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f *\})*\})*\})*\})*';..private.$co
6c020 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
6c040 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
6c060 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.=
6c080 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
6c0a0 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)).{
6c0c0 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
6c0e0 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
6c100 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.=
6c120 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 73 2c 20 22 5c 72 .false.!==.strpos($contents,."\r
6c140 5c 6e 22 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 \n").?."\r\n":."\n";.$this->cont
6c160 65 6e 74 73 20 3d 20 24 63 6f 6e 74 65 6e 74 73 20 3d 3d 3d 20 27 7b 7d 27 20 3f 20 27 7b 27 20 ents.=.$contents.===.'{}'.?.'{'.
6c180 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 20 3a 20 24 63 6f 6e 74 65 6e ..$this->newline...'}'.:.$conten
6c1a0 74 73 3b 0a 24 74 68 69 73 2d 3e 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 3b 0a 7d 0a ts;.$this->detectIndenting();.}.
6c1c0 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 73 28 29 0a 7b .public.function.getContents().{
6c1e0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 2e 20 24 74 68 69 73 2d .return.$this->contents...$this-
6c200 3e 6e 65 77 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 61 64 64 >newline;.}..public.function.add
6c220 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e Link($type,.$package,.$constrain
6c240 74 29 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 74 79 70 t).{...if.(!preg_match('#"'.$typ
6c260 65 2e 27 22 3a 5c 73 2a 5c 7b 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 e.'":\s*\{#',.$this->contents)).
6c280 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 79 28 24 74 79 70 65 2c 20 24 74 68 69 73 {.$this->addMainKey($type,.$this
6c2a0 2d 3e 66 6f 72 6d 61 74 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 ->format(array($package.=>.$cons
6c2c0 74 72 61 69 6e 74 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 6e traint)));..return.true;.}..$lin
6c2e0 6b 73 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 74 79 70 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 ksRegex.=.'#("'.$type.'":\s*\{)(
6c300 5b 5e 7d 5d 2b 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 [^}]+)(\})#s';.if.(!preg_match($
6c320 6c 69 6e 6b 73 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 linksRegex,.$this->contents,.$ma
6c340 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 20 tch)).{.return.false;.}..$links.
6c360 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 70 61 63 6b 61 67 65 52 65 67 65 78 20 3d 20 73 74 72 =.$match[2];.$packageRegex.=.str
6c380 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5c 5c 5c 5c 3f 2f 27 2c 20 70 72 65 67 5f 71 75 6f _replace('/',.'\\\\?/',.preg_quo
6c3a0 74 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 te($package));....if.(preg_match
6c3c0 28 27 7b 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 78 2e 27 22 5c 73 2a 3a 7d 69 27 2c 20 24 ('{"'.$packageRegex.'"\s*:}i',.$
6c3e0 6c 69 6e 6b 73 29 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 links)).{.$links.=.preg_replace(
6c400 27 7b 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 78 2e 27 22 28 5c 73 2a 3a 5c 73 2a 29 22 5b '{"'.$packageRegex.'"(\s*:\s*)"[
6c420 5e 22 5d 2b 22 7d 69 27 2c 20 61 64 64 63 73 6c 61 73 68 65 73 28 4a 73 6f 6e 46 69 6c 65 3a 3a ^"]+"}i',.addcslashes(JsonFile::
6c440 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 24 7b 31 7d 22 27 2e 24 63 6f 6e 73 74 72 encode($package).'${1}"'.$constr
6c460 61 69 6e 74 2e 27 22 27 2c 20 27 5c 5c 27 29 2c 20 24 6c 69 6e 6b 73 29 3b 0a 7d 20 65 6c 73 65 aint.'"',.'\\'),.$links);.}.else
6c480 69 66 20 28 70 72 65 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 if.(preg_match('#[^\s](\s*)$#',.
6c4a0 24 6c 69 6e 6b 73 2c 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 $links,.$match)).{...$links.=.pr
6c4c0 65 67 5f 72 65 70 6c 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 eg_replace(.'#'.$match[1].'$#',.
6c4e0 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 addcslashes(','...$this->newline
6c500 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 3e 69 6e 64 65 6e 74 ...$this->indent...$this->indent
6c520 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 61 67 65 29 2e 27 3a ...JsonFile::encode($package).':
6c540 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 74 72 61 69 6e 74 29 .'.JsonFile::encode($constraint)
6c560 20 2e 20 24 6d 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d ...$match[1],.'\\'),.$links.);.}
6c580 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 6e 65 77 6c 69 6e .else.{...$links.=.$this->newlin
6c5a0 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 3e 69 6e 64 65 6e e...$this->indent...$this->inden
6c5c0 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 61 67 65 29 2e 27 t...JsonFile::encode($package).'
6c5e0 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 74 72 61 69 6e 74 :.'.JsonFile::encode($constraint
6c600 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 65 6e 74 73 20 3d )...$links;.}..$this->contents.=
6c620 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 20 61 64 64 63 73 .preg_replace($linksRegex,.addcs
6c640 6c 61 73 68 65 73 28 27 24 7b 31 7d 27 2e 24 6c 69 6e 6b 73 2e 27 24 33 27 2c 20 27 5c 5c 27 29 lashes('${1}'.$links.'$3',.'\\')
6c660 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 ,.$this->contents);..return.true
6c680 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f ;.}..public.function.addReposito
6c6a0 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ry($name,.$config).{.return.$thi
6c6c0 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 20 24 6e s->addSubNode('repositories',.$n
6c6e0 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ame,.$config);.}..public.functio
6c700 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 n.removeRepository($name).{.retu
6c720 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 rn.$this->removeSubNode('reposit
6c740 6f 72 69 65 73 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ories',.$name);.}..public.functi
6c760 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 on.addConfigSetting($name,.$valu
6c780 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 27 63 e).{.return.$this->addSubNode('c
6c7a0 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 onfig',.$name,.$value);.}..publi
6c7c0 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 c.function.removeConfigSetting($
6c7e0 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e name).{.return.$this->removeSubN
6c800 6f 64 65 28 27 63 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ode('config',.$name);.}..public.
6c820 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 function.addSubNode($mainNode,.$
6c840 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 name,.$value).{...if.(!preg_matc
6c860 68 28 27 23 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 23 27 2c 20 24 74 68 h('#"'.$mainNode.'":\s*\{#',.$th
6c880 69 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 is->contents)).{.$this->addMainK
6c8a0 65 79 28 27 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 ey(''.$mainNode.'',.$this->forma
6c8c0 74 28 61 72 72 61 79 28 24 6e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 29 29 3b 0a 0a 72 65 74 t(array($name.=>.$value)));..ret
6c8e0 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 73 75 62 4e 61 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 urn.true;.}..$subName.=.null;.if
6c900 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2e 27 29 29 20 .(false.!==.strpos($name,.'.')).
6c920 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 29 20 3d 20 65 78 70 6c 6f 64 {.list($name,.$subName).=.explod
6c940 65 28 27 2e 27 2c 20 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 e('.',.$name,.2);.}....$nodeRege
6c960 78 20 3d 20 27 23 28 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 27 2e x.=.'#("'.$mainNode.'":\s*\{)('.
6c980 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 29 28 5c 7d 29 23 73 27 3b self::$RECURSE_BLOCKS.')(\})#s';
6c9a0 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 24 74 68 .if.(!preg_match($nodeRegex,.$th
6c9c0 69 73 2d 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 is->contents,.$match)).{.return.
6c9e0 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b false;.}..$children.=.$match[2];
6ca00 0a 0a 0a 20 69 66 20 28 21 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 ....if.(!json_decode('{'.$childr
6ca20 65 6e 2e 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 61 en.'}')).{.return.false;.}..$tha
6ca40 74 20 3d 20 24 74 68 69 73 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 t.=.$this;....if.(preg_match('{(
6ca60 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 29 28 "'.preg_quote($name).'"\s*:\s*)(
6ca80 5b 30 2d 39 2e 5d 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 61 6c 73 65 7c 22 5b 5e 22 5d 2b 22 7c [0-9.]+|null|true|false|"[^"]+"|
6caa0 5c 5b 5b 5e 5c 5d 5d 2a 5c 5d 7c 5c 7b 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c \[[^\]]*\]|\{'.self::$RECURSE_BL
6cac0 4f 43 4b 53 2e 27 5c 7d 29 28 2c 3f 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 OCKS.'\})(,?)}',.$children,.$mat
6cae0 63 68 65 73 29 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 ches)).{.$children.=.preg_replac
6cb00 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d e_callback('{("'.preg_quote($nam
6cb20 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 29 28 5b 30 2d 39 2e 5d 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c e).'"\s*:\s*)([0-9.]+|null|true|
6cb40 66 61 6c 73 65 7c 22 5b 5e 22 5d 2b 22 7c 5c 5b 5b 5e 5c 5d 5d 2a 5c 5d 7c 5c 7b 27 2e 73 65 6c false|"[^"]+"|\[[^\]]*\]|\{'.sel
6cb60 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 5c 7d 29 28 2c 3f 29 7d 27 2c 20 66 f::$RECURSE_BLOCKS.'\})(,?)}',.f
6cb80 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 65 20 28 24 6e 61 6d 65 2c 20 24 unction.($matches).use.($name,.$
6cba0 73 75 62 4e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 24 74 68 61 74 29 20 7b 0a 69 66 20 28 24 73 subName,.$value,.$that).{.if.($s
6cbc0 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c 20 3d 20 6a 73 6f ubName.!==.null).{.$curVal.=.jso
6cbe0 6e 5f 64 65 63 6f 64 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 74 72 75 65 29 3b 0a 24 63 75 n_decode($matches[2],.true);.$cu
6cc00 72 56 61 6c 5b 24 73 75 62 4e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 24 76 61 6c 75 65 20 rVal[$subName].=.$value;.$value.
6cc20 3d 20 24 63 75 72 56 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d =.$curVal;.}..return.$matches[1]
6cc40 20 2e 20 24 74 68 61 74 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e 20 24 6d ...$that->format($value,.1)...$m
6cc60 61 74 63 68 65 73 5b 33 5d 3b 0a 7d 2c 20 24 63 68 69 6c 64 72 65 6e 29 3b 0a 7d 20 65 6c 73 65 atches[3];.},.$children);.}.else
6cc80 69 66 20 28 70 72 65 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 if.(preg_match('#[^\s](\s*)$#',.
6cca0 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 $children,.$match)).{.if.($subNa
6ccc0 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 28 24 73 me.!==.null).{.$value.=.array($s
6cce0 75 62 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 20 24 63 68 69 6c 64 72 65 ubName.=>.$value);.}....$childre
6cd00 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e n.=.preg_replace(.'#'.$match[1].
6cd20 27 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e '$#',.addcslashes(','...$this->n
6cd40 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 3e ewline...$this->indent...$this->
6cd60 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 6e 61 6d 65 29 indent...JsonFile::encode($name)
6cd80 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e .':.'.$this->format($value,.1)..
6cda0 20 24 6d 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 63 68 69 6c 64 72 65 6e 0a 29 3b 0a .$match[1],.'\\'),.$children.);.
6cdc0 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 }.else.{.if.($subName.!==.null).
6cde0 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 28 24 73 75 62 4e 61 6d 65 20 3d 3e 20 24 76 61 {.$value.=.array($subName.=>.$va
6ce00 6c 75 65 29 3b 0a 7d 0a 0a 0a 20 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 65 lue);.}....$children.=.$this->ne
6ce20 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 3e 69 wline...$this->indent...$this->i
6ce40 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 6e 61 6d 65 29 2e ndent...JsonFile::encode($name).
6ce60 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e 20 ':.'.$this->format($value,.1)...
6ce80 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 $children;.}..$this->contents.=.
6cea0 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 61 64 64 63 73 6c 61 preg_replace($nodeRegex,.addcsla
6cec0 73 68 65 73 28 27 24 7b 31 7d 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 24 33 27 2c 20 27 5c 5c 27 shes('${1}'.$children.'$3',.'\\'
6cee0 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 ),.$this->contents);..return.tru
6cf00 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 53 75 62 4e e;.}..public.function.removeSubN
6cf20 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 0a 20 69 66 20 28 21 70 ode($mainNode,.$name).{...if.(!p
6cf40 72 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c reg_match('#"'.$mainNode.'":\s*\
6cf60 7b 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 {#',.$this->contents)).{.return.
6cf80 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 true;.}....if.(preg_match('#"'.$
6cfa0 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 5c 73 2a 5c 7d 23 73 27 2c 20 24 74 68 69 73 mainNode.'":\s*\{\s*\}#s',.$this
6cfc0 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a ->contents)).{.return.true;.}...
6cfe0 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 .$nodeRegex.=.'#("'.$mainNode.'"
6d000 3a 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e :\s*\{)('.self::$RECURSE_BLOCKS.
6d020 27 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 6e 6f 64 65 ')(\})#s';.if.(!preg_match($node
6d040 52 65 67 65 78 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 Regex,.$this->contents,.$match))
6d060 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 .{.return.false;.}..$children.=.
6d080 24 6d 61 74 63 68 5b 32 5d 3b 0a 0a 0a 20 69 66 20 28 21 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 $match[2];....if.(!json_decode('
6d0a0 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 {'.$children.'}')).{.return.fals
6d0c0 65 3b 0a 7d 0a 0a 24 73 75 62 4e 61 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 66 61 6c 73 65 e;.}..$subName.=.null;.if.(false
6d0e0 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2e 27 29 29 20 7b 0a 6c 69 73 74 28 .!==.strpos($name,.'.')).{.list(
6d100 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 $name,.$subName).=.explode('.',.
6d120 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 $name,.2);.}....if.(preg_match('
6d140 7b 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 7d 69 27 2c {"'.preg_quote($name).'"\s*:}i',
6d160 20 24 63 68 69 6c 64 72 65 6e 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 5f .$children)).{...if.(preg_match_
6d180 61 6c 6c 28 27 7b 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a all('{"'.preg_quote($name).'"\s*
6d1a0 3a 5c 73 2a 28 3f 3a 5b 30 2d 39 2e 5d 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 61 6c 73 65 7c 22 :\s*(?:[0-9.]+|null|true|false|"
6d1c0 5b 5e 22 5d 2b 22 7c 5c 5b 5b 5e 5c 5d 5d 2a 5c 5d 7c 5c 7b 27 2e 73 65 6c 66 3a 3a 24 52 45 43 [^"]+"|\[[^\]]*\]|\{'.self::$REC
6d1e0 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 5c 7d 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 URSE_BLOCKS.'\})}',.$children,.$
6d200 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d 20 27 27 3b 0a 66 6f 72 matches)).{.$bestMatch.=.'';.for
6d220 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 69 each.($matches[0].as.$match).{.i
6d240 66 20 28 73 74 72 6c 65 6e 28 24 62 65 73 74 4d 61 74 63 68 29 20 3c 20 73 74 72 6c 65 6e 28 24 f.(strlen($bestMatch).<.strlen($
6d260 6d 61 74 63 68 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d 20 24 6d 61 74 63 68 3b 0a 7d match)).{.$bestMatch.=.$match;.}
6d280 0a 7d 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 .}.$childrenClean.=.preg_replace
6d2a0 28 27 7b 2c 5c 73 2a 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 74 4d 61 74 63 68 29 2e ('{,\s*'.preg_quote($bestMatch).
6d2c0 27 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 '}i',.'',.$children,.-1,.$count)
6d2e0 3b 0a 69 66 20 28 31 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 43 ;.if.(1.!==.$count).{.$childrenC
6d300 6c 65 61 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 27 2e 70 72 65 67 5f 71 75 6f lean.=.preg_replace('{'.preg_quo
6d320 74 65 28 24 62 65 73 74 4d 61 74 63 68 29 2e 27 5c 73 2a 2c 3f 5c 73 2a 7d 69 27 2c 20 27 27 2c te($bestMatch).'\s*,?\s*}i',.'',
6d340 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 .$childrenClean,.-1,.$count);.if
6d360 20 28 31 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a .(1.!==.$count).{.return.false;.
6d380 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 74 72 69 6d 28 24 63 68 69 6c 64 72 65 6e 43 6c }.}.}.}....if.(!trim($childrenCl
6d3a0 65 61 6e 29 29 20 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 ean)).{.$this->contents.=.preg_r
6d3c0 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 27 24 31 27 2e 24 74 68 69 73 2d 3e 6e eplace($nodeRegex,.'$1'.$this->n
6d3e0 65 77 6c 69 6e 65 2e 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2e 27 7d 27 2c 20 24 74 68 69 73 2d ewline.$this->indent.'}',.$this-
6d400 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 0a 20 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 >contents);....if.($subName.!==.
6d420 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b null).{.$curVal.=.json_decode('{
6d440 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 2c 20 74 72 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 '.$children.'}',.true);.unset($c
6d460 75 72 56 61 6c 5b 24 6e 61 6d 65 5d 5b 24 73 75 62 4e 61 6d 65 5d 29 3b 0a 24 74 68 69 73 2d 3e urVal[$name][$subName]);.$this->
6d480 61 64 64 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 2c 20 24 63 75 addSubNode($mainNode,.$name,.$cu
6d4a0 72 56 61 6c 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a rVal[$name]);.}..return.true;.}.
6d4c0 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 .$that.=.$this;.$this->contents.
6d4e0 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 24 6e 6f 64 65 52 65 67 =.preg_replace_callback($nodeReg
6d500 65 78 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 65 20 28 24 74 68 ex,.function.($matches).use.($th
6d520 61 74 2c 20 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 2c 20 24 63 68 69 6c 64 72 65 6e 43 6c at,.$name,.$subName,.$childrenCl
6d540 65 61 6e 29 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a ean).{.if.($subName.!==.null).{.
6d560 24 63 75 72 56 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 $curVal.=.json_decode('{'.$match
6d580 65 73 5b 32 5d 2e 27 7d 27 2c 20 74 72 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 75 72 56 61 6c 5b es[2].'}',.true);.unset($curVal[
6d5a0 24 6e 61 6d 65 5d 5b 24 73 75 62 4e 61 6d 65 5d 29 3b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 $name][$subName]);.$childrenClea
6d5c0 6e 20 3d 20 73 75 62 73 74 72 28 24 74 68 61 74 2d 3e 66 6f 72 6d 61 74 28 24 63 75 72 56 61 6c n.=.substr($that->format($curVal
6d5e0 2c 20 30 29 2c 20 31 2c 20 2d 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 ,.0),.1,.-1);.}..return.$matches
6d600 5b 31 5d 20 2e 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 2e 20 24 6d 61 74 63 68 65 73 5b [1]...$childrenClean...$matches[
6d620 33 5d 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 3];.},.$this->contents);..return
6d640 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 61 64 64 4d 61 69 .true;.}..public.function.addMai
6d660 6e 4b 65 79 28 24 6b 65 79 2c 20 24 63 6f 6e 74 65 6e 74 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f nKey($key,.$content).{.if.(preg_
6d680 6d 61 74 63 68 28 27 23 5b 5e 7b 5c 73 5d 28 5c 73 2a 29 5c 7d 24 23 27 2c 20 24 74 68 69 73 2d match('#[^{\s](\s*)\}$#',.$this-
6d6a0 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 63 6f 6e >contents,.$match)).{.$this->con
6d6c0 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 tents.=.preg_replace(.'#'.$match
6d6e0 5b 31 5d 2e 27 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 [1].'\}$#',.addcslashes(','...$t
6d700 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
6d720 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
6d740 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 20 27 5c ntent...$this->newline...'}',.'\
6d760 5c 27 29 2c 0a 24 74 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 \'),.$this->contents.);.}.else.{
6d780 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 28 .$this->contents.=.preg_replace(
6d7a0 0a 27 23 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 24 74 68 69 73 2d 3e 69 6e 64 .'#\}$#',.addcslashes($this->ind
6d7c0 65 6e 74 20 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 ent...JsonFile::encode($key)..':
6d7e0 20 27 2e 24 63 6f 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 .'.$content...$this->newline...'
6d800 7d 27 2c 20 27 5c 5c 27 29 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 7d 0a }',.'\\'),.$this->contents.);.}.
6d820 7d 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 64 61 74 61 2c }..public.function.format($data,
6d840 20 24 64 65 70 74 68 20 3d 20 30 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 .$depth.=.0).{.if.(is_array($dat
6d860 61 29 29 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 a)).{.reset($data);..if.(is_nume
6d880 72 69 63 28 6b 65 79 28 24 64 61 74 61 29 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 ric(key($data))).{.foreach.($dat
6d8a0 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d a.as.$key.=>.$val).{.$data[$key]
6d8c0 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 2c 20 24 64 65 70 74 68 20 2b 20 .=.$this->format($val,.$depth.+.
6d8e0 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 1);.}..return.'['.implode(',.',.
6d900 24 64 61 74 61 29 2e 27 5d 27 3b 0a 7d 0a 0a 24 6f 75 74 20 3d 20 27 7b 27 20 2e 20 24 74 68 69 $data).']';.}..$out.=.'{'...$thi
6d920 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 24 65 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f s->newline;.$elems.=.array();.fo
6d940 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a reach.($data.as.$key.=>.$val).{.
6d960 24 65 6c 65 6d 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 69 6e 64 $elems[].=.str_repeat($this->ind
6d980 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 32 29 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 ent,.$depth.+.2)...JsonFile::enc
6d9a0 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 ode($key)..':.'.$this->format($v
6d9c0 61 6c 2c 20 24 64 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 20 al,.$depth.+.1);.}..return.$out.
6d9e0 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 20 24 65 ..implode(','.$this->newline,.$e
6da00 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 73 74 72 5f 72 65 70 lems)...$this->newline...str_rep
6da20 65 61 74 28 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 31 29 20 2e eat($this->indent,.$depth.+.1)..
6da40 20 27 7d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 .'}';.}..return.JsonFile::encode
6da60 28 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 20 64 ($data);.}..protected.function.d
6da80 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 etectIndenting().{.if.(preg_matc
6daa0 68 28 27 7b 5e 28 5c 73 2b 29 22 7d 6d 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c h('{^(\s+)"}m',.$this->contents,
6dac0 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 3d 20 24 6d 61 74 .$match)).{.$this->indent.=.$mat
6dae0 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 3d 20 ch[1];.}.else.{.$this->indent.=.
6db00 27 20 20 20 20 27 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 '....';.}.}.}.<?php............n
6db20 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 75 73 65 20 43 6f 6d amespace.Composer\Json;..use.Com
6db40 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 poser\Composer;.use.JsonSchema\V
6db60 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 4a 73 6f 6e alidator;.use.Seld\JsonLint\Json
6db80 50 61 72 73 65 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 50 61 72 73 69 6e Parser;.use.Seld\JsonLint\Parsin
6dba0 67 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 gException;.use.Composer\Util\Re
6dbc0 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 moteFilesystem;.use.Composer\Dow
6dbe0 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 6e 3b 0a 0a 0a 0a 0a nloader\TransportException;.....
6dc00 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 46 69 6c 65 0a 7b 0a 63 6f 6e 73 74 20 4c 41 58 5f 53 43 ...class.JsonFile.{.const.LAX_SC
6dc20 48 45 4d 41 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 52 49 43 54 5f 53 43 48 45 4d 41 20 3d 20 HEMA.=.1;.const.STRICT_SCHEMA.=.
6dc40 32 3b 0a 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 2;..const.JSON_UNESCAPED_SLASHES
6dc60 20 3d 20 36 34 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3d .=.64;.const.JSON_PRETTY_PRINT.=
6dc80 20 31 32 38 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f .128;.const.JSON_UNESCAPED_UNICO
6dca0 44 45 20 3d 20 32 35 36 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 61 74 68 3b 0a 70 72 69 76 61 74 DE.=.256;..private.$path;.privat
6dcc0 65 20 24 72 66 73 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 e.$rfs;........public.function._
6dce0 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 _construct($path,.RemoteFilesyst
6dd00 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 em.$rfs.=.null).{.$this->path.=.
6dd20 24 70 61 74 68 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 66 73 20 26 26 20 70 72 65 $path;..if.(null.===.$rfs.&&.pre
6dd40 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 24 70 61 74 68 29 29 g_match('{^https?://}i',.$path))
6dd60 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
6dd80 65 70 74 69 6f 6e 28 27 68 74 74 70 20 75 72 6c 73 20 72 65 71 75 69 72 65 20 61 20 52 65 6d 6f eption('http.urls.require.a.Remo
6dda0 74 65 46 69 6c 65 73 79 73 74 65 6d 20 69 6e 73 74 61 6e 63 65 20 74 6f 20 62 65 20 70 61 73 73 teFilesystem.instance.to.be.pass
6ddc0 65 64 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a ed');.}.$this->rfs.=.$rfs;.}....
6dde0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 28 29 0a 7b 0a 72 65 74 .public.function.getPath().{.ret
6de00 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 urn.$this->path;.}.......public.
6de20 66 75 6e 63 74 69 6f 6e 20 65 78 69 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 5f 66 69 function.exists().{.return.is_fi
6de40 6c 65 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 le($this->path);.}.......public.
6de60 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 24 74 68 69 function.read().{.try.{.if.($thi
6de80 73 2d 3e 72 66 73 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 s->rfs).{.$json.=.$this->rfs->ge
6dea0 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 70 61 tContents($this->path,.$this->pa
6dec0 74 68 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c th,.false);.}.else.{.$json.=.fil
6dee0 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 7d e_get_contents($this->path);.}.}
6df00 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).{
6df20 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 24 65 2d .throw.new.\RuntimeException($e-
6df40 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 >getMessage(),.0,.$e);.}.catch.(
6df60 5c 45 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 \Exception.$e).{.throw.new.\Runt
6df80 69 6d 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 imeException('Could.not.read.'.$
6dfa0 74 68 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 this->path."\n\n".$e->getMessage
6dfc0 28 29 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 ());.}..return.static::parseJson
6dfe0 28 24 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 ($json,.$this->path);.}........p
6e000 75 62 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 ublic.function.write(array.$hash
6e020 2c 20 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 ,.$options.=.448).{.$dir.=.dirna
6e040 6d 65 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 me($this->path);.if.(!is_dir($di
6e060 72 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 29 29 20 7b 0a 74 r)).{.if.(file_exists($dir)).{.t
6e080 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 74 69 hrow.new.\UnexpectedValueExcepti
6e0a0 6f 6e 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 on(.$dir.'.exists.and.is.not.a.d
6e0c0 69 72 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 irectory.'.);.}.if.(!@mkdir($dir
6e0e0 2c 20 30 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 ,.0777,.true)).{.throw.new.\Unex
6e100 70 65 63 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 pectedValueException(.$dir.'.doe
6e120 73 20 6e 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 s.not.exist.and.could.not.be.cre
6e140 61 74 65 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 ated.'.);.}.}.file_put_contents(
6e160 24 74 68 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 $this->path,.static::encode($has
6e180 68 2c 20 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 h,.$options)..($options.&.self::
6e1a0 4a 53 4f 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 JSON_PRETTY_PRINT.?."\n".:.''));
6e1c0 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 76 61 6c 69 64 .}.........public.function.valid
6e1e0 61 74 65 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 ateSchema($schema.=.self::STRICT
6e200 5f 53 43 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 _SCHEMA).{.$content.=.file_get_c
6e220 6f 6e 74 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 ontents($this->path);.$data.=.js
6e240 6f 6e 5f 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 on_decode($content);..if.(null.=
6e260 3d 3d 20 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 ==.$data.&&.'null'.!==.$content)
6e280 20 7b 0a 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 .{.self::validateSyntax($content
6e2a0 2c 20 24 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 ,.$this->path);.}..$schemaFile.=
6e2c0 20 5f 5f 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 .__DIR__...'/../../../res/compos
6e2e0 65 72 2d 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 er-schema.json';.$schemaData.=.j
6e300 73 6f 6e 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 son_decode(file_get_contents($sc
6e320 68 65 6d 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 hemaFile));..if.($schema.===.sel
6e340 66 3a 3a 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 f::LAX_SCHEMA).{.$schemaData->ad
6e360 64 69 74 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 ditionalProperties.=.true;.$sche
6e380 6d 61 44 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 maData->properties->name->requir
6e3a0 65 64 20 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 ed.=.false;.$schemaData->propert
6e3c0 69 65 73 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 ies->description->required.=.fal
6e3e0 73 65 3b 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 se;.}..$validator.=.new.Validato
6e400 72 28 29 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 r();.$validator->check($data,.$s
6e420 63 68 65 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 chemaData);....if.(!$validator->
6e440 69 73 56 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 isValid()).{.$errors.=.array();.
6e460 66 6f 72 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 foreach.((array).$validator->get
6e480 45 72 72 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 Errors().as.$error).{.$errors[].
6e4a0 3d 20 28 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 =.($error['property'].?.$error['
6e4c0 70 72 6f 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 property'].'.:.'.:.'').$error['m
6e4e0 65 73 73 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 essage'];.}.throw.new.JsonValida
6e500 74 69 6f 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 tionException('"'.$this->path.'"
6e520 20 64 6f 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 .does.not.match.the.expected.JSO
6e540 4e 20 73 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 N.schema',.$errors);.}..return.t
6e560 72 75 65 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 rue;.}..............public.stati
6e580 63 20 66 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 c.function.encode($data,.$option
6e5a0 73 20 3d 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 s.=.448).{.if.(version_compare(P
6e5c0 48 50 5f 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 HP_VERSION,.'5.4',.'>=')).{.retu
6e5e0 72 6e 20 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 rn.json_encode($data,.$options);
6e600 0a 7d 0a 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 .}..$json.=.json_encode($data);.
6e620 0a 24 70 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 .$prettyPrint.=.(bool).($options
6e640 20 26 20 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 .&.self::JSON_PRETTY_PRINT);.$un
6e660 65 73 63 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 escapeUnicode.=.(bool).($options
6e680 20 26 20 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 .&.self::JSON_UNESCAPED_UNICODE)
6e6a0 3b 0a 24 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 ;.$unescapeSlashes.=.(bool).($op
6e6c0 74 69 6f 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 tions.&.self::JSON_UNESCAPED_SLA
6e6e0 53 48 45 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 SHES);..if.(!$prettyPrint.&&.!$u
6e700 6e 65 73 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 nescapeUnicode.&&.!$unescapeSlas
6e720 68 65 73 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 hes).{.return.$json;.}..$result.
6e740 3d 20 27 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 =.'';.$pos.=.0;.$strLen.=.strlen
6e760 28 24 6a 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 ($json);.$indentStr.=.'....';.$n
6e780 65 77 4c 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 ewLine.=."\n";.$outOfQuotes.=.tr
6e7a0 75 65 3b 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 ue;.$buffer.=.'';.$noescape.=.tr
6e7c0 75 65 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 74 72 4c 65 6e 3b 20 ue;..for.($i.=.0;.$i.<.$strLen;.
6e7e0 24 69 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 $i++).{...$char.=.substr($json,.
6e800 24 69 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 $i,.1);....if.('"'.===.$char.&&.
6e820 24 6e 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 $noescape).{.$outOfQuotes.=.!$ou
6e840 74 4f 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 tOfQuotes;.}..if.(!$outOfQuotes)
6e860 20 7b 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 .{.$buffer..=.$char;.$noescape.=
6e880 20 27 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 .'\\'.===.$char.?.!$noescape.:.t
6e8a0 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 27 27 20 21 3d 3d 20 rue;.continue;.}.elseif.(''.!==.
6e8c0 24 62 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 $buffer).{.if.($unescapeSlashes)
6e8e0 20 7b 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 .{.$buffer.=.str_replace('\\/',.
6e900 27 2f 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 '/',.$buffer);.}..if.($unescapeU
6e920 6e 69 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 nicode.&&.function_exists('mb_co
6e940 6e 76 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 nvert_encoding')).{...$buffer.=.
6e960 70 72 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 preg_replace_callback('/\\\\u([0
6e980 2d 39 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 -9a-f]{4})/i',.function($match).
6e9a0 7b 0a 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 {.return.mb_convert_encoding(pac
6e9c0 6b 28 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 k('H*',.$match[1]),.'UTF-8',.'UC
6e9e0 53 2d 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 S-2BE');.},.$buffer);.}..$result
6ea00 20 2e 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 ..=.$buffer.$char;.$buffer.=.'';
6ea20 0a 63 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 .continue;.}..if.(':'.===.$char)
6ea40 20 7b 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 .{...$char..=.'.';.}.elseif.(('}
6ea60 27 20 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 '.===.$char.||.']'.===.$char)).{
6ea80 0a 24 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 .$pos--;.$prevChar.=.substr($jso
6eaa0 6e 2c 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 n,.$i.-.1,.1);..if.('{'.!==.$pre
6eac0 76 43 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 vChar.&&.'['.!==.$prevChar).{...
6eae0 0a 20 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 ..$result..=.$newLine;.for.($j.=
6eb00 20 30 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 .0;.$j.<.$pos;.$j++).{.$result..
6eb20 3d 20 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 =.$indentStr;.}.}.else.{...$resu
6eb40 6c 74 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 lt.=.rtrim($result)."\n\n".$inde
6eb60 6e 74 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 ntStr;.}.}..$result..=.$char;...
6eb80 20 0a 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 ...if.(','.===.$char.||.'{'.===.
6eba0 24 63 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 $char.||.'['.===.$char).{.$resul
6ebc0 74 20 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 t..=.$newLine;..if.('{'.===.$cha
6ebe0 72 20 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 r.||.'['.===.$char).{.$pos++;.}.
6ec00 0a 66 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 .for.($j.=.0;.$j.<.$pos;.$j++).{
6ec20 0a 24 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 .$result..=.$indentStr;.}.}.}..r
6ec40 65 74 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 eturn.$result;.}..........public
6ec60 20 73 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 .static.function.parseJson($json
6ec80 2c 20 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 ,.$file.=.null).{.$data.=.json_d
6eca0 65 63 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 ecode($json,.true);.if.(null.===
6ecc0 20 24 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 .$data.&&.JSON_ERROR_NONE.!==.js
6ece0 6f 6e 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 on_last_error()).{.self::validat
6ed00 65 53 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 eSyntax($json,.$file);.}..return
6ed20 20 24 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 .$data;.}...........protected.st
6ed40 61 74 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 atic.function.validateSyntax($js
6ed60 6f 6e 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 on,.$file.=.null).{.$parser.=.ne
6ed80 77 20 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 w.JsonParser();.$result.=.$parse
6eda0 72 2d 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 r->lint($json);.if.(null.===.$re
6edc0 73 75 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 sult).{.if.(defined('JSON_ERROR_
6ede0 55 54 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 UTF8').&&.JSON_ERROR_UTF8.===.js
6ee00 6f 6e 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 on_last_error()).{.throw.new.\Un
6ee20 65 78 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 expectedValueException('"'.$file
6ee40 2e 27 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 .'".is.not.UTF-8,.could.not.pars
6ee60 65 20 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 e.as.JSON');.}..return.true;.}..
6ee80 74 68 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 throw.new.ParsingException('"'.$
6eea0 66 69 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 file.'".does.not.contain.valid.J
6eec0 53 4f 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 SON'."\n".$result->getMessage(),
6eee0 20 24 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 .$result->getDetails());.}.}.<?p
6ef00 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
6ef20 5c 4a 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 \Json;..use.Exception;.....class
6ef40 20 4a 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 .JsonValidationException.extends
6ef60 20 45 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 .Exception.{.protected.$errors;.
6ef80 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 6d 65 .public.function.__construct($me
6efa0 73 73 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 ssage,.$errors.=.array()).{.$thi
6efc0 73 2d 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 s->errors.=.$errors;.parent::__c
6efe0 6f 6e 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 onstruct($message);.}..public.fu
6f000 6e 63 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 nction.getErrors().{.return.$thi
6f020 73 2d 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 s->errors;.}.}.<?php............
6f040 6e 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 namespace.Composer;..use.Compose
6f060 72 5c 43 6f 6e 66 69 67 5c 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 3b 0a r\Config\ConfigSourceInterface;.
6f080 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 ....class.Config.{.public.static
6f0a0 20 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 .$defaultConfig.=.array(.'proces
6f0c0 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 30 30 2c 0a 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d s-timeout'.=>.300,.'use-include-
6f0e0 70 61 74 68 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 path'.=>.false,.'preferred-insta
6f100 6c 6c 27 20 3d 3e 20 27 61 75 74 6f 27 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c ll'.=>.'auto',.'notify-on-instal
6f120 6c 27 20 3d 3e 20 74 72 75 65 2c 0a 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 20 3d l'.=>.true,.'github-protocols'.=
6f140 3e 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 2c 20 27 68 74 74 70 27 29 2c >.array('git',.'https',.'http'),
6f160 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 62 69 6e 2d .'vendor-dir'.=>.'vendor',.'bin-
6f180 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 0a 27 63 61 dir'.=>.'{$vendor-dir}/bin',.'ca
6f1a0 63 68 65 2d 64 69 72 27 20 3d 3e 20 27 7b 24 68 6f 6d 65 7d 2f 63 61 63 68 65 27 2c 0a 27 63 61 che-dir'.=>.'{$home}/cache',.'ca
6f1c0 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f che-files-dir'.=>.'{$cache-dir}/
6f1e0 66 69 6c 65 73 27 2c 0a 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 files',.'cache-repo-dir'.=>.'{$c
6f200 61 63 68 65 2d 64 69 72 7d 2f 72 65 70 6f 27 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 ache-dir}/repo',.'cache-vcs-dir'
6f220 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 76 63 73 27 2c 0a 27 63 61 63 68 65 2d 74 .=>.'{$cache-dir}/vcs',.'cache-t
6f240 74 6c 27 20 3d 3e 20 31 35 35 35 32 30 30 30 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d tl'.=>.15552000,...'cache-files-
6f260 74 74 6c 27 20 3d 3e 20 6e 75 6c 6c 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 ttl'.=>.null,...'cache-files-max
6f280 73 69 7a 65 27 20 3d 3e 20 27 33 30 30 4d 69 42 27 2c 0a 27 64 69 73 63 61 72 64 2d 63 68 61 6e size'.=>.'300MiB',.'discard-chan
6f2a0 67 65 73 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 29 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 ges'.=>.false,.);..public.static
6f2c0 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 .$defaultRepositories.=.array(.'
6f2e0 70 61 63 6b 61 67 69 73 74 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 packagist'.=>.array(.'type'.=>.'
6f300 63 6f 6d 70 6f 73 65 72 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 73 3f 3a 2f 2f 70 61 composer',.'url'.=>.'https?://pa
6f320 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 0a 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 ckagist.org',.'allow_ssl_downgra
6f340 64 65 27 20 3d 3e 20 74 72 75 65 2c 0a 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 de'.=>.true,.).);..private.$conf
6f360 69 67 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 69 76 61 ig;.private.$repositories;.priva
6f380 74 65 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 te.$configSource;..public.functi
6f3a0 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 on.__construct().{...$this->conf
6f3c0 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 3b 0a 24 74 68 ig.=.static::$defaultConfig;.$th
6f3e0 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 is->repositories.=.static::$defa
6f400 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ultRepositories;.}..public.funct
6f420 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 72 63 65 ion.setConfigSource(ConfigSource
6f440 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 Interface.$source).{.$this->conf
6f460 69 67 53 6f 75 72 63 65 20 3d 20 24 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 igSource.=.$source;.}..public.fu
6f480 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 nction.getConfigSource().{.retur
6f4a0 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 n.$this->configSource;.}.......p
6f4c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 65 72 67 65 28 61 72 72 61 79 20 24 63 6f 6e 66 ublic.function.merge(array.$conf
6f4e0 69 67 29 0a 7b 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 ig).{...if.(!empty($config['conf
6f500 69 67 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 63 6f 6e 66 69 ig']).&&.is_array($config['confi
6f520 67 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 g'])).{.foreach.($config['config
6f540 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 '].as.$key.=>.$val).{.if.(in_arr
6f560 61 79 28 24 6b 65 79 2c 20 61 72 72 61 79 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 29 20 ay($key,.array('github-oauth')).
6f580 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b &&.isset($this->config[$key])).{
6f5a0 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 .$this->config[$key].=.array_mer
6f5c0 67 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 76 61 6c 29 3b 0a 7d ge($this->config[$key],.$val);.}
6f5e0 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 24 76 .else.{.$this->config[$key].=.$v
6f600 61 6c 3b 0a 7d 0a 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 72 al;.}.}.}..if.(!empty($config['r
6f620 65 70 6f 73 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 epositories']).&&.is_array($conf
6f640 69 67 5b 27 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 ig['repositories'])).{.$this->re
6f660 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 24 74 68 69 73 positories.=.array_reverse($this
6f680 2d 3e 72 65 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 ->repositories,.true);.$newRepos
6f6a0 20 3d 20 61 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 .=.array_reverse($config['reposi
6f6c0 74 6f 72 69 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 tories'],.true);.foreach.($newRe
6f6e0 70 6f 73 20 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 pos.as.$name.=>.$repository).{..
6f700 20 69 66 20 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 .if.(false.===.$repository).{.un
6f720 73 65 74 28 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 set($this->repositories[$name]);
6f740 0a 63 6f 6e 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 .continue;.}....if.(1.===.count(
6f760 24 72 65 70 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 $repository).&&.false.===.curren
6f780 74 28 24 72 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 t($repository)).{.unset($this->r
6f7a0 65 70 6f 73 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 epositories[key($repository)]);.
6f7c0 63 6f 6e 74 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 continue;.}....if.(is_int($name)
6f7e0 29 20 7b 0a 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 ).{.$this->repositories[].=.$rep
6f800 6f 73 69 74 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 ository;.}.else.{.$this->reposit
6f820 6f 72 69 65 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 ories[$name].=.$repository;.}.}.
6f840 24 74 68 69 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 $this->repositories.=.array_reve
6f860 72 73 65 28 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 rse($this->repositories,.true);.
6f880 7d 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 6f 73 }.}.....public.function.getRepos
6f8a0 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
6f8c0 74 6f 72 69 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 tories;.}........public.function
6f8e0 20 67 65 74 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 .get($key).{.switch.($key).{.cas
6f900 65 20 27 76 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 e.'vendor-dir':.case.'bin-dir':.
6f920 63 61 73 65 20 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 3a 0a 63 61 73 65 20 27 63 61 case.'process-timeout':.case.'ca
6f940 63 68 65 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 che-dir':.case.'cache-files-dir'
6f960 3a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 63 :.case.'cache-repo-dir':.case.'c
6f980 61 63 68 65 2d 76 63 73 2d 64 69 72 27 3a 0a 0a 20 24 65 6e 76 20 3d 20 27 43 4f 4d 50 4f 53 45 ache-vcs-dir':...$env.=.'COMPOSE
6f9a0 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 2c 20 27 2d 27 R_'...strtoupper(strtr($key,.'-'
6f9c0 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 73 2d 3e 70 72 ,.'_'));..return.rtrim($this->pr
6f9e0 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 2d 3e 63 6f 6e ocess(getenv($env).?:.$this->con
6fa00 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 63 61 63 68 65 fig[$key]),.'/\\');..case.'cache
6fa20 2d 74 74 6c 27 3a 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 -ttl':.return.(int).$this->confi
6fa40 67 5b 24 6b 65 79 5d 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 g[$key];..case.'cache-files-maxs
6fa60 69 7a 65 27 3a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 28 5b 30 2d ize':.if.(!preg_match('/^\s*([0-
6fa80 39 2e 5d 2b 29 5c 73 2a 28 3f 3a 28 5b 6b 6d 67 5d 29 28 3f 3a 69 3f 62 29 3f 29 3f 5c 73 2a 24 9.]+)\s*(?:([kmg])(?:i?b)?)?\s*$
6faa0 2f 69 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 6d 61 74 63 68 /i',.$this->config[$key],.$match
6fac0 65 73 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 es)).{.throw.new.\RuntimeExcepti
6fae0 6f 6e 28 0a 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 68 65 20 76 61 6c 75 65 20 6f on(."Could.not.parse.the.value.o
6fb00 66 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 3a 20 7b 24 74 68 69 73 2d f.'cache-files-maxsize':.{$this-
6fb20 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 7d 22 0a 29 3b 0a 7d 0a 24 73 69 7a 65 20 3d 20 24 6d 61 >config[$key]}".);.}.$size.=.$ma
6fb40 74 63 68 65 73 5b 31 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 tches[1];.if.(isset($matches[2])
6fb60 29 20 7b 0a 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b ).{.switch.(strtolower($matches[
6fb80 32 5d 29 29 20 7b 0a 63 61 73 65 20 27 67 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 2])).{.case.'g':.$size.*=.1024;.
6fba0 0a 20 63 61 73 65 20 27 6d 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 0a 20 63 61 73 ..case.'m':.$size.*=.1024;...cas
6fbc0 65 20 27 6b 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d e.'k':.$size.*=.1024;.break;.}.}
6fbe0 0a 0a 72 65 74 75 72 6e 20 24 73 69 7a 65 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c ..return.$size;..case.'cache-fil
6fc00 65 73 2d 74 74 6c 27 3a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 es-ttl':.if.(isset($this->config
6fc20 5b 24 6b 65 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 [$key])).{.return.(int).$this->c
6fc40 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 onfig[$key];.}..return.(int).$th
6fc60 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 63 61 63 68 65 2d 74 74 6c 27 5d 3b 0a 0a 63 61 73 65 20 27 is->config['cache-ttl'];..case.'
6fc80 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
6fca0 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]),.'/\\');
6fcc0 0a 0a 63 61 73 65 20 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 3a 0a 69 66 20 28 24 65 ..case.'discard-changes':.if.($e
6fce0 6e 76 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 nv.=.getenv('COMPOSER_DISCARD_CH
6fd00 41 4e 47 45 53 27 29 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 65 6e 76 2c 20 61 ANGES')).{.if.(!in_array($env,.a
6fd20 72 72 61 79 28 27 73 74 61 73 68 27 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 rray('stash',.'true',.'false',.'
6fd40 31 27 2c 20 27 30 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 1',.'0'),.true)).{.throw.new.\Ru
6fd60 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 ntimeException(."Invalid.value.f
6fd80 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 3a 20 7b 24 65 or.COMPOSER_DISCARD_CHANGES:.{$e
6fda0 6e 76 7d 2e 20 45 78 70 65 63 74 65 64 20 31 2c 20 30 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 20 nv}..Expected.1,.0,.true,.false.
6fdc0 6f 72 20 73 74 61 73 68 22 0a 29 3b 0a 7d 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 or.stash".);.}.if.('stash'.===.$
6fde0 65 6e 76 29 20 7b 0a 72 65 74 75 72 6e 20 27 73 74 61 73 68 27 3b 0a 7d 0a 0a 0a 20 72 65 74 75 env).{.return.'stash';.}....retu
6fe00 72 6e 20 24 65 6e 76 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 65 rn.$env.!==.'false'.&&.(bool).$e
6fe20 6e 76 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 nv;.}..if.(!in_array($this->conf
6fe40 69 67 5b 24 6b 65 79 5d 2c 20 61 72 72 61 79 28 74 72 75 65 2c 20 66 61 6c 73 65 2c 20 27 73 74 ig[$key],.array(true,.false,.'st
6fe60 61 73 68 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 ash'),.true)).{.throw.new.\Runti
6fe80 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 20 meException(."Invalid.value.for.
6fea0 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 3a 20 7b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 'discard-changes':.{$this->confi
6fec0 67 5b 24 6b 65 79 5d 7d 2e 20 45 78 70 65 63 74 65 64 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f g[$key]}..Expected.true,.false.o
6fee0 72 20 73 74 61 73 68 22 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e r.stash".);.}..return.$this->con
6ff00 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 69 66 20 28 21 69 73 73 65 74 28 fig[$key];..default:.if.(!isset(
6ff20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e $this->config[$key])).{.return.n
6ff40 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 24 74 ull;.}..return.$this->process($t
6ff60 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 70 75 62 6c 69 63 20 his->config[$key]);.}.}..public.
6ff80 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 29 0a 7b 0a 24 61 6c 6c 20 3d 20 61 72 72 61 79 28 0a 27 function.all().{.$all.=.array(.'
6ffa0 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 repositories'.=>.$this->getRepos
6ffc0 69 74 6f 72 69 65 73 28 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 itories(),.);.foreach.(array_key
6ffe0 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 24 61 6c 6c s($this->config).as.$key).{.$all
70000 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6b ['config'][$key].=.$this->get($k
70020 65 79 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 ey);.}..return.$all;.}..public.f
70040 75 6e 63 74 69 6f 6e 20 72 61 77 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 72 unction.raw().{.return.array(.'r
70060 65 70 6f 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 epositories'.=>.$this->getReposi
70080 74 6f 72 69 65 73 28 29 2c 0a 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 74 68 69 73 2d 3e 63 6f 6e tories(),.'config'.=>.$this->con
700a0 66 69 67 2c 0a 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 fig,.);.}........public.function
700c0 20 68 61 73 28 24 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 .has($key).{.return.array_key_ex
700e0 69 73 74 73 28 24 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a ists($key,.$this->config);.}....
70100 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 28 24 76 61 ....private.function.process($va
70120 6c 75 65 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 3b 0a 0a 69 66 20 28 21 69 73 lue).{.$config.=.$this;..if.(!is
70140 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 _string($value)).{.return.$value
70160 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 ;.}..return.preg_replace_callbac
70180 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 28 24 6d 61 74 k('#\{\$(.+)\}#',.function.($mat
701a0 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 24 63 6f 6e 66 ch).use.($config).{.return.$conf
701c0 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 75 65 29 3b 0a ig->get($match[1]);.},.$value);.
701e0 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
70200 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 65 72 5c 43 6f omposer\Script;..use.Composer\Co
70220 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
70240 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 0a 70 72 69 76 ace;.......class.Event.{....priv
70260 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 70 6f 73 65 72 ate.$name;.....private.$composer
70280 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 ;.....private.$io;.....private.$
702a0 64 65 76 4d 6f 64 65 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 devMode;..........public.functio
702c0 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 20 24 63 n.__construct($name,.Composer.$c
702e0 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 24 64 65 76 4d 6f omposer,.IOInterface.$io,.$devMo
70300 64 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d de.=.false).{.$this->name.=.$nam
70320 65 3b 0a 24 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 e;.$this->composer.=.$composer;.
70340 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 $this->io.=.$io;.$this->devMode.
70360 3d 20 24 64 65 76 4d 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 =.$devMode;.}.......public.funct
70380 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 61 ion.getName().{.return.$this->na
703a0 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 43 me;.}.......public.function.getC
703c0 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 73 omposer().{.return.$this->compos
703e0 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 49 er;.}.......public.function.getI
70400 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 0a 0a 0a 0a 0a 0a O().{.return.$this->io;.}.......
70420 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 4d 6f 64 65 28 29 0a 7b 0a 72 65 public.function.isDevMode().{.re
70440 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a turn.$this->devMode;.}.}.<?php..
70460 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 53 63 72 ..........namespace.Composer\Scr
70480 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 74 73 0a 7b ipt;........class.ScriptEvents.{
704a0 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 44 20 3d 20 ........const.PRE_INSTALL_CMD.=.
704c0 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 6f 6e 73 74 'pre-install-cmd';.........const
704e0 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 73 74 61 6c .POST_INSTALL_CMD.=.'post-instal
70500 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 44 41 54 45 l-cmd';.........const.PRE_UPDATE
70520 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 0a 0a 0a 0a _CMD.=.'pre-update-cmd';........
70540 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 73 74 2d 75 .const.POST_UPDATE_CMD.=.'post-u
70560 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 45 5f 50 41 pdate-cmd';.........const.PRE_PA
70580 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 2d 69 6e 73 CKAGE_INSTALL.=.'pre-package-ins
705a0 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 43 4b 41 47 tall';.........const.POST_PACKAG
705c0 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 73 74 61 6c E_INSTALL.=.'post-package-instal
705e0 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 45 5f 55 50 l';.........const.PRE_PACKAGE_UP
70600 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 0a 0a 0a 0a DATE.=.'pre-package-update';....
70620 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 54 45 20 3d .....const.POST_PACKAGE_UPDATE.=
70640 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 0a 0a 0a 0a .'post-package-update';.........
70660 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 3d 20 27 70 const.PRE_PACKAGE_UNINSTALL.=.'p
70680 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 0a 0a 0a 63 re-package-uninstall';.........c
706a0 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 3d 20 27 70 onst.POST_PACKAGE_UNINSTALL.=.'p
706c0 6f 73 74 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 0a 0a 0a ost-package-uninstall';.........
706e0 63 6f 6e 73 74 20 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 20 3d 20 27 70 6f 73 74 const.POST_AUTOLOAD_DUMP.=.'post
70700 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a -autoload-dump';.}.<?php........
70720 0a 0a 0a 0a 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 ....namespace.Composer\Script;..
70740 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 use.Composer\Composer;.......cla
70760 73 73 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a ss.CommandEvent.extends.Event.{.
70780 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
707a0 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 65 72 5c 43 6f 6d 70 poser\Script;..use.Composer\Comp
707c0 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 61 63 oser;.use.Composer\IO\IOInterfac
707e0 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 6c 76 e;.use.Composer\DependencyResolv
70800 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b er\Operation\OperationInterface;
70820 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e 74 20 65 78 74 65 6e 64 .......class.PackageEvent.extend
70840 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 69 6f 6e 3b s.Event.{....private.$operation;
70860 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 6f 6e ...........public.function.__con
70880 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 struct($name,.Composer.$composer
708a0 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 4f 70 65 ,.IOInterface.$io,.$devMode,.Ope
708c0 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
708e0 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
70900 65 72 2c 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 er,.$io,.$devMode);.$this->opera
70920 74 69 6f 6e 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tion.=.$operation;.}.......publi
70940 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 c.function.getOperation().{.retu
70960 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a rn.$this->operation;.}.}.<?php..
70980 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 53 63 72 ..........namespace.Composer\Scr
709a0 69 70 74 3b 0a 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 ipt;..use.Composer\Autoload\Auto
709c0 6c 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 49 4f 5c 49 loadGenerator;.use.Composer\IO\I
709e0 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 6d 70 6f 73 65 OInterface;.use.Composer\Compose
70a00 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 65 73 6f 6c 76 r;.use.Composer\DependencyResolv
70a20 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b er\Operation\OperationInterface;
70a40 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
70a60 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 44 69 73 70 or;..............class.EventDisp
70a80 61 74 63 68 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 atcher.{.protected.$composer;.pr
70aa0 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a otected.$io;.protected.$loader;.
70ac0 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c protected.$process;.........publ
70ae0 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 70 6f 73 65 72 ic.function.__construct(Composer
70b00 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 50 72 6f .$composer,.IOInterface.$io,.Pro
70b20 63 65 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 29 0a 7b 0a cessExecutor.$process.=.null).{.
70b40 24 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 $this->composer.=.$composer;.$th
70b60 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 20 24 is->io.=.$io;.$this->process.=.$
70b80 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 28 29 process.?:.new.ProcessExecutor()
70ba0 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 64 69 73 70 61 ;.}........public.function.dispa
70bc0 74 63 68 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 20 3d 20 6e tch($eventName,.Event.$event.=.n
70be0 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 20 24 65 76 65 6e 74 29 20 7b 0a 24 65 76 ull).{.if.(null.==.$event).{.$ev
70c00 65 6e 74 20 3d 20 6e 65 77 20 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 ent.=.new.Event($eventName,.$thi
70c20 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 0a 0a 24 74 68 69 s->composer,.$this->io);.}..$thi
70c40 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a s->doDispatch($event);.}........
70c60 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 50 61 63 6b 61 67 65 .public.function.dispatchPackage
70c80 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 2c 20 4f 70 65 72 Event($eventName,.$devMode,.Oper
70ca0 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 24 74 68 ationInterface.$operation).{.$th
70cc0 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 50 61 63 6b 61 67 65 45 76 65 6e 74 28 is->doDispatch(new.PackageEvent(
70ce0 24 65 76 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 $eventName,.$this->composer,.$th
70d00 69 73 2d 3e 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 29 3b 0a is->io,.$devMode,.$operation));.
70d20 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 64 69 73 70 61 74 63 }........public.function.dispatc
70d40 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f hCommandEvent($eventName,.$devMo
70d60 64 65 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 43 6f 6d 6d de).{.$this->doDispatch(new.Comm
70d80 61 6e 64 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 andEvent($eventName,.$this->comp
70da0 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 64 65 76 4d 6f 64 65 29 29 3b 0a 7d 0a 0a oser,.$this->io,.$devMode));.}..
70dc0 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 44 69 73 70 61 74 .....protected.function.doDispat
70de0 63 68 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 6c 69 73 74 65 6e 65 72 73 20 3d 20 ch(Event.$event).{.$listeners.=.
70e00 24 74 68 69 73 2d 3e 67 65 74 4c 69 73 74 65 6e 65 72 73 28 24 65 76 65 6e 74 29 3b 0a 0a 66 6f $this->getListeners($event);..fo
70e20 72 65 61 63 68 20 28 24 6c 69 73 74 65 6e 65 72 73 20 61 73 20 24 63 61 6c 6c 61 62 6c 65 29 20 reach.($listeners.as.$callable).
70e40 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 68 70 53 63 72 69 70 74 28 24 63 61 6c 6c 61 62 {.if.($this->isPhpScript($callab
70e60 6c 65 29 29 20 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c le)).{.$className.=.substr($call
70e80 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 27 3a 3a 27 29 able,.0,.strpos($callable,.'::')
70ea0 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 6c 6c 61 62 6c );.$methodName.=.substr($callabl
70ec0 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 2b 20 32 29 3b e,.strpos($callable,.'::').+.2);
70ee0 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 61 6d 65 29 29 ..if.(!class_exists($className))
70f00 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 3e 43 6c .{.$this->io->write('<warning>Cl
70f20 61 73 73 20 27 2e 24 63 6c 61 73 73 4e 61 6d 65 2e 27 20 69 73 20 6e 6f 74 20 61 75 74 6f 6c 6f ass.'.$className.'.is.not.autolo
70f40 61 64 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 adable,.can.not.call.'.$event->g
70f60 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 etName().'.script</warning>');.c
70f80 6f 6e 74 69 6e 75 65 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 ontinue;.}.if.(!is_callable($cal
70fa0 6c 61 62 6c 65 29 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 lable)).{.$this->io->write('<war
70fc0 6e 69 6e 67 3e 4d 65 74 68 6f 64 20 27 2e 24 63 61 6c 6c 61 62 6c 65 2e 27 20 69 73 20 6e 6f 74 ning>Method.'.$callable.'.is.not
70fe0 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 65 76 65 6e 74 .callable,.can.not.call.'.$event
71000 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 ->getName().'.script</warning>')
71020 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 65 78 65 63 ;.continue;.}..try.{.$this->exec
71040 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d uteEventPhpScript($className,.$m
71060 65 74 68 6f 64 4e 61 6d 65 2c 20 24 65 76 65 6e 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 ethodName,.$event);.}.catch.(\Ex
71080 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 53 63 72 69 70 74 ception.$e).{.$message.=."Script
710a0 20 25 73 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 74 65 72 6d 69 6e .%s.handling.the.%s.event.termin
710c0 61 74 65 64 20 77 69 74 68 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 22 3b 0a 24 74 68 69 73 2d 3e ated.with.an.exception";.$this->
710e0 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 27 2e 73 70 72 69 6e 74 66 28 24 6d 65 73 io->write('<error>'.sprintf($mes
71100 73 61 67 65 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 sage,.$callable,.$event->getName
71120 28 29 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 20 65 ()).'</error>');.throw.$e;.}.}.e
71140 6c 73 65 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e lse.{.if.(0.!==.$this->process->
71160 65 78 65 63 75 74 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 65 76 65 6e 74 2d 3e 67 65 execute($callable)).{.$event->ge
71180 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 53 63 72 tIO()->write(sprintf('<error>Scr
711a0 69 70 74 20 25 73 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 72 65 74 ipt.%s.handling.the.%s.event.ret
711c0 75 72 6e 65 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 3a 20 25 73 3c 2f 65 72 72 6f 72 3e 27 urned.with.an.error:.%s</error>'
711e0 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 ,.$callable,.$event->getName(),.
71200 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 29 $this->process->getErrorOutput()
71220 29 29 3b 0a 7d 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 ));.}.}.}.}.......protected.func
71240 74 69 6f 6e 20 65 78 65 63 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 74 28 24 63 6c 61 73 tion.executeEventPhpScript($clas
71260 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 sName,.$methodName,.Event.$event
71280 29 0a 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 76 65 ).{.$className::$methodName($eve
712a0 6e 74 29 3b 0a 7d 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 nt);.}......protected.function.g
712c0 65 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 70 61 63 etListeners(Event.$event).{.$pac
712e0 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 kage.=.$this->composer->getPacka
71300 67 65 28 29 3b 0a 24 73 63 72 69 70 74 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 63 ge();.$scripts.=.$package->getSc
71320 72 69 70 74 73 28 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 63 72 69 70 74 73 5b 24 65 76 ripts();..if.(empty($scripts[$ev
71340 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 ent->getName()])).{.return.array
71360 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 ();.}..if.($this->loader).{.$thi
71380 73 2d 3e 6c 6f 61 64 65 72 2d 3e 75 6e 72 65 67 69 73 74 65 72 28 29 3b 0a 7d 0a 0a 24 67 65 6e s->loader->unregister();.}..$gen
713a0 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 erator.=.$this->composer->getAut
713c0 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 oloadGenerator();.$packages.=.$t
713e0 68 69 73 2d 3e 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 his->composer->getRepositoryMana
71400 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 2d 3e 67 65 74 ger()->getLocalRepository()->get
71420 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 4d 61 70 CanonicalPackages();.$packageMap
71440 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 .=.$generator->buildPackageMap($
71460 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d this->composer->getInstallationM
71480 61 6e 61 67 65 72 28 29 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a anager(),.$package,.$packages);.
714a0 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 $map.=.$generator->parseAutoload
714c0 73 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d s($packageMap,.$package);.$this-
714e0 3e 6c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 >loader.=.$generator->createLoad
71500 65 72 28 24 6d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 er($map);.$this->loader->registe
71520 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 r();..return.$scripts[$event->ge
71540 74 4e 61 6d 65 28 29 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e tName()];.}........protected.fun
71560 63 74 69 6f 6e 20 69 73 50 68 70 53 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 0a 7b 0a 72 ction.isPhpScript($callable).{.r
71580 65 74 75 72 6e 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 eturn.false.===.strpos($callable
715a0 2c 20 27 20 27 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c ,.'.').&&.false.!==.strpos($call
715c0 61 62 6c 65 2c 20 27 3a 3a 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a able,.'::');.}.}.<?php..........
715e0 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;.
71600 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 6c 6c .use.Composer\Repository\Install
71620 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 70 6f edRepositoryInterface;.use.Compo
71640 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 0a 0a ser\Package\PackageInterface;...
71660 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 6d 70 6c 65 6d ......class.NoopInstaller.implem
71680 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 0a 0a 70 75 62 ents.InstallerInterface.{....pub
716a0 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 61 67 65 54 79 lic.function.supports($packageTy
716c0 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 62 6c 69 63 20 pe).{.return.true;.}.....public.
716e0 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 6c 65 64 52 65 function.isInstalled(InstalledRe
71700 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 65 positoryInterface.$repo,.Package
71720 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 24 72 65 Interface.$package).{.return.$re
71740 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 0a 0a 0a 0a 0a po->hasPackage($package);.}.....
71760 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 6c 6c 65 public.function.install(Installe
71780 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
717a0 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 72 ageInterface.$package).{.if.(!$r
717c0 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 72 65 epo->hasPackage($package)).{.$re
717e0 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 67 65 29 3b 0a po->addPackage(clone.$package);.
71800 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 61 74 65 28 49 }.}.....public.function.update(I
71820 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 65 70 nstalledRepositoryInterface.$rep
71840 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 50 61 o,.PackageInterface.$initial,.Pa
71860 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 66 20 28 21 24 ckageInterface.$target).{.if.(!$
71880 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 20 7b 0a 74 68 repo->hasPackage($initial)).{.th
718a0 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
718c0 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 3a 20 27 2e 24 n('Package.is.not.installed:.'.$
718e0 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 initial);.}..$repo->removePackag
71900 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b e($initial);.if.(!$repo->hasPack
71920 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 61 63 6b 61 67 age($target)).{.$repo->addPackag
71940 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 75 62 6c 69 63 e(clone.$target);.}.}.....public
71960 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 65 64 52 65 70 .function.uninstall(InstalledRep
71980 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 65 49 ositoryInterface.$repo,.PackageI
719a0 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 72 65 70 6f 2d nterface.$package).{.if.(!$repo-
719c0 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 72 65 74 75 72 >hasPackage($package)).{...retur
719e0 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 6e 74 45 78 63 n;.throw.new.\InvalidArgumentExc
71a00 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
71a20 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 6f 76 65 50 61 :.'.$package);.}.$repo->removePa
71a40 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 66 75 ckage($package);.}.....public.fu
71a60 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 74 nction.getInstallPath(PackageInt
71a80 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 69 72 20 3d 20 erface.$package).{.$targetDir.=.
71aa0 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 72 65 74 75 72 $package->getTargetDir();..retur
71ac0 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 20 2e 20 28 24 n.$package->getPrettyName()...($
71ae0 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 3a 20 27 27 29 targetDir.?.'/'.$targetDir.:.'')
71b00 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
71b20 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
71b40 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 6f 72 er\Repository\InstalledRepositor
71b60 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 63 6b 61 67 65 yInterface;.use.Composer\Package
71b80 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 20 4d \PackageInterface;.......class.M
71ba0 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 6e 74 73 20 49 etapackageInstaller.implements.I
71bc0 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 69 63 20 66 75 nstallerInterface.{....public.fu
71be0 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 65 29 0a 7b 0a nction.supports($packageType).{.
71c00 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 74 61 70 61 63 return.$packageType.===.'metapac
71c20 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 6e 20 69 73 49 kage';.}.....public.function.isI
71c40 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 79 49 6e 74 65 nstalled(InstalledRepositoryInte
71c60 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
71c80 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 50 61 63 6b 61 ackage).{.return.$repo->hasPacka
71ca0 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 66 75 6e 63 74 ge($package);.}.....public.funct
71cc0 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 79 49 ion.install(InstalledRepositoryI
71ce0 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
71d00 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 61 67 65 28 63 .$package).{.$repo->addPackage(c
71d20 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 63 20 66 75 6e lone.$package);.}.....public.fun
71d40 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
71d60 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
71d80 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
71da0 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($
71dc0 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
71de0 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.
71e00 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 72 65 70 6f installed:.'.$initial);.}..$repo
71e20 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 24 72 65 70 6f ->removePackage($initial);.$repo
71e40 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 3b 0a 7d 0a 0a ->addPackage(clone.$target);.}..
71e60 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
71e80 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,
71ea0 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
71ec0 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)).
71ee0 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 6c 69 64 41 72 {...return;.throw.new.\InvalidAr
71f00 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.
71f20 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 24 72 65 70 6f installed:.'.$package);.}..$repo
71f40 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 7d 0a 0a 0a 0a ->removePackage($package);.}....
71f60 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 74 68 28 .public.function.getInstallPath(
71f80 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 72 65 74 PackageInterface.$package).{.ret
71fa0 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 0a 0a 6e 61 6d urn.'';.}.}.<?php............nam
71fc0 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 0a 75 73 65 20 espace.Composer\Installer;..use.
71fe0 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 6f 6d Composer\IO\IOInterface;.use.Com
72000 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 44 6f 77 poser\Composer;.use.Composer\Dow
72020 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 72 3b 0a 75 73 nloader\PearPackageExtractor;.us
72040 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 6c 6c 65 64 52 e.Composer\Repository\InstalledR
72060 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 73 65 72 epositoryInterface;.use.Composer
72080 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 0a 0a 0a 0a 0a \Package\PackageInterface;......
720a0 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 64 73 20 4c 69 ..class.PearInstaller.extends.Li
720c0 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 6c 69 63 20 66 braryInstaller.{........public.f
720e0 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 20 unction.__construct(IOInterface.
72100 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 79 70 65 20 3d $io,.Composer.$composer,.$type.=
72120 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 5f 5f 63 6f 6e .'pear-library').{.parent::__con
72140 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 65 29 3b 0a 7d struct($io,.$composer,.$type);.}
72160 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 49 6e 73 74 .....public.function.update(Inst
72180 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 20 alledRepositoryInterface.$repo,.
721a0 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 6b 61 PackageInterface.$initial,.Packa
721c0 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 73 2d 3e 75 6e geInterface.$target).{.$this->un
721e0 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 74 68 69 73 2d install($repo,.$initial);.$this-
72200 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 0a 0a 70 72 6f >install($repo,.$target);.}..pro
72220 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 28 50 61 63 6b tected.function.installCode(Pack
72240 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 72 65 6e 74 3a ageInterface.$package).{.parent:
72260 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 65 6e 74 3a 3a :installCode($package);.parent::
72280 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 64 6f 77 73 20 initializeBinDir();..$isWindows.
722a0 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 49 4f 4e 5f 42 =.defined('PHP_WINDOWS_VERSION_B
722c0 55 49 4c 44 27 29 3b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 UILD');.$php_bin.=.$this->binDir
722e0 20 2e 20 28 24 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e ...($isWindows.?.'/composer-php.
72300 62 61 74 27 20 3a 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 29 3b 0a 0a 69 66 20 28 21 24 bat'.:.'/composer-php');..if.(!$
72320 69 73 57 69 6e 64 6f 77 73 29 20 7b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 27 2f 75 73 72 2f 62 69 isWindows).{.$php_bin.=.'/usr/bi
72340 6e 2f 65 6e 76 20 27 20 2e 20 24 70 68 70 5f 62 69 6e 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 50 n/env.'...$php_bin;.}..$installP
72360 61 74 68 20 3d 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 ath.=.$this->getInstallPath($pac
72380 6b 61 67 65 29 3b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 6f 73 27 20 3d 3e 20 24 69 kage);.$vars.=.array(.'os'.=>.$i
723a0 73 57 69 6e 64 6f 77 73 20 3f 20 27 77 69 6e 64 6f 77 73 27 20 3a 20 27 6c 69 6e 75 78 27 2c 0a sWindows.?.'windows'.:.'linux',.
723c0 27 70 68 70 5f 62 69 6e 27 20 3d 3e 20 24 70 68 70 5f 62 69 6e 2c 0a 27 70 65 61 72 5f 70 68 70 'php_bin'.=>.$php_bin,.'pear_php
723e0 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 70 68 70 5f 64 69 72 27 20 3d 3e 20 '.=>.$installPath,.'php_dir'.=>.
72400 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 62 69 6e 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 $installPath,.'bin_dir'.=>.$inst
72420 61 6c 6c 50 61 74 68 20 2e 20 27 2f 62 69 6e 27 2c 0a 27 64 61 74 61 5f 64 69 72 27 20 3d 3e 20 allPath...'/bin',.'data_dir'.=>.
72440 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 64 61 74 61 27 2c 0a 27 76 65 72 73 69 6f 6e $installPath...'/data',.'version
72460 27 20 3d 3e 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 '.=>.$package->getPrettyVersion(
72480 29 2c 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 20 3d 20 24 74 68 69 73 2d 3e ),.);..$packageArchive.=.$this->
724a0 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 27 2f 27 2e 70 61 74 getInstallPath($package).'/'.pat
724c0 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 6c 28 29 2c 20 50 41 hinfo($package->getDistUrl(),.PA
724e0 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 THINFO_BASENAME);.$pearExtractor
72500 20 3d 20 6e 65 77 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 28 24 70 61 63 .=.new.PearPackageExtractor($pac
72520 6b 61 67 65 41 72 63 68 69 76 65 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 2d 3e 65 78 kageArchive);.$pearExtractor->ex
72540 74 72 61 63 74 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 tractTo($this->getInstallPath($p
72560 61 63 6b 61 67 65 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 ackage),.array('php'.=>.'/',.'sc
72580 72 69 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 2c 20 27 64 61 74 61 27 20 3d 3e 20 27 2f 64 61 74 ript'.=>.'/bin',.'data'.=>.'/dat
725a0 61 27 29 2c 20 24 76 61 72 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 a'),.$vars);..if.($this->io->isV
725c0 65 72 62 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 erbose()).{.$this->io->write('..
725e0 20 20 43 6c 65 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 70 61 63 6b 61 ..Cleaning.up');.}.unlink($packa
72600 67 65 41 72 63 68 69 76 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f geArchive);.}..protected.functio
72620 6e 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 n.getBinaries(PackageInterface.$
72640 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 package).{.$binariesPath.=.$this
72660 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 20 2e 20 27 2f 62 ->getInstallPath($package)...'/b
72680 69 6e 2f 27 3b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 66 in/';.$binaries.=.array();.if.(f
726a0 69 6c 65 5f 65 78 69 73 74 73 28 24 62 69 6e 61 72 69 65 73 50 61 74 68 29 29 20 7b 0a 66 6f 72 ile_exists($binariesPath)).{.for
726c0 65 61 63 68 20 28 6e 65 77 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 62 each.(new.\FilesystemIterator($b
726e0 69 6e 61 72 69 65 73 50 61 74 68 2c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 inariesPath,.\FilesystemIterator
72700 3a 3a 4b 45 59 5f 41 53 5f 46 49 4c 45 4e 41 4d 45 20 7c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 ::KEY_AS_FILENAME.|.\FilesystemI
72720 74 65 72 61 74 6f 72 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 46 49 4c 45 49 4e 46 4f 29 20 61 73 terator::CURRENT_AS_FILEINFO).as
72740 20 24 66 69 6c 65 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 24 76 61 .$fileName.=>.$value).{.if.(!$va
72760 6c 75 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 62 69 6e 61 72 69 65 73 5b 5d 20 3d 20 27 62 lue->isDir()).{.$binaries[].=.'b
72780 69 6e 2f 27 2e 24 66 69 6c 65 4e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 in/'.$fileName;.}.}.}..return.$b
727a0 69 6e 61 72 69 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 69 inaries;.}..protected.function.i
727c0 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 nitializeBinDir().{.parent::init
727e0 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 ializeBinDir();.file_put_content
72800 73 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 2c s($this->binDir.'/composer-php',
72820 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 .$this->generateUnixyPhpProxyCod
72840 65 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 e());.chmod($this->binDir.'/comp
72860 6f 73 65 72 2d 70 68 70 27 2c 20 30 37 37 37 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 oser-php',.0777);.file_put_conte
72880 6e 74 73 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 nts($this->binDir.'/composer-php
728a0 2e 62 61 74 27 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 .bat',.$this->generateWindowsPhp
728c0 50 72 6f 78 79 43 6f 64 65 28 29 29 3b 0a 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 ProxyCode());.chmod($this->binDi
728e0 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 30 37 37 37 29 3b 0a 7d 0a r.'/composer-php.bat',.0777);.}.
72900 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 74 65 57 69 6e 64 .protected.function.generateWind
72920 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 0a 7b 0a 24 62 69 6e owsProxyCode($bin,.$link).{.$bin
72940 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 66 69 6e 64 53 68 Path.=.$this->filesystem->findSh
72960 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 69 66 20 28 27 2e 62 ortestPath($link,.$bin);.if.('.b
72980 61 74 27 20 3d 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 at'.===.substr($bin,.-4)).{.$cal
729a0 6c 65 72 20 3d 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 ler.=.'call';.}.else.{.$handle.=
729c0 20 66 6f 70 65 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 .fopen($bin,.'r');.$line.=.fgets
729e0 28 24 68 61 6e 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 ($handle);.fclose($handle);.if.(
72a00 70 72 65 67 5f 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 preg_match('{^#!/(?:usr/bin/env.
72a20 29 3f 28 3f 3a 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 )?(?:[^/]+/)*(.+)$}m',.$line,.$m
72a40 61 74 63 68 29 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 atch)).{.$caller.=.trim($match[1
72a60 5d 29 3b 0a 7d 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 ]);.}.else.{.$caller.=.'php';.}.
72a80 0a 69 66 20 28 24 63 61 6c 6c 65 72 20 3d 3d 3d 20 27 70 68 70 27 29 20 7b 0a 72 65 74 75 72 6e .if.($caller.===.'php').{.return
72aa0 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 5c 6e 22 2e ."@echo.off\r\n".."pushd..\r\n".
72ac0 0a 22 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 50 48 50 5f 50 52 4f 58 59 3d ."cd.%~dp0\r\n".."set.PHP_PROXY=
72ae0 25 43 44 25 5c 5c 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 5c 72 5c 6e 22 2e 0a 22 63 64 %CD%\\composer-php.bat\r\n".."cd
72b00 20 22 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 .".escapeshellarg(dirname($binPa
72b20 74 68 29 29 2e 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 th))."\r\n".."set.BIN_TARGET=%CD
72b40 25 5c 5c 22 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a %\\".basename($binPath)."\r\n"..
72b60 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 22 25 50 48 50 5f 50 52 4f 58 59 25 20 5c 22 25 42 49 4e 5f "popd\r\n".."%PHP_PROXY%.\"%BIN_
72b80 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 TARGET%\".%*\r\n";.}.}..return."
72ba0 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 5c 6e 22 2e 0a 22 @echo.off\r\n".."pushd..\r\n".."
72bc0 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 65 73 68 65 6c 6c cd.%~dp0\r\n".."cd.".escapeshell
72be0 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 5c 6e 22 2e 0a 22 arg(dirname($binPath))."\r\n".."
72c00 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 65 6e 61 6d 65 28 set.BIN_TARGET=%CD%\\".basename(
72c20 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 6e 22 2e 0a 24 63 $binPath)."\r\n".."popd\r\n"..$c
72c40 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 2a 5c 72 5c 6e 22 aller.".\"%BIN_TARGET%\".%*\r\n"
72c60 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 72 61 74 65 57 69 ;.}..private.function.generateWi
72c80 6e 64 6f 77 73 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 24 62 69 6e 54 6f 56 65 6e 64 ndowsPhpProxyCode().{.$binToVend
72ca0 6f 72 20 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 or.=.$this->filesystem->findShor
72cc0 74 65 73 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2c 20 24 74 68 69 73 2d 3e 76 testPath($this->binDir,.$this->v
72ce0 65 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 0a 22 40 65 63 68 6f 20 endorDir,.true);..return."@echo.
72d00 6f 66 66 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 6c 6f 63 61 6c 20 65 6e 61 62 6c 65 64 65 6c 61 79 off\r\n"..."setlocal.enabledelay
72d20 65 64 65 78 70 61 6e 73 69 6f 6e 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 42 49 4e 5f 44 49 52 3d edexpansion\r\n"..."set.BIN_DIR=
72d40 25 7e 64 70 30 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 56 45 4e 44 4f 52 5f 44 49 52 3d 25 42 49 %~dp0\r\n"..."set.VENDOR_DIR=%BI
72d60 4e 5f 44 49 52 25 5c 5c 22 2e 24 62 69 6e 54 6f 56 65 6e 64 6f 72 2e 22 5c 72 5c 6e 22 20 2e 0a N_DIR%\\".$binToVendor."\r\n"...
72d80 22 73 65 74 20 44 49 52 53 3d 2e 5c 72 5c 6e 22 20 2e 0a 22 46 4f 52 20 2f 44 20 25 25 56 20 49 "set.DIRS=.\r\n"..."FOR./D.%%V.I
72da0 4e 20 28 25 56 45 4e 44 4f 52 5f 44 49 52 25 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a N.(%VENDOR_DIR%\\*).DO.(\r\n"...
72dc0 22 20 20 20 20 46 4f 52 20 2f 44 20 25 25 50 20 49 4e 20 28 25 25 56 5c 5c 2a 29 20 44 4f 20 28 "....FOR./D.%%P.IN.(%%V\\*).DO.(
72de0 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 20 20 20 20 73 65 74 20 44 49 52 53 3d 21 44 49 52 53 21 \r\n"..."........set.DIRS=!DIRS!
72e00 3b 25 25 7e 66 50 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 29 5c 72 5c 6e 22 20 2e 0a 22 29 5c 72 ;%%~fP\r\n"..."....)\r\n"...")\r
72e20 5c 6e 22 20 2e 0a 22 70 68 70 2e 65 78 65 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 21 \n"..."php.exe.-d.include_path=!
72e40 44 49 52 53 21 20 25 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 DIRS!.%*\r\n";.}..private.functi
72e60 6f 6e 20 67 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 0a 7b on.generateUnixyPhpProxyCode().{
72e80 0a 24 62 69 6e 54 6f 56 65 6e 64 6f 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 .$binToVendor.=.$this->filesyste
72ea0 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 m->findShortestPath($this->binDi
72ec0 72 2c 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 r,.$this->vendorDir,.true);..ret
72ee0 75 72 6e 0a 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 22 53 52 43 5f urn."#!/usr/bin/env.sh\n".."SRC_
72f00 44 49 52 3d 60 70 77 64 60 5c 6e 22 2e 0a 22 42 49 4e 5f 44 49 52 3d 60 64 69 72 6e 61 6d 65 20 DIR=`pwd`\n".."BIN_DIR=`dirname.
72f20 24 30 60 5c 6e 22 2e 0a 22 56 45 4e 44 4f 52 5f 44 49 52 3d 5c 24 42 49 4e 5f 44 49 52 2f 22 2e $0`\n".."VENDOR_DIR=\$BIN_DIR/".
72f40 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 69 6e 54 6f 56 65 6e 64 6f 72 29 2e 22 5c 6e escapeshellarg($binToVendor)."\n
72f60 22 2e 0a 22 44 49 52 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 ".."DIRS=\"\"\n".."for.vendor.in
72f80 20 5c 24 56 45 4e 44 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 .\$VENDOR_DIR/*;.do\n".."....if.
72fa0 5b 20 2d 64 20 5c 22 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 [.-d.\"\$vendor\".];.then\n"..".
72fc0 20 20 20 20 20 20 20 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 .......for.package.in.\$vendor/*
72fe0 3b 20 64 6f 5c 6e 22 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 ;.do\n".."............if.[.-d.\"
73000 5c 24 70 61 63 6b 61 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 \$package\".];.then\n"..".......
73020 20 20 20 20 20 20 20 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 .........DIRS=\"\${DIRS}:\${pack
73040 61 67 65 7d 5c 22 5c 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 age}\"\n".."............fi\n".."
73060 20 20 20 20 20 20 20 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 ........done\n".."....fi\n".."do
73080 6e 65 5c 6e 22 2e 0a 22 70 68 70 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 5c 22 2e 5c ne\n".."php.-d.include_path=\".\
730a0 24 44 49 52 53 5c 22 20 24 40 5c 6e 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a $DIRS\".$@\n";.}.}.<?php........
730c0 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 6c 65 72 ....namespace.Composer\Installer
730e0 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 65 49 ;..use.Composer\Package\PackageI
73100 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 65 nterface;.use.Composer\Downloade
73120 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 5c r\DownloadManager;.use.Composer\
73140 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
73160 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 6a 65 63 74 49 6e 73 terface;........class.ProjectIns
73180 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 72 49 6e 74 65 72 taller.implements.InstallerInter
731a0 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 70 72 69 face.{.private.$installPath;.pri
731c0 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 vate.$downloadManager;..public.f
731e0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 unction.__construct($installPath
73200 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e ,.DownloadManager.$dm).{.$this->
73220 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 72 74 72 69 6d 28 73 74 72 74 72 28 24 69 6e 73 74 61 installPath.=.rtrim(strtr($insta
73240 6c 6c 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 24 74 llPath,.'\\',.'/'),.'/').'/';.$t
73260 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 6d 3b 0a 7d 0a 0a 0a his->downloadManager.=.$dm;.}...
73280 0a 0a 0a 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 .....public.function.supports($p
732a0 61 63 6b 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 ackageType).{.return.true;.}....
732c0 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 64 28 49 6e 73 .public.function.isInstalled(Ins
732e0 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,
73300 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 72 65 .PackageInterface.$package).{.re
73320 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 6f turn.false;.}.....public.functio
73340 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 79 49 6e 74 n.install(InstalledRepositoryInt
73360 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 20 24 erface.$repo,.PackageInterface.$
73380 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 73 2d package).{.$installPath.=.$this-
733a0 3e 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 >installPath;.if.(file_exists($i
733c0 6e 73 74 61 6c 6c 50 61 74 68 29 20 26 26 20 28 63 6f 75 6e 74 28 67 6c 6f 62 28 24 69 6e 73 74 nstallPath).&&.(count(glob($inst
733e0 61 6c 6c 50 61 74 68 2e 27 2a 27 29 29 20 7c 7c 20 28 63 6f 75 6e 74 28 67 6c 6f 62 28 24 69 6e allPath.'*')).||.(count(glob($in
73400 73 74 61 6c 6c 50 61 74 68 2e 27 2e 2a 27 29 29 20 3e 20 32 29 29 29 20 7b 0a 74 68 72 6f 77 20 stallPath.'.*')).>.2))).{.throw.
73420 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 50 new.\InvalidArgumentException("P
73440 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 61 74 68 20 69 73 roject.directory.$installPath.is
73460 20 6e 6f 74 20 65 6d 70 74 79 2e 22 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 69 6e .not.empty.");.}.if.(!is_dir($in
73480 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a 6d 6b 64 69 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 stallPath)).{.mkdir($installPath
734a0 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 ,.0777,.true);.}.$this->download
734c0 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 Manager->download($package,.$ins
734e0 74 61 6c 6c 50 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 tallPath);.}.....public.function
73500 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 49 6e 74 65 72 .update(InstalledRepositoryInter
73520 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 69 6e face.$repo,.PackageInterface.$in
73540 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 65 74 29 itial,.PackageInterface.$target)
73560 0a 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
73580 65 70 74 69 6f 6e 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 70 eption("not.supported");.}.....p
735a0 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
735c0 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
735e0 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 74 68 72 6f 77 20 kageInterface.$package).{.throw.
73600 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 6e new.\InvalidArgumentException("n
73620 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ot.supported");.}........public.
73640 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 67 65 49 function.getInstallPath(PackageI
73660 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 24 74 68 69 nterface.$package).{.return.$thi
73680 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a s->installPath;.}.}.<?php.......
736a0 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 6c 65 .....namespace.Composer\Installe
736c0 72 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 43 r;..use.Composer\Composer;.use.C
736e0 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 6f 6d 70 omposer\IO\IOInterface;.use.Comp
73700 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 3b oser\Downloader\DownloadManager;
73720 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 6c 6c .use.Composer\Repository\Install
73740 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 70 6f edRepositoryInterface;.use.Compo
73760 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 73 ser\Package\PackageInterface;.us
73780 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 3b 0a 0a 0a 0a 0a e.Composer\Util\Filesystem;.....
737a0 0a 0a 0a 63 6c 61 73 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d ...class.LibraryInstaller.implem
737c0 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 6f 74 65 63 ents.InstallerInterface.{.protec
737e0 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 76 65 6e 64 6f 72 ted.$composer;.protected.$vendor
73800 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 Dir;.protected.$binDir;.protecte
73820 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 d.$downloadManager;.protected.$i
73840 6f 3b 0a 70 72 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 66 o;.protected.$type;.protected.$f
73860 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ilesystem;.........public.functi
73880 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 2c 20 on.__construct(IOInterface.$io,.
738a0 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 Composer.$composer,.$type.=.'lib
738c0 72 61 72 79 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 rary').{.$this->composer.=.$comp
738e0 6f 73 65 72 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 oser;.$this->downloadManager.=.$
73900 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 3b 0a composer->getDownloadManager();.
73920 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 $this->io.=.$io;.$this->type.=.$
73940 74 79 70 65 3b 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 type;..$this->filesystem.=.new.F
73960 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 ilesystem();.$this->vendorDir.=.
73980 72 74 72 69 6d 28 24 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 rtrim($composer->getConfig()->ge
739a0 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 62 69 t('vendor-dir'),.'/');.$this->bi
739c0 6e 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 nDir.=.rtrim($composer->getConfi
739e0 67 28 29 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 0a g()->get('bin-dir'),.'/');.}....
73a00 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 61 .public.function.supports($packa
73a20 67 65 54 79 70 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 geType).{.return.$packageType.==
73a40 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 20 7c 7c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d =.$this->type.||.null.===.$this-
73a60 3e 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 69 73 49 >type;.}.....public.function.isI
73a80 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 79 49 6e 74 65 nstalled(InstalledRepositoryInte
73aa0 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
73ac0 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 50 61 63 6b 61 ackage).{.return.$repo->hasPacka
73ae0 67 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 20 69 73 5f 72 65 61 64 61 62 6c 65 28 24 74 68 69 ge($package).&&.is_readable($thi
73b00 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 29 3b 0a 7d 0a s->getInstallPath($package));.}.
73b20 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 74 ....public.function.install(Inst
73b40 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 20 alledRepositoryInterface.$repo,.
73b60 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 74 68 PackageInterface.$package).{.$th
73b80 69 73 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 24 64 6f 77 6e is->initializeVendorDir();.$down
73ba0 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 6c 6c 50 61 74 68 loadPath.=.$this->getInstallPath
73bc0 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 ($package);....if.(!is_readable(
73be0 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b $downloadPath).&&.$repo->hasPack
73c00 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 age($package)).{.$this->removeBi
73c20 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 naries($package);.}..$this->inst
73c40 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c allCode($package);.$this->instal
73c60 6c 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 72 65 70 6f 2d lBinaries($package);.if.(!$repo-
73c80 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 72 65 70 6f 2d 3e >hasPackage($package)).{.$repo->
73ca0 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a addPackage(clone.$package);.}.}.
73cc0 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
73ce0 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
73d00 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
73d20 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f eInterface.$target).{.if.(!$repo
73d40 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 ->hasPackage($initial)).{.throw.
73d60 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 50 new.\InvalidArgumentException('P
73d80 61 63 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 69 6e 69 74 ackage.is.not.installed:.'.$init
73da0 69 61 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 ial);.}..$this->initializeVendor
73dc0 44 69 72 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 69 Dir();..$this->removeBinaries($i
73de0 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 43 6f 64 65 28 24 69 6e 69 74 nitial);.$this->updateCode($init
73e00 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e ial,.$target);.$this->installBin
73e20 61 72 69 65 73 28 24 74 61 72 67 65 74 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 aries($target);.$repo->removePac
73e40 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 kage($initial);.if.(!$repo->hasP
73e60 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 61 63 ackage($target)).{.$repo->addPac
73e80 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 75 62 kage(clone.$target);.}.}.....pub
73ea0 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 65 64 lic.function.uninstall(Installed
73ec0 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 61 RepositoryInterface.$repo,.Packa
73ee0 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 72 65 geInterface.$package).{.if.(!$re
73f00 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 72 65 po->hasPackage($package)).{...re
73f20 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 6e 74 turn;.throw.new.\InvalidArgument
73f40 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 61 6c Exception('Package.is.not.instal
73f60 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f led:.'.$package);.}..$this->remo
73f80 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 6f 76 65 42 veCode($package);.$this->removeB
73fa0 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 6d 6f 76 65 inaries($package);.$repo->remove
73fc0 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 Package($package);..$downloadPat
73fe0 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 24 70 h.=.$this->getPackageBasePath($p
74000 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 ackage);.if.(strpos($package->ge
74020 74 4e 61 6d 65 28 29 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 tName(),.'/')).{.$packageVendorD
74040 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 69 66 20 ir.=.dirname($downloadPath);.if.
74060 28 69 73 5f 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 20 26 26 20 21 67 (is_dir($packageVendorDir).&&.!g
74080 6c 6f 62 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 2e 27 2f 2a 27 29 29 20 7b 0a 40 lob($packageVendorDir.'/*')).{.@
740a0 72 6d 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a rmdir($packageVendorDir);.}.}.}.
740c0 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
740e0 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 7b 0a th(PackageInterface.$package).{.
74100 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 $targetDir.=.$package->getTarget
74120 44 69 72 28 29 3b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 Dir();.return.$this->getPackageB
74140 61 73 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 asePath($package)...($targetDir.
74160 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 ?.'/'.$targetDir.:.'');.}..prote
74180 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 cted.function.getPackageBasePath
741a0 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 74 (PackageInterface.$package).{.$t
741c0 68 69 73 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 72 65 74 75 his->initializeVendorDir();.retu
741e0 72 6e 20 28 24 74 68 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 rn.($this->vendorDir.?.$this->ve
74200 6e 64 6f 72 44 69 72 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 ndorDir.'/'.:.'')...$package->ge
74220 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 tPrettyName();.}..protected.func
74240 74 69 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 tion.installCode(PackageInterfac
74260 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 20 24 74 e.$package).{.$downloadPath.=.$t
74280 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 3b 0a 24 his->getInstallPath($package);.$
742a0 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 6c 6f 61 64 28 this->downloadManager->download(
742c0 24 70 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 $package,.$downloadPath);.}..pro
742e0 74 65 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 tected.function.updateCode(Packa
74300 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 74 geInterface.$initial,.PackageInt
74320 65 72 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 erface.$target).{.$downloadPath.
74340 3d 20 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 =.$this->getInstallPath($initial
74360 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 75 70 64 61 74 );.$this->downloadManager->updat
74380 65 28 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 e($initial,.$target,.$downloadPa
743a0 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 20 72 65 6d 6f 76 th);.}..protected.function.remov
743c0 65 43 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 eCode(PackageInterface.$package)
743e0 0a 7b 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 50 61 63 .{.$downloadPath.=.$this->getPac
74400 6b 61 67 65 42 61 73 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 64 kageBasePath($package);.$this->d
74420 6f 77 6e 6c 6f 61 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 ownloadManager->remove($package,
74440 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 63 74 65 64 20 66 75 .$downloadPath);.}..protected.fu
74460 6e 63 74 69 6f 6e 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 nction.getBinaries(PackageInterf
74480 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 61 63 6b 61 67 65 2d ace.$package).{.return.$package-
744a0 3e 67 65 74 42 69 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 >getBinaries();.}..protected.fun
744c0 63 74 69 6f 6e 20 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 ction.installBinaries(PackageInt
744e0 65 72 66 61 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 erface.$package).{.$binaries.=.$
74500 74 68 69 73 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 this->getBinaries($package);.if.
74520 28 21 24 62 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 (!$binaries).{.return;.}.foreach
74540 20 28 24 62 69 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 62 69 6e 50 61 74 68 20 .($binaries.as.$bin).{.$binPath.
74560 3d 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 =.$this->getInstallPath($package
74580 29 2e 27 2f 27 2e 24 62 69 6e 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 62 69 ).'/'.$bin;.if.(!file_exists($bi
745a0 6e 50 61 74 68 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 nPath)).{.$this->io->write('....
745c0 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 <warning>Skipped.installation.of
745e0 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 .'.$bin.'.for.package.'.$package
74600 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 66 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e ->getName().':.file.not.found.in
74620 20 70 61 63 6b 61 67 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a .package</warning>');.continue;.
74640 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 24 6c }..$this->initializeBinDir();.$l
74660 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 ink.=.$this->binDir.'/'.basename
74680 28 24 62 69 6e 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 ($bin);.if.(file_exists($link)).
746a0 7b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e 6b 29 29 20 7b 0a 0a 20 0a 20 0a 20 63 68 {.if.(is_link($link)).{.......ch
746c0 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 0a 7d 0a 24 mod($link,.0777.&.~umask());.}.$
746e0 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 53 6b 69 70 70 65 64 20 69 6e 73 this->io->write('....Skipped.ins
74700 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 tallation.of.'.$bin.'.for.packag
74720 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 6e 61 6d 65 20 e.'.$package->getName().':.name.
74740 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 61 6e 20 65 78 69 73 74 69 6e 67 20 66 69 6c 65 27 conflicts.with.an.existing.file'
74760 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f );.continue;.}.if.(defined('PHP_
74780 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 0a 20 69 66 20 WINDOWS_VERSION_BUILD')).{...if.
747a0 28 27 2e 62 61 74 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 50 61 74 68 2c 20 2d 34 29 ('.bat'.!==.substr($binPath,.-4)
747c0 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 ).{.file_put_contents($link,.$th
747e0 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 is->generateUnixyProxyCode($binP
74800 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 ath,.$link));.chmod($link,.0777.
74820 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 24 6c 69 6e 6b 20 2e 3d 20 27 2e 62 61 74 27 3b 0a 69 66 &.~umask());.$link..=.'.bat';.if
74840 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 .(file_exists($link)).{.$this->i
74860 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 o->write('....Skipped.installati
74880 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 2e 62 61 74 20 70 72 6f 78 79 20 66 6f 72 20 70 61 63 on.of.'.$bin.'.bat.proxy.for.pac
748a0 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 29 2e 27 3a 20 61 20 kage.'.$package->getName().':.a.
748c0 2e 62 61 74 20 70 72 6f 78 79 20 77 61 73 20 61 6c 72 65 61 64 79 20 69 6e 73 74 61 6c 6c 65 64 .bat.proxy.was.already.installed
748e0 27 29 3b 0a 7d 0a 7d 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 ');.}.}.if.(!file_exists($link))
74900 20 7b 0a 66 69 6c 65 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 .{.file_put_contents($link,.$thi
74920 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e s->generateWindowsProxyCode($bin
74940 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 77 64 20 3d Path,.$link));.}.}.else.{.$cwd.=
74960 20 67 65 74 63 77 64 28 29 3b 0a 74 72 79 20 7b 0a 0a 20 0a 20 24 72 65 6c 61 74 69 76 65 42 69 .getcwd();.try.{.....$relativeBi
74980 6e 20 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 n.=.$this->filesystem->findShort
749a0 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 50 61 74 68 29 3b 0a 63 68 64 69 72 28 estPath($link,.$binPath);.chdir(
749c0 64 69 72 6e 61 6d 65 28 24 6c 69 6e 6b 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 dirname($link));.if.(false.===.s
749e0 79 6d 6c 69 6e 6b 28 24 72 65 6c 61 74 69 76 65 42 69 6e 2c 20 24 6c 69 6e 6b 29 29 20 7b 0a 74 ymlink($relativeBin,.$link)).{.t
74a00 68 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 28 29 3b 0a 7d 0a 7d 20 hrow.new.\ErrorException();.}.}.
74a20 63 61 74 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 69 6c catch.(\ErrorException.$e).{.fil
74a40 65 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 e_put_contents($link,.$this->gen
74a60 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c erateUnixyProxyCode($binPath,.$l
74a80 69 6e 6b 29 29 3b 0a 7d 0a 63 68 64 69 72 28 24 63 77 64 29 3b 0a 7d 0a 63 68 6d 6f 64 28 24 6c ink));.}.chdir($cwd);.}.chmod($l
74aa0 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 ink,.0777.&.~umask());.}.}..prot
74ac0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 50 61 ected.function.removeBinaries(Pa
74ae0 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 62 69 6e 61 ckageInterface.$package).{.$bina
74b00 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 ries.=.$this->getBinaries($packa
74b20 67 65 29 3b 0a 69 66 20 28 21 24 62 69 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d ge);.if.(!$binaries).{.return;.}
74b40 0a 66 6f 72 65 61 63 68 20 28 24 62 69 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 .foreach.($binaries.as.$bin).{.$
74b60 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d link.=.$this->binDir.'/'.basenam
74b80 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e 6b 29 20 7c 7c 20 66 e($bin);.if.(is_link($link).||.f
74ba0 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 6c 69 6e ile_exists($link)).{.unlink($lin
74bc0 6b 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 2e 27 2e 62 61 k);.}.if.(file_exists($link.'.ba
74be0 74 27 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 3b 0a 7d 0a 7d t')).{.unlink($link.'.bat');.}.}
74c00 0a 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 .}..protected.function.initializ
74c20 65 56 65 6e 64 6f 72 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d eVendorDir().{.$this->filesystem
74c40 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 74 68 69 73 2d 3e 76 ->ensureDirectoryExists($this->v
74c60 65 6e 64 6f 72 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 65 endorDir);.$this->vendorDir.=.re
74c80 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f alpath($this->vendorDir);.}..pro
74ca0 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 42 69 6e 44 69 72 tected.function.initializeBinDir
74cc0 28 29 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 ().{.$this->filesystem->ensureDi
74ce0 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 24 74 rectoryExists($this->binDir);.$t
74d00 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 62 69 his->binDir.=.realpath($this->bi
74d20 6e 44 69 72 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 6e nDir);.}..protected.function.gen
74d40 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e erateWindowsProxyCode($bin,.$lin
74d60 6b 29 0a 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 k).{.$binPath.=.$this->filesyste
74d80 6d 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 m->findShortestPath($link,.$bin)
74da0 3b 0a 69 66 20 28 27 2e 62 61 74 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 ;.if.('.bat'.===.substr($bin,.-4
74dc0 29 20 7c 7c 20 27 2e 65 78 65 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 ).||.'.exe'.===.substr($bin,.-4)
74de0 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 ).{.$caller.=.'call';.}.else.{.$
74e00 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e 65 handle.=.fopen($bin,.'r');.$line
74e20 20 3d 20 66 67 65 74 73 28 24 68 61 6e 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c .=.fgets($handle);.fclose($handl
74e40 65 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 2f e);.if.(preg_match('{^#!/(?:usr/
74e60 62 69 6e 2f 65 6e 76 20 29 3f 28 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 24 bin/env.)?(?:[^/]+/)*(.+)$}m',.$
74e80 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d 28 line,.$match)).{.$caller.=.trim(
74ea0 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 $match[1]);.}.else.{.$caller.=.'
74ec0 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 45 43 48 4f 20 4f 46 46 5c 72 5c 6e php';.}.}..return."@ECHO.OFF\r\n
74ee0 22 2e 0a 22 53 45 54 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 7e 64 70 30 5c 5c 22 2e 65 73 63 61 ".."SET.BIN_TARGET=%~dp0\\".esca
74f00 70 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 27 5c peshellarg(dirname($binPath)).'\
74f20 5c 27 2e 62 61 73 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 7b \'.basename($binPath)."\r\n".."{
74f40 24 63 61 6c 6c 65 72 7d 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e $caller}.\"%BIN_TARGET%\".%*\r\n
74f60 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 67 65 6e 65 72 61 74 ";.}..protected.function.generat
74f80 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 7b 0a 24 eUnixyProxyCode($bin,.$link).{.$
74fa0 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 66 69 6e binPath.=.$this->filesystem->fin
74fc0 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 72 65 74 dShortestPath($link,.$bin);..ret
74fe0 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 52 43 5f urn."#!/usr/bin/env.sh\n"..'SRC_
75000 44 49 52 3d 22 60 70 77 64 60 22 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 22 60 64 69 72 6e 61 6d 65 DIR="`pwd`"'."\n"..'cd."`dirname
75020 20 22 24 30 22 60 22 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 ."$0"`"'."\n"..'cd.'.escapeshell
75040 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 6e 22 2e 0a 27 42 49 arg(dirname($binPath))."\n"..'BI
75060 4e 5f 54 41 52 47 45 54 3d 22 60 70 77 64 60 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 N_TARGET="`pwd`/'.basename($binP
75080 61 74 68 29 2e 22 5c 22 5c 6e 22 2e 0a 27 63 64 20 22 24 53 52 43 5f 44 49 52 22 27 2e 22 5c 6e ath)."\"\n"..'cd."$SRC_DIR"'."\n
750a0 22 2e 0a 27 22 24 42 49 4e 5f 54 41 52 47 45 54 22 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d 0a "..'"$BIN_TARGET"."$@"'."\n";.}.
750c0 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
750e0 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 65 72 5c 50 poser\Installer;..use.Composer\P
75100 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 43 6f 6d ackage\PackageInterface;.use.Com
75120 70 6f 73 65 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 poser\Package\AliasPackage;.use.
75140 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 79 49 6e Composer\Repository\RepositoryIn
75160 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
75180 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 63 65 3b 0a 75 \InstalledRepositoryInterface;.u
751a0 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 5c 4f se.Composer\DependencyResolver\O
751c0 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 peration\OperationInterface;.use
751e0 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 4f 70 65 .Composer\DependencyResolver\Ope
75200 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d ration\InstallOperation;.use.Com
75220 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
75240 6f 6e 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 on\UpdateOperation;.use.Composer
75260 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 5c 55 6e \DependencyResolver\Operation\Un
75280 69 6e 73 74 61 6c 6c 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 installOperation;.use.Composer\D
752a0 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 5c 4d 61 72 6b ependencyResolver\Operation\Mark
752c0 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d AliasInstalledOperation;.use.Com
752e0 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
75300 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 6e on\MarkAliasUninstalledOperation
75320 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 78 ;.use.Composer\Util\StreamContex
75340 74 46 61 63 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 61 74 tFactory;........class.Installat
75360 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 74 61 6c 6c 65 72 73 ionManager.{.private.$installers
75380 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 65 20 3d 20 61 72 72 .=.array();.private.$cache.=.arr
753a0 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 ay();.private.$notifiablePackage
753c0 73 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 72 65 s.=.array();..public.function.re
753e0 73 65 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 set().{.$this->notifiablePackage
75400 73 20 3d 20 61 72 72 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 s.=.array();.}.......public.func
75420 74 69 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 tion.addInstaller(InstallerInter
75440 66 61 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 face.$installer).{.array_unshift
75460 28 24 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 ($this->installers,.$installer);
75480 0a 24 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 .$this->cache.=.array();.}......
754a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 49 6e 73 74 61 6c 6c 65 72 .public.function.removeInstaller
754c0 28 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 72 29 0a (InstallerInterface.$installer).
754e0 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 6b 65 79 20 3d 20 61 72 72 61 79 5f 73 65 {.if.(false.!==.($key.=.array_se
75500 61 72 63 68 28 24 69 6e 73 74 61 6c 6c 65 72 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 arch($installer,.$this->installe
75520 72 73 2c 20 74 72 75 65 29 29 29 20 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 73 rs,.true))).{.array_splice($this
75540 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 2c 20 24 6b 65 79 2c 20 31 29 3b 0a 24 74 68 69 73 2d 3e 63 ->installers,.$key,.1);.$this->c
75560 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ache.=.array();.}.}.........publ
75580 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c ic.function.disableCustomInstall
755a0 65 72 73 28 29 0a 7b 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 ers().{.foreach.($this->installe
755c0 72 73 20 61 73 20 24 69 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 65 72 29 20 7b 0a 69 66 20 28 21 24 rs.as.$i.=>.$installer).{.if.(!$
755e0 69 6e 73 74 61 6c 6c 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 73 74 61 6c 6c 65 72 49 6e installer.instanceof.InstallerIn
75600 73 74 61 6c 6c 65 72 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 74 staller).{.continue;.}..unset($t
75620 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 5b 24 69 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a his->installers[$i]);.}.}.......
75640 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 65 72 ....public.function.getInstaller
75660 28 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 ($type).{.$type.=.strtolower($ty
75680 70 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 pe);..if.(isset($this->cache[$ty
756a0 70 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 pe])).{.return.$this->cache[$typ
756c0 65 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 e];.}..foreach.($this->installer
756e0 73 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 s.as.$installer).{.if.($installe
75700 72 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 r->supports($type)).{.return.$th
75720 69 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 is->cache[$type].=.$installer;.}
75740 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 78 .}..throw.new.\InvalidArgumentEx
75760 63 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 ception('Unknown.installer.type:
75780 20 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 .'.$type);.}..........public.fun
757a0 63 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 ction.isPackageInstalled(Install
757c0 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
757e0 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 24 70 kageInterface.$package).{.if.($p
75800 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 20 ackage.instanceof.AliasPackage).
75820 7b 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 {.return.$repo->hasPackage($pack
75840 61 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 age).&&.$this->isPackageInstalle
75860 64 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 d($repo,.$package->getAliasOf())
75880 3b 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 ;.}..return.$this->getInstaller(
758a0 24 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 $package->getType())->isInstalle
758c0 64 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 d($repo,.$package);.}........pub
758e0 6c 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 lic.function.execute(RepositoryI
75900 6e 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 nterface.$repo,.OperationInterfa
75920 63 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 ce.$operation).{.$method.=.$oper
75940 61 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 ation->getJobType();.$this->$met
75960 68 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 hod($repo,.$operation);.}.......
75980 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 52 65 70 6f 73 69 74 .public.function.install(Reposit
759a0 6f 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 oryInterface.$repo,.InstallOpera
759c0 74 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 tion.$operation).{.$package.=.$o
759e0 70 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 peration->getPackage();.$install
75a00 65 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 er.=.$this->getInstaller($packag
75a20 65 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 e->getType());.$installer->insta
75a40 6c 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 6d 61 72 6b ll($repo,.$package);.$this->mark
75a60 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a ForNotification($package);.}....
75a80 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 52 65 70 6f 73 ....public.function.update(Repos
75aa0 69 74 6f 72 79 49 6e 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 itoryInterface.$repo,.UpdateOper
75ac0 61 74 69 6f 6e 20 24 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 ation.$operation).{.$initial.=.$
75ae0 6f 70 65 72 61 74 69 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 operation->getInitialPackage();.
75b00 24 74 61 72 67 65 74 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 $target.=.$operation->getTargetP
75b20 61 63 6b 61 67 65 28 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 ackage();..$initialType.=.$initi
75b40 61 6c 2d 3e 67 65 74 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 al->getType();.$targetType.=.$ta
75b60 72 67 65 74 2d 3e 67 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 rget->getType();..if.($initialTy
75b80 70 65 20 3d 3d 3d 20 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 pe.===.$targetType).{.$installer
75ba0 20 3d 20 24 74 68 69 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 .=.$this->getInstaller($initialT
75bc0 79 70 65 29 3b 0a 24 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 ype);.$installer->update($repo,.
75be0 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 72 6b 46 $initial,.$target);.$this->markF
75c00 6f 72 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 24 74 61 72 67 65 74 29 3b 0a 7d 20 65 6c 73 65 20 orNotification($target);.}.else.
75c20 7b 0a 24 74 68 69 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 {.$this->getInstaller($initialTy
75c40 70 65 29 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 pe)->uninstall($repo,.$initial);
75c60 0a 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 74 61 72 67 65 74 54 79 70 65 .$this->getInstaller($targetType
75c80 29 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 0a 7d 0a )->install($repo,.$target);.}.}.
75ca0 0a 0a 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 6c .......public.function.uninstall
75cc0 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 55 6e 69 6e (RepositoryInterface.$repo,.Unin
75ce0 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 stallOperation.$operation).{.$pa
75d00 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 61 67 65 28 29 ckage.=.$operation->getPackage()
75d20 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c ;.$installer.=.$this->getInstall
75d40 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 69 6e 73 74 61 6c er($package->getType());.$instal
75d60 6c 65 72 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b ler->uninstall($repo,.$package);
75d80 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 6d 61 72 6b 41 6c .}........public.function.markAl
75da0 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 iasInstalled(RepositoryInterface
75dc0 20 24 72 65 70 6f 2c 20 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 .$repo,.MarkAliasInstalledOperat
75de0 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
75e00 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 0a 69 66 20 28 21 24 72 65 eration->getPackage();..if.(!$re
75e20 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 72 65 70 po->hasPackage($package)).{.$rep
75e40 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 67 65 29 3b 0a 7d o->addPackage(clone.$package);.}
75e60 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 6d 61 72 6b 41 6c .}........public.function.markAl
75e80 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 iasUninstalled(RepositoryInterfa
75ea0 63 65 20 24 72 65 70 6f 2c 20 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 ce.$repo,.MarkAliasUninstalledOp
75ec0 65 72 61 74 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 eration.$operation).{.$package.=
75ee0 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 3b 0a 0a 24 72 65 70 .$operation->getPackage();..$rep
75f00 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 7d 0a 0a 0a o->removePackage($package);.}...
75f20 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 50 .....public.function.getInstallP
75f40 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 7b ath(PackageInterface.$package).{
75f60 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 .$installer.=.$this->getInstalle
75f80 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 r($package->getType());..return.
75fa0 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b $installer->getInstallPath($pack
75fc0 61 67 65 29 3b 0a 7d 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 age);.}..public.function.notifyI
75fe0 6e 73 74 61 6c 6c 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 74 69 nstalls().{.foreach.($this->noti
76000 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 72 65 70 6f 55 72 6c 20 3d 3e 20 24 70 fiablePackages.as.$repoUrl.=>.$p
76020 61 63 6b 61 67 65 73 29 20 7b 0a 0a 20 69 66 20 28 73 74 72 70 6f 73 28 24 72 65 70 6f 55 72 6c ackages).{...if.(strpos($repoUrl
76040 2c 20 27 25 70 61 63 6b 61 67 65 25 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b ,.'%package%')).{.foreach.($pack
76060 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 ages.as.$package).{.$url.=.str_r
76080 65 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 eplace('%package%',.$package->ge
760a0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 72 65 70 6f 55 72 6c 29 3b 0a 0a 24 70 61 72 61 tPrettyName(),.$repoUrl);..$para
760c0 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 24 70 61 63 6b 61 67 ms.=.array(.'version'.=>.$packag
760e0 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 65 72 73 69 6f 6e 5f e->getPrettyVersion(),.'version_
76100 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 67 65 74 56 65 72 73 normalized'.=>.$package->getVers
76120 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 68 74 74 70 27 20 3d ion(),.);.$opts.=.array('http'.=
76140 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 54 27 2c 0a 27 68 65 >.array(.'method'.=>.'POST',.'he
76160 61 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 27 43 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 20 61 70 ader'.=>.array('Content-type:.ap
76180 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 27 plication/x-www-form-urlencoded'
761a0 29 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
761c0 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'.=>
761e0 20 33 2c 0a 29 0a 29 3b 0a 0a 24 63 6f 6e 74 65 78 74 20 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 .3,.).);..$context.=.StreamConte
76200 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 28 24 6f 70 74 73 29 3b 0a 40 66 xtFactory::getContext($opts);.@f
76220 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 ile_get_contents($url,.false,.$c
76240 6f 6e 74 65 78 74 29 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 6f 73 74 44 61 ontext);.}..continue;.}..$postDa
76260 74 61 20 3d 20 61 72 72 61 79 28 27 64 6f 77 6e 6c 6f 61 64 73 27 20 3d 3e 20 61 72 72 61 79 28 ta.=.array('downloads'.=>.array(
76280 29 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 63 6b 61 ));.foreach.($packages.as.$packa
762a0 67 65 29 20 7b 0a 24 70 6f 73 74 44 61 74 61 5b 27 64 6f 77 6e 6c 6f 61 64 73 27 5d 5b 5d 20 3d ge).{.$postData['downloads'][].=
762c0 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 .array(.'name'.=>.$package->getP
762e0 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 rettyName(),.'version'.=>.$packa
76300 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 7d 0a 0a 24 6f 70 74 73 20 3d 20 ge->getVersion(),.);.}..$opts.=.
76320 61 72 72 61 79 28 27 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 array('http'.=>.array(.'method'.
76340 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 27 43 6f =>.'POST',.'header'.=>.array('Co
76360 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 27 29 2c 0a ntent-Type:.application/json'),.
76380 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 6f 73 74 44 61 'content'.=>.json_encode($postDa
763a0 74 61 29 2c 0a 27 74 69 6d 65 6f 75 74 27 20 3d 3e 20 36 2c 0a 29 0a 29 3b 0a 0a 24 63 6f 6e 74 ta),.'timeout'.=>.6,.).);..$cont
763c0 65 78 74 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 65 74 43 ext.=.StreamContextFactory::getC
763e0 6f 6e 74 65 78 74 28 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 ontext($opts);.@file_get_content
76400 73 28 24 72 65 70 6f 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 78 74 29 3b 0a 7d 0a s($repoUrl,.false,.$context);.}.
76420 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .$this->reset();.}..private.func
76440 74 69 6f 6e 20 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 50 61 63 6b 61 67 65 tion.markForNotification(Package
76460 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 6b 61 Interface.$package).{.if.($packa
76480 67 65 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 29 20 7b 0a 24 74 68 69 ge->getNotificationUrl()).{.$thi
764a0 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e s->notifiablePackages[$package->
764c0 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 5d 5b 24 70 61 63 6b 61 67 65 2d 3e getNotificationUrl()][$package->
764e0 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 getName()].=.$package;.}.}.}.<?p
76500 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
76520 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 50 61 63 6b 61 67 \Installer;..use.Composer\Packag
76540 65 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 e\PackageInterface;.use.Composer
76560 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
76580 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 49 6e 73 74 61 nterface;........interface.Insta
765a0 6c 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 llerInterface.{.......public.fun
765c0 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 3b 0a 0a 0a ction.supports($packageType);...
765e0 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 73 74 61 6c 6c .......public.function.isInstall
76600 65 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 ed(InstalledRepositoryInterface.
76620 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 61 63 6b 61 67 65 $repo,.PackageInterface.$package
76640 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 69 6e 73 74 61 6c );........public.function.instal
76660 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.$
76680 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)
766a0 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 75 70 64 61 ;...........public.function.upda
766c0 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 20 te(InstalledRepositoryInterface.
766e0 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 6c $repo,.PackageInterface.$initial
76700 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 3b 0a 0a 0a 0a ,.PackageInterface.$target);....
76720 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 6c 28 49 6e ....public.function.uninstall(In
76740 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 65 70 6f stalledRepositoryInterface.$repo
76760 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 0a 0a 0a ,.PackageInterface.$package);...
76780 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 50 .....public.function.getInstallP
767a0 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 3b 0a ath(PackageInterface.$package);.
767c0 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
767e0 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 65 72 5c 43 poser\Installer;..use.Composer\C
76800 6f 6d 70 6f 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 5c 50 61 omposer;.use.Composer\Package\Pa
76820 63 6b 61 67 65 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 ckage;.use.Composer\IO\IOInterfa
76840 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 6f ce;.use.Composer\Autoload\Autolo
76860 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 69 adGenerator;.use.Composer\Reposi
76880 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 63 tory\InstalledRepositoryInterfac
768a0 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 49 e;.use.Composer\Package\PackageI
768c0 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 49 nterface;.......class.InstallerI
768e0 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 65 nstaller.extends.LibraryInstalle
76900 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 72 r.{.private.$installationManager
76920 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 3d ;.private.static.$classCounter.=
76940 20 30 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 5f 5f 63 6f .0;.........public.function.__co
76960 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 43 6f 6d 70 6f 73 65 nstruct(IOInterface.$io,.Compose
76980 72 20 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 r.$composer,.$type.=.'library').
769a0 7b 0a 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 {.parent::__construct($io,.$comp
769c0 6f 73 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 oser,.'composer-installer');.$th
769e0 69 73 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 is->installationManager.=.$compo
76a00 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 3b 0a 0a ser->getInstallationManager();..
76a20 24 72 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 79 $repo.=.$composer->getRepository
76a40 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 3b Manager()->getLocalRepository();
76a60 0a 66 6f 72 65 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 .foreach.($repo->getPackages().a
76a80 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 s.$package).{.if.('composer-inst
76aa0 61 6c 6c 65 72 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 aller'.===.$package->getType()).
76ac0 7b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b {.$this->registerInstaller($pack
76ae0 61 67 65 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 6f 6e 20 age);.}.}.}.....public.function.
76b00 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 72 install(InstalledRepositoryInter
76b20 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 61 face.$repo,.PackageInterface.$pa
76b40 63 6b 61 67 65 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 45 ckage).{.$extra.=.$package->getE
76b60 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 73 27 xtra();.if.(empty($extra['class'
76b80 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 75 65 ])).{.throw.new.\UnexpectedValue
76ba0 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 69 6e Exception('Error.while.installin
76bc0 67 20 27 2e 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 2e 27 2c g.'.$package->getPrettyName().',
76be0 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 6f .composer-installer.packages.sho
76c00 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 69 uld.have.a.class.defined.in.thei
76c20 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 0a r.extra.key.to.be.usable.');.}..
76c40 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 parent::install($repo,.$package)
76c60 3b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b ;.$this->registerInstaller($pack
76c80 61 67 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 age);.}.....public.function.upda
76ca0 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 20 te(InstalledRepositoryInterface.
76cc0 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 6c $repo,.PackageInterface.$initial
76ce0 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 24 65 ,.PackageInterface.$target).{.$e
76d00 78 74 72 61 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 xtra.=.$target->getExtra();.if.(
76d20 65 6d 70 74 79 28 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 empty($extra['class'])).{.throw.
76d40 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 45 new.\UnexpectedValueException('E
76d60 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 61 72 67 65 74 2d rror.while.installing.'.$target-
76d80 3e 67 65 74 50 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 >getPrettyName().',.composer-ins
76da0 74 61 6c 6c 65 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 taller.packages.should.have.a.cl
76dc0 61 73 73 20 64 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 ass.defined.in.their.extra.key.t
76de0 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 75 70 64 61 74 o.be.usable.');.}..parent::updat
76e00 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 e($repo,.$initial,.$target);.$th
76e20 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 74 61 72 67 65 74 29 3b 0a is->registerInstaller($target);.
76e40 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 49 6e 73 74 }..private.function.registerInst
76e60 61 6c 6c 65 72 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 aller(PackageInterface.$package)
76e80 0a 7b 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 .{.$downloadPath.=.$this->getIns
76ea0 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 65 78 74 72 61 20 3d 20 24 70 tallPath($package);..$extra.=.$p
76ec0 61 63 6b 61 67 65 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 ackage->getExtra();.$classes.=.i
76ee0 73 5f 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 65 78 74 72 s_array($extra['class']).?.$extr
76f00 61 5b 27 63 6c 61 73 73 27 5d 20 3a 20 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 a['class'].:.array($extra['class
76f20 27 5d 29 3b 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 ']);..$generator.=.$this->compos
76f40 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a 24 6d 61 70 er->getAutoloadGenerator();.$map
76f60 20 3d 20 24 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 .=.$generator->parseAutoloads(ar
76f80 72 61 79 28 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 ray(array($package,.$downloadPat
76fa0 68 29 29 2c 20 6e 65 77 20 50 61 63 6b 61 67 65 28 27 64 75 6d 6d 79 27 2c 20 27 31 2e 30 2e 30 h)),.new.Package('dummy',.'1.0.0
76fc0 2e 30 27 2c 20 27 31 2e 30 2e 30 27 29 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 20 3d 20 24 .0',.'1.0.0'));.$classLoader.=.$
76fe0 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 generator->createLoader($map);.$
77000 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 classLoader->register();..foreac
77020 68 20 28 24 63 6c 61 73 73 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 69 66 20 28 63 6c 61 h.($classes.as.$class).{.if.(cla
77040 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 2c 20 66 61 6c 73 65 29 29 20 7b 0a 24 63 6f 64 ss_exists($class,.false)).{.$cod
77060 65 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6c 61 73 73 4c 6f 61 64 e.=.file_get_contents($classLoad
77080 65 72 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 3b 0a 24 63 6f 64 65 20 3d 20 70 er->findFile($class));.$code.=.p
770a0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 63 6c 61 73 73 5c 73 2b 28 5c 53 2b 29 7d 6d 69 27 reg_replace('{^class\s+(\S+)}mi'
770c0 2c 20 27 63 6c 61 73 73 20 24 31 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a ,.'class.$1_composer_tmp'.self::
770e0 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2c 20 24 63 6f 64 65 29 3b 0a 65 76 61 6c 28 27 3f 3e 27 $classCounter,.$code);.eval('?>'
77100 2e 24 63 6f 64 65 29 3b 0a 24 63 6c 61 73 73 20 2e 3d 20 27 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d .$code);.$class..=.'_composer_tm
77120 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 3b 0a 73 65 6c 66 3a 3a 24 63 p'.self::$classCounter;.self::$c
77140 6c 61 73 73 43 6f 75 6e 74 65 72 2b 2b 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 6e lassCounter++;.}..$installer.=.n
77160 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 ew.$class($this->io,.$this->comp
77180 6f 73 65 72 29 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 oser);.$this->installationManage
771a0 72 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 73 74 61 6c 6c 65 72 29 3b 0a 7d 0a 7d r->addInstaller($installer);.}.}
771c0 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
771e0 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d mposer\Console;..use.Symfony\Com
77200 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 61 73 20 42 61 ponent\Console\Application.as.Ba
77220 73 65 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 seApplication;.use.Symfony\Compo
77240 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
77260 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
77280 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\
772a0 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 49 Component\Console\Output\OutputI
772c0 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 5c nterface;.use.Symfony\Component\
772e0 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
77300 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 6d e.Symfony\Component\Console\Form
77320 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 43 6f 6d 70 6f atter\OutputFormatter;.use.Compo
77340 73 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 ser\Command;.use.Composer\Comman
77360 64 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 d\Helper\DialogHelper;.use.Compo
77380 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 46 61 63 74 6f ser\Composer;.use.Composer\Facto
773a0 72 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 ry;.use.Composer\IO\IOInterface;
773c0 0a 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 .use.Composer\IO\ConsoleIO;.use.
773e0 43 6f 6d 70 6f 73 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 Composer\Json\JsonValidationExce
77400 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 6f 72 48 61 ption;.use.Composer\Util\ErrorHa
77420 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e ndler;.........class.Application
77440 20 65 78 74 65 6e 64 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 .extends.BaseApplication.{....pr
77460 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 otected.$composer;.....protected
77480 20 24 69 6f 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6c 6f 67 6f 20 3d 20 27 20 .$io;..private.static.$logo.=.'.
774a0 20 20 5f 5f 5f 5f 5f 5f 0a 20 20 2f 20 5f 5f 5f 5f 2f 5f 5f 5f 20 20 5f 5f 5f 5f 20 5f 5f 5f 20 ..______.../.____/___..____.___.
774c0 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 0a 20 2f 20 .____..____..________.._____../.
774e0 2f 20 20 20 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 60 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 5c /.../.__.\/.__.`__.\/.__.\/.__.\
77500 2f 20 5f 5f 5f 2f 20 5f 20 5c 2f 20 5f 5f 5f 2f 0a 2f 20 2f 5f 5f 5f 2f 20 2f 5f 2f 20 2f 20 2f /.___/._.\/.___/././___/./_/././
77520 20 2f 20 2f 20 2f 20 2f 20 2f 5f 2f 20 2f 20 2f 5f 2f 20 28 5f 5f 20 20 29 20 20 5f 5f 2f 20 2f ./././././_/././_/.(__..)..__/./
77540 0a 5c 5f 5f 5f 5f 2f 5c 5f 5f 5f 5f 2f 5f 2f 20 2f 5f 2f 20 2f 5f 2f 20 2e 5f 5f 5f 2f 5c 5f 5f .\____/\____/_/./_/./_/..___/\__
77560 5f 5f 2f 5f 5f 5f 5f 2f 5c 5f 5f 5f 2f 5f 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 __/____/\___/_/.................
77580 20 20 20 20 2f 5f 2f 0a 27 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ..../_/.';..public.function.__co
775a0 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 nstruct().{.if.(function_exists(
775c0 27 69 6e 69 5f 73 65 74 27 29 29 20 7b 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 68 'ini_set')).{.ini_set('xdebug.sh
775e0 6f 77 5f 65 78 63 65 70 74 69 6f 6e 5f 74 72 61 63 65 27 2c 20 66 61 6c 73 65 29 3b 0a 69 6e 69 ow_exception_trace',.false);.ini
77600 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 61 6d 27 2c 20 66 61 6c 73 65 29 3b 0a 0a 7d _set('xdebug.scream',.false);..}
77620 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 64 61 74 65 5f 64 65 66 61 75 .if.(function_exists('date_defau
77640 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 65 74 27 29 20 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 lt_timezone_set').&&.function_ex
77660 69 73 74 73 28 27 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 67 65 74 27 ists('date_default_timezone_get'
77680 29 29 20 7b 0a 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 65 74 28 40 )).{.date_default_timezone_set(@
776a0 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 67 65 74 28 29 29 3b 0a 7d 0a date_default_timezone_get());.}.
776c0 0a 45 72 72 6f 72 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 .ErrorHandler::register();.paren
776e0 74 3a 3a 5f 5f 63 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 t::__construct('Composer',.Compo
77700 73 65 72 3a 3a 56 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 ser::VERSION);.}.....public.func
77720 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 20 3d tion.run(InputInterface.$input.=
77740 20 6e 75 6c 6c 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 20 3d .null,.OutputInterface.$output.=
77760 20 6e 75 6c 6c 29 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 .null).{.if.(null.===.$output).{
77780 0a 24 73 74 79 6c 65 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 41 64 64 69 74 69 .$styles.=.Factory::createAdditi
777a0 6f 6e 61 6c 53 74 79 6c 65 73 28 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 65 77 20 4f onalStyles();.$formatter.=.new.O
777c0 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 6c 65 73 29 3b 0a 24 utputFormatter(null,.$styles);.$
777e0 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 28 43 6f 6e 73 6f output.=.new.ConsoleOutput(Conso
77800 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 4c 2c 20 6e 75 6c 6c leOutput::VERBOSITY_NORMAL,.null
77820 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 70 61 72 65 6e 74 3a ,.$formatter);.}..return.parent:
77840 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 0a 0a 0a 0a 70 75 62 :run($input,.$output);.}.....pub
77860 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 61 63 lic.function.doRun(InputInterfac
77880 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
778a0 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 6f 6c 65 49 4f 28 24 t).{.$this->io.=.new.ConsoleIO($
778c0 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 74 48 65 6c 70 65 72 input,.$output,.$this->getHelper
778e0 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 61 72 65 28 50 48 50 Set());..if.(version_compare(PHP
77900 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 7b 0a 24 6f 75 74 70 _VERSION,.'5.3.2',.'<')).{.$outp
77920 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 70 6f 73 65 72 20 6f ut->writeln('<warning>Composer.o
77940 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 48 50 20 35 2e 33 2e nly.officially.supports.PHP.5.3.
77960 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 74 20 6c 69 6b 65 6c 2.and.above,.you.will.most.likel
77980 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 20 79 6f 75 72 20 50 y.encounter.problems.with.your.P
779a0 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 64 69 6e 67 20 69 73 HP.'.PHP_VERSION.',.upgrading.is
779c0 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 61 72 6e 69 6e 67 3e .strongly.recommended.</warning>
779e0 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 53 45 52 5f 44 45 56 ');.}..if.(defined('COMPOSER_DEV
77a00 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 3e 67 65 74 43 6f 6d _WARNING_TIME').&&.$this->getCom
77a20 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 66 2d 75 70 64 61 74 mandName($input).!==.'self-updat
77a40 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 45 52 5f 44 45 56 5f e').{.if.(time().>.COMPOSER_DEV_
77a60 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 77 72 69 74 65 6c 6e WARNING_TIME).{.$output->writeln
77a80 28 73 70 72 69 6e 74 66 28 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 54 68 69 73 (sprintf('<warning>Warning:.This
77aa0 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 62 75 69 6c 64 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 69 .development.build.of.composer.i
77ac0 73 20 6f 76 65 72 20 33 30 20 64 61 79 73 20 6f 6c 64 2e 20 49 74 20 69 73 20 72 65 63 6f 6d 6d s.over.30.days.old..It.is.recomm
77ae0 65 6e 64 65 64 20 74 6f 20 75 70 64 61 74 65 20 69 74 20 62 79 20 72 75 6e 6e 69 6e 67 20 22 25 ended.to.update.it.by.running."%
77b00 73 20 73 65 6c 66 2d 75 70 64 61 74 65 22 20 74 6f 20 67 65 74 20 74 68 65 20 6c 61 74 65 73 74 s.self-update".to.get.the.latest
77b20 20 76 65 72 73 69 6f 6e 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 20 24 5f 53 45 52 56 45 52 5b 27 .version.</warning>',.$_SERVER['
77b40 50 48 50 5f 53 45 4c 46 27 5d 29 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 67 65 74 65 6e 76 28 27 43 PHP_SELF']));.}.}..if.(getenv('C
77b60 4f 4d 50 4f 53 45 52 5f 4e 4f 5f 49 4e 54 45 52 41 43 54 49 4f 4e 27 29 29 20 7b 0a 24 69 6e 70 OMPOSER_NO_INTERACTION')).{.$inp
77b80 75 74 2d 3e 73 65 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 ut->setInteractive(false);.}..if
77ba0 20 28 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 27 2d 2d .($input->hasParameterOption('--
77bc0 70 72 6f 66 69 6c 65 27 29 29 20 7b 0a 24 73 74 61 72 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 profile')).{.$startTime.=.microt
77be0 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 65 6e 61 62 6c 65 44 65 62 75 ime(true);.$this->io->enableDebu
77c00 67 67 69 6e 67 28 24 73 74 61 72 74 54 69 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 57 6f gging($startTime);.}..if.($newWo
77c20 72 6b 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 65 77 57 6f 72 6b 69 6e 67 44 69 72 28 rkDir.=.$this->getNewWorkingDir(
77c40 24 69 6e 70 75 74 29 29 20 7b 0a 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 20 3d 20 67 65 74 63 $input)).{.$oldWorkingDir.=.getc
77c60 77 64 28 29 3b 0a 63 68 64 69 72 28 24 6e 65 77 57 6f 72 6b 44 69 72 29 3b 0a 7d 0a 0a 24 72 65 wd();.chdir($newWorkDir);.}..$re
77c80 73 75 6c 74 20 3d 20 70 61 72 65 6e 74 3a 3a 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 sult.=.parent::doRun($input,.$ou
77ca0 74 70 75 74 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 tput);..if.(isset($oldWorkingDir
77cc0 29 29 20 7b 0a 63 68 64 69 72 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 29 3b 0a 7d 0a 0a 69 )).{.chdir($oldWorkingDir);.}..i
77ce0 66 20 28 69 73 73 65 74 28 24 73 74 61 72 74 54 69 6d 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d f.(isset($startTime)).{.$output-
77d00 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 4d 65 6d 6f 72 79 20 75 73 61 67 65 3a 20 27 2e >writeln('<info>Memory.usage:.'.
77d20 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 67 65 28 29 20 2f 20 31 30 32 34 20 round(memory_get_usage()./.1024.
77d40 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 20 28 70 65 61 6b 3a 20 27 2e 72 6f 75 6e 64 28 6d 65 /.1024,.2).'MB.(peak:.'.round(me
77d60 6d 6f 72 79 5f 67 65 74 5f 70 65 61 6b 5f 75 73 61 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 mory_get_peak_usage()./.1024./.1
77d80 30 32 34 2c 20 32 29 2e 27 4d 42 29 2c 20 74 69 6d 65 3a 20 27 2e 72 6f 75 6e 64 28 6d 69 63 72 024,.2).'MB),.time:.'.round(micr
77da0 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 73 74 61 72 74 54 69 6d 65 2c 20 32 29 2e 27 73 27 otime(true).-.$startTime,.2).'s'
77dc0 29 3b 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 0a 70 72 69 );.}..return.$result;.}......pri
77de0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 65 77 57 6f 72 6b 69 6e 67 44 69 72 28 49 vate.function.getNewWorkingDir(I
77e00 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 24 77 6f 72 6b 69 6e 67 nputInterface.$input).{.$working
77e20 44 69 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e Dir.=.$input->getParameterOption
77e40 28 61 72 72 61 79 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c 20 27 2d 64 27 29 29 3b 0a (array('--working-dir',.'-d'));.
77e60 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 6f 72 6b 69 6e 67 44 69 72 20 26 26 20 21 69 73 if.(false.!==.$workingDir.&&.!is
77e80 5f 64 69 72 28 24 77 6f 72 6b 69 6e 67 44 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c _dir($workingDir)).{.throw.new.\
77ea0 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 77 6f 72 6b 69 6e RuntimeException('Invalid.workin
77ec0 67 20 64 69 72 65 63 74 6f 72 79 20 73 70 65 63 69 66 69 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 g.directory.specified.');.}..ret
77ee0 75 72 6e 20 24 77 6f 72 6b 69 6e 67 44 69 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 urn.$workingDir;.}......public.f
77f00 75 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 unction.getComposer($required.=.
77f20 74 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 true).{.if.(null.===.$this->comp
77f40 6f 73 65 72 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 oser).{.try.{.$this->composer.=.
77f60 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 20 63 61 Factory::create($this->io);.}.ca
77f80 74 63 68 20 28 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 20 24 tch.(\InvalidArgumentException.$
77fa0 65 29 20 7b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d e).{.if.($required).{.$this->io-
77fc0 3e 77 72 69 74 65 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 65 78 69 74 28 31 >write($e->getMessage());.exit(1
77fe0 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 );.}.}.catch.(JsonValidationExce
78000 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 27 20 2d 20 27 20 2e 20 69 6d ption.$e).{.$errors.=.'.-.'...im
78020 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 20 2e 20 27 20 2d 20 27 2c 20 24 65 2d 3e 67 65 74 45 72 plode(PHP_EOL...'.-.',.$e->getEr
78040 72 6f 72 73 28 29 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 rors());.$message.=.$e->getMessa
78060 67 65 28 29 20 2e 20 27 3a 27 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 24 65 72 72 6f 72 73 3b 0a ge()...':'...PHP_EOL...$errors;.
78080 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f throw.new.JsonValidationExceptio
780a0 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d n($message);.}..}..return.$this-
780c0 3e 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 69 6f 6e >composer;.}.....public.function
780e0 20 67 65 74 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 0a .getIO().{.return.$this->io;.}..
78100 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 65 74 75 public.function.getHelp().{.retu
78120 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 67 6f 20 2e 20 70 61 72 65 6e 74 3a 3a 67 65 74 48 65 6c 70 rn.self::$logo...parent::getHelp
78140 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 67 65 74 ();.}.....protected.function.get
78160 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 DefaultCommands().{.$commands.=.
78180 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 3b 0a 24 63 parent::getDefaultCommands();.$c
781a0 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 41 62 6f 75 74 43 6f 6d ommands[].=.new.Command\AboutCom
781c0 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 43 6f 6d 6d 61 6e mand();.$commands[].=.new.Comman
781e0 64 5c 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d d\ConfigCommand();.$commands[].=
78200 20 6e 65 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 .new.Command\DependsCommand();.$
78220 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 6e 69 74 43 6f 6d commands[].=.new.Command\InitCom
78240 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 43 6f 6d 6d 61 6e mand();.$commands[].=.new.Comman
78260 64 5c 49 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 d\InstallCommand();.$commands[].
78280 3d 20 6e 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 =.new.Command\CreateProjectComma
782a0 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\
782c0 55 70 64 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 UpdateCommand();.$commands[].=.n
782e0 65 77 20 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 ew.Command\SearchCommand();.$com
78300 6d 61 6e 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 mands[].=.new.Command\ValidateCo
78320 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 43 6f 6d 6d 61 mmand();.$commands[].=.new.Comma
78340 6e 64 5c 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 nd\ShowCommand();.$commands[].=.
78360 6e 65 77 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 24 63 new.Command\RequireCommand();.$c
78380 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 75 6d 70 41 75 74 6f ommands[].=.new.Command\DumpAuto
783a0 6c 6f 61 64 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 loadCommand();.$commands[].=.new
783c0 20 43 6f 6d 6d 61 6e 64 5c 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 .Command\StatusCommand();.$comma
783e0 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 41 72 63 68 69 76 65 43 6f 6d 6d 61 nds[].=.new.Command\ArchiveComma
78400 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\
78420 44 69 61 67 6e 6f 73 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 DiagnoseCommand();.$commands[].=
78440 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e 64 28 29 3b .new.Command\RunScriptCommand();
78460 0a 0a 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 4c 45 5f ..if.('phar:'.===.substr(__FILE_
78480 5f 2c 20 30 2c 20 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 _,.0,.5)).{.$commands[].=.new.Co
784a0 6d 6d 61 6e 64 5c 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 mmand\SelfUpdateCommand();.}..re
784c0 74 75 72 6e 20 24 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 turn.$commands;.}.....protected.
784e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 function.getDefaultInputDefiniti
78500 6f 6e 28 29 0a 7b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 on().{.$definition.=.parent::get
78520 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 24 64 65 66 69 6e DefaultInputDefinition();.$defin
78540 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 6e ition->addOption(new.InputOption
78560 28 27 2d 2d 70 72 6f 66 69 6c 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a ('--profile',.null,.InputOption:
78580 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 69 6d 69 6e 67 20 61 6e 64 :VALUE_NONE,.'Display.timing.and
785a0 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 29 3b 0a 24 64 .memory.usage.information'));.$d
785c0 65 66 69 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 efinition->addOption(new.InputOp
785e0 74 69 6f 6e 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c 20 27 2d 64 27 2c 20 49 6e 70 75 tion('--working-dir',.'-d',.Inpu
78600 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 49 66 20 73 70 65 tOption::VALUE_REQUIRED,.'If.spe
78620 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 65 20 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79 20 cified,.use.the.given.directory.
78640 61 73 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 2e 27 29 29 3b 0a 0a 72 65 74 75 72 as.working.directory.'));..retur
78660 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 n.$definition;.}.....protected.f
78680 75 6e 63 74 69 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 unction.getDefaultHelperSet().{.
786a0 24 68 65 6c 70 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 $helperSet.=.parent::getDefaultH
786c0 65 6c 70 65 72 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 elperSet();..$helperSet->set(new
786e0 20 44 69 61 6c 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 .DialogHelper());..return.$helpe
78700 72 53 65 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 rSet;.}.}.<?php............names
78720 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 pace.Composer\Console;..use.Symf
78740 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\
78760 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 74 6d 6c 4f OutputFormatter;.....class.HtmlO
78780 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 46 6f 72 utputFormatter.extends.OutputFor
787a0 6d 61 74 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 matter.{.private.static.$availab
787c0 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 33 30 20 3d leForegroundColors.=.array(.30.=
787e0 3e 20 27 62 6c 61 63 6b 27 2c 0a 33 31 20 3d 3e 20 27 72 65 64 27 2c 0a 33 32 20 3d 3e 20 27 67 >.'black',.31.=>.'red',.32.=>.'g
78800 72 65 65 6e 27 2c 0a 33 33 20 3d 3e 20 27 79 65 6c 6c 6f 77 27 2c 0a 33 34 20 3d 3e 20 27 62 6c reen',.33.=>.'yellow',.34.=>.'bl
78820 75 65 27 2c 0a 33 35 20 3d 3e 20 27 6d 61 67 65 6e 74 61 27 2c 0a 33 36 20 3d 3e 20 27 63 79 61 ue',.35.=>.'magenta',.36.=>.'cya
78840 6e 27 2c 0a 33 37 20 3d 3e 20 27 77 68 69 74 65 27 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 n',.37.=>.'white'.);.private.sta
78860 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 20 3d tic.$availableBackgroundColors.=
78880 20 61 72 72 61 79 28 0a 34 30 20 3d 3e 20 27 62 6c 61 63 6b 27 2c 0a 34 31 20 3d 3e 20 27 72 65 .array(.40.=>.'black',.41.=>.'re
788a0 64 27 2c 0a 34 32 20 3d 3e 20 27 67 72 65 65 6e 27 2c 0a 34 33 20 3d 3e 20 27 79 65 6c 6c 6f 77 d',.42.=>.'green',.43.=>.'yellow
788c0 27 2c 0a 34 34 20 3d 3e 20 27 62 6c 75 65 27 2c 0a 34 35 20 3d 3e 20 27 6d 61 67 65 6e 74 61 27 ',.44.=>.'blue',.45.=>.'magenta'
788e0 2c 0a 34 36 20 3d 3e 20 27 63 79 61 6e 27 2c 0a 34 37 20 3d 3e 20 27 77 68 69 74 65 27 0a 29 3b ,.46.=>.'cyan',.47.=>.'white'.);
78900 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 6f 6e .private.static.$availableOption
78920 73 20 3d 20 61 72 72 61 79 28 0a 31 20 3d 3e 20 27 62 6f 6c 64 27 2c 0a 34 20 3d 3e 20 27 75 6e s.=.array(.1.=>.'bold',.4.=>.'un
78940 64 65 72 73 63 6f 72 65 27 2c 0a 0a 20 0a 20 0a 20 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 derscore',.......);.....public.f
78960 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 24 73 74 79 6c 65 unction.__construct(array.$style
78980 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 72 75 s.=.array()).{.parent::__constru
789a0 63 74 28 74 72 75 65 2c 20 24 73 74 79 6c 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ct(true,.$styles);.}..public.fun
789c0 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 66 6f 72 6d 61 74 ction.format($message).{.$format
789e0 74 65 64 20 3d 20 70 61 72 65 6e 74 3a 3a 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a ted.=.parent::format($message);.
78a00 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b .return.preg_replace_callback("{
78a20 5c 30 33 33 5c 5b 28 5b 30 2d 39 3b 5d 2b 29 6d 28 2e 2a 3f 29 5c 30 33 33 5c 5b 30 6d 7d 73 22 \033\[([0-9;]+)m(.*?)\033\[0m}s"
78a40 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 66 6f 72 6d 61 74 48 74 6d 6c 27 29 2c 20 24 66 ,.array($this,.'formatHtml'),.$f
78a60 6f 72 6d 61 74 74 65 64 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 ormatted);.}..private.function.f
78a80 6f 72 6d 61 74 48 74 6d 6c 28 24 6d 61 74 63 68 65 73 29 0a 7b 0a 24 6f 75 74 20 3d 20 27 3c 73 ormatHtml($matches).{.$out.=.'<s
78aa0 70 61 6e 20 73 74 79 6c 65 3d 22 27 3b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 pan.style="';.foreach.(explode('
78ac0 3b 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 61 73 20 24 63 6f 64 65 29 20 7b 0a 69 66 20 ;',.$matches[1]).as.$code).{.if.
78ae0 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e (isset(self::$availableForegroun
78b00 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 24 6f 75 74 20 2e 3d 20 27 63 6f 6c 6f dColors[$code])).{.$out..=.'colo
78b20 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f r:'.self::$availableForegroundCo
78b40 6c 6f 72 73 5b 24 63 6f 64 65 5d 2e 27 3b 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 lors[$code].';';.}.elseif.(isset
78b60 28 73 65 6c 66 3a 3a 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 (self::$availableBackgroundColor
78b80 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 24 6f 75 74 20 2e 3d 20 27 62 61 63 6b 67 72 6f 75 6e 64 s[$code])).{.$out..=.'background
78ba0 2d 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f -color:'.self::$availableBackgro
78bc0 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 2e 27 3b 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 undColors[$code].';';.}.elseif.(
78be0 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 63 isset(self::$availableOptions[$c
78c00 6f 64 65 5d 29 29 20 7b 0a 73 77 69 74 63 68 20 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c ode])).{.switch.(self::$availabl
78c20 65 4f 70 74 69 6f 6e 73 5b 24 63 6f 64 65 5d 29 20 7b 0a 63 61 73 65 20 27 62 6f 6c 64 27 3a 0a eOptions[$code]).{.case.'bold':.
78c40 24 6f 75 74 20 2e 3d 20 27 66 6f 6e 74 2d 77 65 69 67 68 74 3a 62 6f 6c 64 3b 27 3b 0a 62 72 65 $out..=.'font-weight:bold;';.bre
78c60 61 6b 3b 0a 0a 63 61 73 65 20 27 75 6e 64 65 72 73 63 6f 72 65 27 3a 0a 24 6f 75 74 20 2e 3d 20 ak;..case.'underscore':.$out..=.
78c80 27 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 75 6e 64 65 72 6c 69 6e 65 3b 27 3b 0a 62 72 'text-decoration:underline;';.br
78ca0 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 20 2e 20 27 22 3e 27 2e 24 eak;.}.}.}..return.$out...'">'.$
78cc0 6d 61 74 63 68 65 73 5b 32 5d 2e 27 3c 2f 73 70 61 6e 3e 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a matches[2].'</span>';.}.}.<?php.
78ce0 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 41 75 ...........namespace.Composer\Au
78d00 74 6f 6c 6f 61 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 toload;..use.Composer\Config;.us
78d20 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f e.Composer\Installer\Installatio
78d40 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 nManager;.use.Composer\Package\A
78d60 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 61 63 6b 61 67 liasPackage;.use.Composer\Packag
78d80 65 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 e\PackageInterface;.use.Composer
78da0 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
78dc0 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 65 nterface;.use.Composer\Util\File
78de0 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 45 76 65 6e system;.use.Composer\Script\Even
78e00 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 69 70 74 tDispatcher;.use.Composer\Script
78e20 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 74 6f 6c 6f \ScriptEvents;......class.Autolo
78e40 61 64 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 76 65 6e 74 44 adGenerator.{....private.$eventD
78e60 69 73 70 61 74 63 68 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 ispatcher;..public.function.__co
78e80 6e 73 74 72 75 63 74 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 nstruct(EventDispatcher.$eventDi
78ea0 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 spatcher).{.$this->eventDispatch
78ec0 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 er.=.$eventDispatcher;.}..public
78ee0 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 49 .function.dump(Config.$config,.I
78f00 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 6c 6f 63 nstalledRepositoryInterface.$loc
78f20 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 6d 61 69 6e 50 61 alRepo,.PackageInterface.$mainPa
78f40 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 20 24 69 6e 73 74 ckage,.InstallationManager.$inst
78f60 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 72 2c 20 24 73 63 allationManager,.$targetDir,.$sc
78f80 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 73 75 66 66 69 78 20 anPsr0Packages.=.false,.$suffix.
78fa0 3d 20 27 27 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 =.'').{.$filesystem.=.new.Filesy
78fc0 73 74 65 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 stem();.$filesystem->ensureDirec
78fe0 74 6f 72 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 toryExists($config->get('vendor-
79000 64 69 72 27 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d dir'));.$basePath.=.$filesystem-
79020 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 67 65 74 63 77 64 28 29 29 3b 0a 24 76 65 6e 64 6f >normalizePath(getcwd());.$vendo
79040 72 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 rPath.=.$filesystem->normalizePa
79060 74 68 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 th(realpath($config->get('vendor
79080 2d 64 69 72 27 29 29 29 3b 0a 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 20 -dir')));.$useGlobalIncludePath.
790a0 3d 20 28 62 6f 6f 6c 29 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 75 73 65 2d 69 6e 63 6c 75 =.(bool).$config->get('use-inclu
790c0 64 65 2d 70 61 74 68 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 de-path');.$targetDir.=.$vendorP
790e0 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-
79100 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
79120 72 29 3b 0a 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 r);..$vendorPathCode.=.$filesyst
79140 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 72 65 61 6c 70 61 74 em->findShortestPathCode(realpat
79160 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 74 72 75 65 h($targetDir),.$vendorPath,.true
79180 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 20 3d 20 73 74 72 5f 72 65 70 6c 61 );.$vendorPathCode52.=.str_repla
791a0 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 27 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 ce('__DIR__',.'dirname(__FILE__)
791c0 27 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 ',.$vendorPathCode);.$vendorPath
791e0 54 6f 54 61 72 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 ToTargetDirCode.=.$filesystem->f
79200 69 6e 64 53 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 indShortestPathCode($vendorPath,
79220 20 72 65 61 6c 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 .realpath($targetDir),.true);..$
79240 61 70 70 42 61 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 appBaseDirCode.=.$filesystem->fi
79260 6e 64 53 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 ndShortestPathCode($vendorPath,.
79280 24 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 $basePath,.true);.$appBaseDirCod
792a0 65 20 3d 20 73 74 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 e.=.str_replace('__DIR__',.'$ven
792c0 64 6f 72 44 69 72 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 dorDir',.$appBaseDirCode);..$nam
792e0 65 73 70 61 63 65 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 espacesFile.=.<<<EOF.<?php..//.a
79300 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 utoload_namespaces.php.generated
79320 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 20 3d 20 24 76 65 6e .by.Composer..\$vendorDir.=.$ven
79340 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 dorPathCode52;.\$baseDir.=.$appB
79360 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 0a 45 4f 46 3b aseDirCode;..return.array(..EOF;
79380 0a 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 63 6b ..$packageMap.=.$this->buildPack
793a0 61 67 65 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 6d 61 ageMap($installationManager,.$ma
793c0 69 6e 50 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 inPackage,.$localRepo->getCanoni
793e0 63 61 6c 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 24 74 68 calPackages());.$autoloads.=.$th
79400 69 73 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 2c 20 is->parseAutoloads($packageMap,.
79420 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f $mainPackage);..foreach.($autolo
79440 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
79460 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()
79480 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
794a0 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
794c0 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e ode($filesystem,.$basePath,.$ven
794e0 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 64 50 72 65 66 dorPath,.$path);.}.$exportedPref
79500 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 20 74 72 75 65 ix.=.var_export($namespace,.true
79520 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 24 65 78 70 6f );.$namespacesFile..=."....$expo
79540 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 24 65 78 70 6f rtedPrefix.=>.";.if.(count($expo
79560 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 65 73 46 69 6c rtedPaths).>.1).{.$namespacesFil
79580 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 20 24 65 78 70 e..=."array(".implode(',.',.$exp
795a0 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 7b 0a 24 6e 61 ortedPaths)."),\n";.}.else.{.$na
795c0 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 74 68 73 5b 30 mespacesFile..=.$exportedPaths[0
795e0 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 65 20 2e 3d 20 ].",\n";.}.}.$namespacesFile..=.
79600 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 3c 45 4f 46 0a ");\n";..$classmapFile.=.<<<EOF.
79620 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 2e 70 68 70 20 <?php..//.autoload_classmap.php.
79640 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 6e 64 6f 72 44 generated.by.Composer..\$vendorD
79660 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 ir.=.$vendorPathCode52;.\$baseDi
79680 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 61 72 72 r.=.$appBaseDirCode;..return.arr
796a0 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 20 3d 20 ay(..EOF;....$targetDirLoader.=.
796c0 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 63 6b 61 null;.$mainAutoload.=.$mainPacka
796e0 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 61 63 6b ge->getAutoload();.if.($mainPack
79700 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 65 6d 70 74 79 28 24 6d age->getTargetDir().&&.!empty($m
79720 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 24 6c 65 76 65 6c 73 ainAutoload['psr-0'])).{.$levels
79740 20 3d 20 63 6f 75 6e 74 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 66 69 6c 65 73 79 73 74 65 .=.count(explode('/',.$filesyste
79760 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 m->normalizePath($mainPackage->g
79780 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 72 65 66 69 78 65 73 20 3d 20 69 6d etTargetDir())));.$prefixes.=.im
797a0 70 6c 6f 64 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 plode(',.',.array_map(function.(
797c0 24 70 72 65 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 $prefix).{.return.var_export($pr
797e0 65 66 69 78 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 efix,.true);.},.array_keys($main
79800 41 75 74 6f 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 Autoload['psr-0'])));.$baseDirFr
79820 6f 6d 54 61 72 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 omTargetDirCode.=.$filesystem->f
79840 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 74 61 72 67 65 74 44 69 72 2c 20 indShortestPathCode($targetDir,.
79860 24 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 0a 24 74 61 72 67 65 74 44 69 72 4c 6f 61 $basePath,.true);..$targetDirLoa
79880 64 65 72 20 3d 20 3c 3c 3c 45 4f 46 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 der.=.<<<EOF......public.static.
798a0 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 6c 6f 61 64 28 5c 24 63 6c 61 73 73 29 0a 20 20 20 20 7b function.autoload(\$class).....{
798c0 0a 20 20 20 20 20 20 20 20 5c 24 64 69 72 20 3d 20 24 62 61 73 65 44 69 72 46 72 6f 6d 54 61 72 .........\$dir.=.$baseDirFromTar
798e0 67 65 74 44 69 72 43 6f 64 65 20 2e 20 27 2f 27 3b 0a 20 20 20 20 20 20 20 20 5c 24 70 72 65 66 getDirCode...'/';.........\$pref
79900 69 78 65 73 20 3d 20 61 72 72 61 79 28 24 70 72 65 66 69 78 65 73 29 3b 0a 20 20 20 20 20 20 20 ixes.=.array($prefixes);........
79920 20 66 6f 72 65 61 63 68 20 28 5c 24 70 72 65 66 69 78 65 73 20 61 73 20 5c 24 70 72 65 66 69 78 .foreach.(\$prefixes.as.\$prefix
79940 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 ).{.............if.(0.!==.strpos
79960 28 5c 24 63 6c 61 73 73 2c 20 5c 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 (\$class,.\$prefix)).{..........
79980 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 .......continue;.............}..
799a0 20 20 20 20 20 20 20 20 20 20 20 5c 24 70 61 74 68 20 3d 20 5c 24 64 69 72 20 2e 20 69 6d 70 6c ...........\$path.=.\$dir...impl
799c0 6f 64 65 28 27 2f 27 2c 20 61 72 72 61 79 5f 73 6c 69 63 65 28 65 78 70 6c 6f 64 65 28 27 5c 5c ode('/',.array_slice(explode('\\
799e0 5c 5c 27 2c 20 5c 24 63 6c 61 73 73 29 2c 20 24 6c 65 76 65 6c 73 29 29 2e 27 2e 70 68 70 27 3b \\',.\$class),.$levels)).'.php';
79a00 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 5c 24 70 61 74 68 20 3d 20 73 74 72 65 61 .............if.(!\$path.=.strea
79a20 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 5c 24 70 61 74 68 29 29 20 m_resolve_include_path(\$path)).
79a40 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a {.................return.false;.
79a60 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 72 65 71 75 69 72 ............}.............requir
79a80 65 20 5c 24 70 61 74 68 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 e.\$path;..............return.tr
79aa0 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 20 24 ue;.........}.....}..EOF;.}....$
79ac0 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 73 63 61 6e 50 73 72 classMap.=.array();.if.($scanPsr
79ae0 30 50 61 63 6b 61 67 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 0Packages).{.foreach.($autoloads
79b00 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 61 74 68 ['psr-0'].as.$namespace.=>.$path
79b20 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 64 69 72 29 20 7b 0a s).{.foreach.($paths.as.$dir).{.
79b40 24 64 69 72 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 $dir.=.$filesystem->normalizePat
79b60 68 28 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 64 h($filesystem->isAbsolutePath($d
79b80 69 72 29 20 3f 20 24 64 69 72 20 3a 20 24 62 61 73 65 50 61 74 68 2e 27 2f 27 2e 24 64 69 72 29 ir).?.$dir.:.$basePath.'/'.$dir)
79ba0 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b ;.if.(!is_dir($dir)).{.continue;
79bc0 0a 7d 0a 24 77 68 69 74 65 6c 69 73 74 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 7b 25 73 2f 25 73 .}.$whitelist.=.sprintf(.'{%s/%s
79be0 2e 2b 28 3f 3c 21 28 3f 3c 21 2f 29 54 65 73 74 5c 2e 70 68 70 29 24 7d 27 2c 0a 70 72 65 67 5f .+(?<!(?<!/)Test\.php)$}',.preg_
79c00 71 75 6f 74 65 28 24 64 69 72 29 2c 0a 73 74 72 70 6f 73 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 quote($dir),.strpos($namespace,.
79c20 27 5f 27 29 20 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 74 '_').===.false.?.preg_quote(strt
79c40 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 20 3a 20 27 27 0a 29 r($namespace,.'\\',.'/')).:.''.)
79c60 3b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 3a 3a 63 72 ;.foreach.(ClassMapGenerator::cr
79c80 65 61 74 65 4d 61 70 28 24 64 69 72 2c 20 24 77 68 69 74 65 6c 69 73 74 29 20 61 73 20 24 63 6c eateMap($dir,.$whitelist).as.$cl
79ca0 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 6e 61 6d 65 ass.=>.$path).{.if.(''.===.$name
79cc0 73 70 61 63 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 6e space.||.0.===.strpos($class,.$n
79ce0 61 6d 65 73 70 61 63 65 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6c 61 73 73 4d 61 amespace)).{.if.(!isset($classMa
79d00 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 p[$class])).{.$path.=.$this->get
79d20 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c PathCode($filesystem,.$basePath,
79d40 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 24 63 6c 61 73 73 4d 61 70 5b .$vendorPath,.$path);.$classMap[
79d60 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d $class].=.$path.",\n";.}.}.}.}.}
79d80 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 3d 20 6e 65 77 .}..$autoloads['classmap'].=.new
79da0 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 6e 65 77 20 .\RecursiveIteratorIterator(new.
79dc0 5c 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 \RecursiveArrayIterator($autoloa
79de0 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f ds['classmap']));.foreach.($auto
79e00 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 66 6f 72 loads['classmap'].as.$dir).{.for
79e20 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 3a 3a 63 72 65 61 74 65 4d each.(ClassMapGenerator::createM
79e40 61 70 28 24 64 69 72 29 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 ap($dir).as.$class.=>.$path).{.$
79e60 70 61 74 68 20 3d 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 73 path.=.$this->getPathCode($files
79e80 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 ystem,.$basePath,.$vendorPath,.$
79ea0 70 61 74 68 29 3b 0a 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 path);.$classMap[$class].=.$path
79ec0 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 6b 73 6f 72 74 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 66 .",\n";.}.}..ksort($classMap);.f
79ee0 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 4d 61 70 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 oreach.($classMap.as.$class.=>.$
79f00 63 6f 64 65 29 20 7b 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 27 20 20 20 20 27 2e code).{.$classmapFile..=.'....'.
79f20 76 61 72 5f 65 78 70 6f 72 74 28 24 63 6c 61 73 73 2c 20 74 72 75 65 29 2e 27 20 3d 3e 20 27 2e var_export($class,.true).'.=>.'.
79f40 24 63 6f 64 65 3b 0a 7d 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 $code;.}.$classmapFile..=.");\n"
79f60 3b 0a 0a 24 66 69 6c 65 73 43 6f 64 65 20 3d 20 22 22 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 27 ;..$filesCode.=."";.$autoloads['
79f80 66 69 6c 65 73 27 5d 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 files'].=.new.\RecursiveIterator
79fa0 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 72 61 79 49 74 65 72 Iterator(new.\RecursiveArrayIter
79fc0 61 74 6f 72 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 29 29 3b 0a 66 6f 72 65 ator($autoloads['files']));.fore
79fe0 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 20 61 73 20 24 66 75 6e ach.($autoloads['files'].as.$fun
7a000 63 74 69 6f 6e 46 69 6c 65 29 20 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 2e 3d 20 27 20 20 20 20 ctionFile).{.$filesCode..=.'....
7a020 20 20 20 20 72 65 71 75 69 72 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 ....require.'.$this->getPathCode
7a040 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 ($filesystem,.$basePath,.$vendor
7a060 50 61 74 68 2c 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 2e 22 3b 5c 6e 22 3b 0a 7d 0a 0a 69 Path,.$functionFile).";\n";.}..i
7a080 66 20 28 21 24 73 75 66 66 69 78 29 20 7b 0a 24 73 75 66 66 69 78 20 3d 20 6d 64 35 28 75 6e 69 f.(!$suffix).{.$suffix.=.md5(uni
7a0a0 71 69 64 28 27 27 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 qid('',.true));.}..file_put_cont
7a0c0 65 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 ents($targetDir.'/autoload_names
7a0e0 70 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 paces.php',.$namespacesFile);.fi
7a100 6c 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 le_put_contents($targetDir.'/aut
7a120 6f 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 oload_classmap.php',.$classmapFi
7a140 6c 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 le);.if.($includePathFile.=.$thi
7a160 73 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 s->getIncludePathsFile($packageM
7a180 61 70 2c 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e ap,.$filesystem,.$basePath,.$ven
7a1a0 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 2c 20 24 61 70 70 dorPath,.$vendorPathCode52,.$app
7a1c0 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 6e 74 BaseDirCode)).{.file_put_content
7a1e0 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 68 70 s($targetDir.'/include_paths.php
7a200 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 75 74 ',.$includePathFile);.}.file_put
7a220 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 61 64 _contents($vendorPath.'/autoload
7a240 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 24 76 .php',.$this->getAutoloadFile($v
7a260 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 24 73 75 66 66 69 endorPathToTargetDirCode,.$suffi
7a280 78 29 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 x));.file_put_contents($targetDi
7a2a0 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 r.'/autoload_real.php',.$this->g
7a2c0 65 74 41 75 74 6f 6c 6f 61 64 52 65 61 6c 46 69 6c 65 28 74 72 75 65 2c 20 74 72 75 65 2c 20 28 etAutoloadRealFile(true,.true,.(
7a2e0 62 6f 6f 6c 29 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 2c 20 24 74 61 72 67 65 74 44 bool).$includePathFile,.$targetD
7a300 69 72 4c 6f 61 64 65 72 2c 20 24 66 69 6c 65 73 43 6f 64 65 2c 20 24 76 65 6e 64 6f 72 50 61 74 irLoader,.$filesCode,.$vendorPat
7a320 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c hCode,.$appBaseDirCode,.$suffix,
7a340 20 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 29 29 3b 0a 0a 0a 20 0a 20 24 .$useGlobalIncludePath));......$
7a360 73 6f 75 72 63 65 4c 6f 61 64 65 72 20 3d 20 66 6f 70 65 6e 28 5f 5f 44 49 52 5f 5f 2e 27 2f 43 sourceLoader.=.fopen(__DIR__.'/C
7a380 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 4c 6f lassLoader.php',.'r');.$targetLo
7a3a0 61 64 65 72 20 3d 20 66 6f 70 65 6e 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 43 6c 61 73 73 4c ader.=.fopen($targetDir.'/ClassL
7a3c0 6f 61 64 65 72 2e 70 68 70 27 2c 20 27 77 2b 27 29 3b 0a 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 oader.php',.'w+');.stream_copy_t
7a3e0 6f 5f 73 74 72 65 61 6d 28 24 73 6f 75 72 63 65 4c 6f 61 64 65 72 2c 20 24 74 61 72 67 65 74 4c o_stream($sourceLoader,.$targetL
7a400 6f 61 64 65 72 29 3b 0a 66 63 6c 6f 73 65 28 24 73 6f 75 72 63 65 4c 6f 61 64 65 72 29 3b 0a 66 oader);.fclose($sourceLoader);.f
7a420 63 6c 6f 73 65 28 24 74 61 72 67 65 74 4c 6f 61 64 65 72 29 3b 0a 75 6e 73 65 74 28 24 73 6f 75 close($targetLoader);.unset($sou
7a440 72 63 65 4c 6f 61 64 65 72 2c 20 24 74 61 72 67 65 74 4c 6f 61 64 65 72 29 3b 0a 0a 24 74 68 69 rceLoader,.$targetLoader);..$thi
7a460 73 2d 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 28 53 63 72 s->eventDispatcher->dispatch(Scr
7a480 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 29 3b 0a iptEvents::POST_AUTOLOAD_DUMP);.
7a4a0 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 65 4d }..public.function.buildPackageM
7a4c0 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 6c 61 ap(InstallationManager.$installa
7a4e0 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 24 6d tionManager,.PackageInterface.$m
7a500 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 0a 0a ainPackage,.array.$packages).{..
7a520 20 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 24 6d 61 69 6e .$packageMap.=.array(array($main
7a540 50 61 63 6b 61 67 65 2c 20 27 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 Package,.''));..foreach.($packag
7a560 65 73 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 20 69 es.as.$package).{.if.($package.i
7a580 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 63 6f 6e 74 69 6e nstanceof.AliasPackage).{.contin
7a5a0 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 0a 24 70 ue;.}..$packageMap[].=.array(.$p
7a5c0 61 63 6b 61 67 65 2c 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 ackage,.$installationManager->ge
7a5e0 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 0a 29 3b 0a 7d 0a 0a 72 65 74 tInstallPath($package).);.}..ret
7a600 75 72 6e 20 24 70 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 urn.$packageMap;.}.........publi
7a620 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 20 c.function.parseAutoloads(array.
7a640 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d $packageMap,.PackageInterface.$m
7a660 61 69 6e 50 61 63 6b 61 67 65 29 0a 7b 0a 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 ainPackage).{.$mainPackageMap.=.
7a680 61 72 72 61 79 5f 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 array_shift($packageMap);.$sorte
7a6a0 64 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 73 6f 72 74 50 61 63 6b 61 67 65 dPackageMap.=.$this->sortPackage
7a6c0 4d 61 70 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 Map($packageMap);.$sortedPackage
7a6e0 4d 61 70 5b 5d 20 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 3b 0a 61 72 72 61 79 5f 75 Map[].=.$mainPackageMap;.array_u
7a700 6e 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 nshift($packageMap,.$mainPackage
7a720 4d 61 70 29 3b 0a 0a 24 70 73 72 30 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c Map);..$psr0.=.$this->parseAutol
7a740 6f 61 64 73 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 30 27 2c 20 24 oadsType($packageMap,.'psr-0',.$
7a760 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 24 63 6c 61 73 73 6d 61 70 20 3d 20 24 74 68 69 73 2d mainPackage);.$classmap.=.$this-
7a780 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 >parseAutoloadsType($sortedPacka
7a7a0 67 65 4d 61 70 2c 20 27 63 6c 61 73 73 6d 61 70 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 geMap,.'classmap',.$mainPackage)
7a7c0 3b 0a 24 66 69 6c 65 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 ;.$files.=.$this->parseAutoloads
7a7e0 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 27 66 69 6c 65 73 27 2c Type($sortedPackageMap,.'files',
7a800 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 6b 72 73 6f 72 74 28 24 70 73 72 30 29 3b 0a .$mainPackage);..krsort($psr0);.
7a820 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 70 73 72 2d 30 27 20 3d 3e 20 24 70 73 72 30 2c 20 .return.array('psr-0'.=>.$psr0,.
7a840 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 24 63 6c 61 73 73 6d 61 70 2c 20 27 66 69 6c 65 73 27 'classmap'.=>.$classmap,.'files'
7a860 20 3d 3e 20 24 66 69 6c 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .=>.$files);.}........public.fun
7a880 63 74 69 6f 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 ction.createLoader(array.$autolo
7a8a0 61 64 73 29 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 ads).{.$loader.=.new.ClassLoader
7a8c0 28 29 3b 0a 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 ();..if.(isset($autoloads['psr-0
7a8e0 27 5d 29 29 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 '])).{.foreach.($autoloads['psr-
7a900 30 27 5d 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 24 6c 0'].as.$namespace.=>.$path).{.$l
7a920 6f 61 64 65 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 oader->add($namespace,.$path);.}
7a940 0a 7d 0a 0a 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 .}..return.$loader;.}..protected
7a960 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 46 69 6c 65 28 61 72 .function.getIncludePathsFile(ar
7a980 72 61 79 20 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 ray.$packageMap,.Filesystem.$fil
7a9a0 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c esystem,.$basePath,.$vendorPath,
7a9c0 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 64 .$vendorPathCode,.$appBaseDirCod
7a9e0 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 66 e).{.$includePaths.=.array();..f
7aa00 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 0a oreach.($packageMap.as.$item).{.
7aa20 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 24 list($package,.$installPath).=.$
7aa40 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 65 item;..if.(null.!==.$package->ge
7aa60 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 2d tTargetDir().&&.strlen($package-
7aa80 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 6c >getTargetDir()).>.0).{.$install
7aaa0 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 2d Path.=.substr($installPath,.0,.-
7aac0 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 69 strlen('/'.$package->getTargetDi
7aae0 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 74 r()));.}..foreach.($package->get
7ab00 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 20 IncludePaths().as.$includePath).
7ab20 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 61 {.$includePath.=.trim($includePa
7ab40 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 74 th,.'/');.$includePaths[].=.empt
7ab60 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 3a y($installPath).?.$includePath.:
7ab80 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 0a .$installPath.'/'.$includePath;.
7aba0 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 72 }.}..if.(!$includePaths).{.retur
7abc0 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 46 n;.}..$includePathsFile.=.<<<EOF
7abe0 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 6e .<?php..//.include_paths.php.gen
7ac00 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 20 erated.by.Composer..\$vendorDir.
7ac20 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 24 =.$vendorPathCode;.\$baseDir.=.$
7ac40 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 0a appBaseDirCode;..return.array(..
7ac60 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 20 EOF;..foreach.($includePaths.as.
7ac80 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 20 $path).{.$includePathsFile..=.".
7aca0 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 73 ..."...$this->getPathCode($files
7acc0 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 ystem,.$basePath,.$vendorPath,.$
7ace0 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 69 6e 63 6c 75 64 path)...",\n";.}..return.$includ
7ad00 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 6f 74 65 63 74 65 ePathsFile...");\n";.}..protecte
7ad20 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 65 73 79 73 74 65 d.function.getPathCode(Filesyste
7ad40 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f m.$filesystem,.$basePath,.$vendo
7ad60 72 50 61 74 68 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d rPath,.$path).{.if.(!$filesystem
7ad80 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 ->isAbsolutePath($path)).{.$path
7ada0 20 3d 20 24 62 61 73 65 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 24 70 .=.$basePath...'/'...$path;.}.$p
7adc0 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 ath.=.$filesystem->normalizePath
7ade0 28 24 70 61 74 68 29 3b 0a 0a 24 62 61 73 65 44 69 72 20 3d 20 27 27 3b 0a 69 66 20 28 73 74 72 ($path);..$baseDir.=.'';.if.(str
7ae00 70 6f 73 28 24 70 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 29 20 3d 3d 3d 20 30 29 20 7b pos($path,.$vendorPath).===.0).{
7ae20 0a 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 24 76 .$path.=.substr($path,.strlen($v
7ae40 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 65 6e 64 6f 72 endorPath));.$baseDir.=.'$vendor
7ae60 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 24 66 69 6c 65 73 Dir...';.}.else.{.$path.=.$files
7ae80 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 73 79 73 74 65 6d ystem->normalizePath($filesystem
7aea0 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 62 61 73 65 50 61 74 68 2c 20 24 70 ->findShortestPath($basePath,.$p
7aec0 61 74 68 2c 20 74 72 75 65 29 29 3b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 ath,.true));.if.(!$filesystem->i
7aee0 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 24 62 61 73 65 44 69 72 sAbsolutePath($path)).{.$baseDir
7af00 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e 20 27 3b 0a 24 70 61 74 68 20 3d 20 27 2f 27 20 2e 20 .=.'$baseDir...';.$path.=.'/'...
7af20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5c 2e 70 $path;.}.}..if.(preg_match('/\.p
7af40 68 61 72 24 2f 27 2c 20 24 70 61 74 68 29 29 7b 0a 24 62 61 73 65 44 69 72 20 3d 20 22 27 70 68 har$/',.$path)){.$baseDir.=."'ph
7af60 61 72 3a 2f 2f 27 20 2e 20 22 20 2e 20 24 62 61 73 65 44 69 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e ar://'..."...$baseDir;.}..return
7af80 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 20 74 72 75 65 .$baseDir.var_export($path,.true
7afa0 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 41 75 74 6f );.}..protected.function.getAuto
7afc0 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 74 44 69 72 43 loadFile($vendorPathToTargetDirC
7afe0 6f 64 65 2c 20 24 73 75 66 66 69 78 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 41 55 54 4f 4c 4f ode,.$suffix).{.return.<<<AUTOLO
7b000 41 44 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 2e 70 68 70 20 67 65 6e 65 72 61 AD.<?php..//.autoload.php.genera
7b020 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 24 76 ted.by.Composer..require_once.$v
7b040 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 2e 20 27 2f 61 75 74 endorPathToTargetDirCode...'/aut
7b060 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 6f 6d 70 6f 73 65 oload_real.php';..return.Compose
7b080 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 3a 3a 67 65 74 4c 6f 61 64 65 rAutoloaderInit$suffix::getLoade
7b0a0 72 28 29 3b 0a 0a 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e r();..AUTOLOAD;.}..protected.fun
7b0c0 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 52 65 61 6c 46 69 6c 65 28 24 75 73 65 50 53 ction.getAutoloadRealFile($usePS
7b0e0 52 30 2c 20 24 75 73 65 43 6c 61 73 73 4d 61 70 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 R0,.$useClassMap,.$useIncludePat
7b100 68 2c 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 2c h,.$targetDirLoader,.$filesCode,
7b120 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 64 .$vendorPathCode,.$appBaseDirCod
7b140 65 2c 20 24 73 75 66 66 69 78 2c 20 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 e,.$suffix,.$useGlobalIncludePat
7b160 68 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 69 66 20 28 24 66 69 6c 65 73 43 6f 64 65 29 h).{.............if.($filesCode)
7b180 20 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 3d 20 22 5c 6e 5c 6e 22 2e 72 74 72 69 6d 28 24 66 69 .{.$filesCode.=."\n\n".rtrim($fi
7b1a0 6c 65 73 43 6f 64 65 29 3b 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 3c 3c 3c 48 45 41 44 45 52 0a 3c lesCode);.}..$file.=.<<<HEADER.<
7b1c0 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 20 67 65 6e 65 72 ?php..//.autoload_real.php.gener
7b1e0 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 ated.by.Composer..class.Composer
7b200 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 0a 7b 0a 20 20 20 20 70 72 69 76 AutoloaderInit$suffix.{.....priv
7b220 61 74 65 20 73 74 61 74 69 63 20 5c 24 6c 6f 61 64 65 72 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 ate.static.\$loader;......public
7b240 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 .static.function.loadClassLoader
7b260 28 5c 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 27 43 6f 6d (\$class).....{.........if.('Com
7b280 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 27 20 3d 3d poser\\Autoload\\ClassLoader'.==
7b2a0 3d 20 5c 24 63 6c 61 73 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 72 65 =.\$class).{.............require
7b2c0 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 20 .__DIR__...'/ClassLoader.php';..
7b2e0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 .......}.....}......public.stati
7b300 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 61 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 c.function.getLoader().....{....
7b320 20 20 20 20 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 .....if.(null.!==.self::\$loader
7b340 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 5c 24 6c ).{.............return.self::\$l
7b360 6f 61 64 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 oader;.........}..........spl_au
7b380 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 toload_register(array('ComposerA
7b3a0 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 43 6c 61 73 utoloaderInit$suffix',.'loadClas
7b3c0 73 4c 6f 61 64 65 72 27 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 20 20 20 20 sLoader'),.true,.true);.........
7b3e0 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 20 3d 20 5c 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 self::\$loader.=.\$loader.=.new.
7b400 5c 5c 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 \\Composer\\Autoload\\ClassLoade
7b420 72 28 29 3b 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 r();.........spl_autoload_unregi
7b440 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e ster(array('ComposerAutoloaderIn
7b460 69 74 24 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 3b it$suffix',.'loadClassLoader'));
7b480 0a 0a 20 20 20 20 20 20 20 20 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 ..........\$vendorDir.=.$vendorP
7b4a0 61 74 68 43 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 athCode;.........\$baseDir.=.$ap
7b4c0 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 0a 48 45 41 44 45 52 3b 0a 0a 69 66 20 28 24 75 73 pBaseDirCode;...HEADER;..if.($us
7b4e0 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 3c 27 49 4e 43 eIncludePath).{.$file..=.<<<'INC
7b500 4c 55 44 45 5f 50 41 54 48 27 0a 20 20 20 20 20 20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 LUDE_PATH'.........$includePaths
7b520 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 69 6e 63 6c 75 64 65 5f 70 .=.require.__DIR__...'/include_p
7b540 61 74 68 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 61 72 72 61 79 5f 70 75 73 68 28 24 69 aths.php';.........array_push($i
7b560 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 29 29 ncludePaths,.get_include_path())
7b580 3b 0a 20 20 20 20 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 ;.........set_include_path(join(
7b5a0 50 41 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 PATH_SEPARATOR,.$includePaths));
7b5c0 0a 0a 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 ...INCLUDE_PATH;.}..if.($usePSR0
7b5e0 29 20 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 20 20 20 20 24 ).{.$file..=.<<<'PSR0'.........$
7b600 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f map.=.require.__DIR__...'/autolo
7b620 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 ad_namespaces.php';.........fore
7b640 61 63 68 20 28 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 ach.($map.as.$namespace.=>.$path
7b660 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 ).{.............$loader->add($na
7b680 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 50 53 52 mespace,.$path);.........}...PSR
7b6a0 30 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 43 6c 61 73 73 4d 61 70 29 20 7b 0a 24 66 69 6c 65 20 0;.}..if.($useClassMap).{.$file.
7b6c0 2e 3d 20 3c 3c 3c 27 43 4c 41 53 53 4d 41 50 27 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 4d .=.<<<'CLASSMAP'.........$classM
7b6e0 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 ap.=.require.__DIR__...'/autoloa
7b700 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 63 6c d_classmap.php';.........if.($cl
7b720 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 assMap).{.............$loader->a
7b740 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 20 20 20 20 7d ddClassMap($classMap);.........}
7b760 0a 0a 0a 43 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 47 6c 6f 62 61 6c 49 6e ...CLASSMAP;.}..if.($useGlobalIn
7b780 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 cludePath).{.$file..=.<<<'INCLUD
7b7a0 45 50 41 54 48 27 0a 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 55 73 65 49 6e EPATH'.........$loader->setUseIn
7b7c0 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a 0a 49 4e 43 4c 55 44 45 50 41 54 48 3b 0a 7d cludePath(true);..INCLUDEPATH;.}
7b7e0 0a 0a 69 66 20 28 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 29 20 7b 0a 24 66 69 6c 65 20 ..if.($targetDirLoader).{.$file.
7b800 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f 41 55 54 4f 4c 4f 41 44 0a 20 20 20 20 20 20 20 20 .=.<<<REGISTER_AUTOLOAD.........
7b820 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d spl_autoload_register(array('Com
7b840 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 27 2c 20 27 61 75 poserAutoloaderInit$suffix',.'au
7b860 74 6f 6c 6f 61 64 27 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 0a 0a 52 45 47 49 53 54 45 toload'),.true,.true);...REGISTE
7b880 52 5f 41 55 54 4f 4c 4f 41 44 3b 0a 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 4d 45 54 48 R_AUTOLOAD;..}..$file..=.<<<METH
7b8a0 4f 44 5f 46 4f 4f 54 45 52 0a 20 20 20 20 20 20 20 20 5c 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 OD_FOOTER.........\$loader->regi
7b8c0 73 74 65 72 28 74 72 75 65 29 3b 7b 24 66 69 6c 65 73 43 6f 64 65 7d 0a 0a 20 20 20 20 20 20 20 ster(true);{$filesCode}.........
7b8e0 20 72 65 74 75 72 6e 20 5c 24 6c 6f 61 64 65 72 3b 0a 20 20 20 20 7d 0a 0a 4d 45 54 48 4f 44 5f .return.\$loader;.....}..METHOD_
7b900 46 4f 4f 54 45 52 3b 0a 0a 24 66 69 6c 65 20 2e 3d 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 FOOTER;..$file..=.$targetDirLoad
7b920 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 20 2e 20 3c 3c 3c 46 4f 4f 54 45 52 0a 7d 0a er;..return.$file...<<<FOOTER.}.
7b940 0a 46 4f 4f 54 45 52 3b 0a 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .FOOTER;..}..protected.function.
7b960 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 parseAutoloadsType(array.$packag
7b980 65 4d 61 70 2c 20 24 74 79 70 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d eMap,.$type,.PackageInterface.$m
7b9a0 61 69 6e 50 61 63 6b 61 67 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 61 72 72 61 79 ainPackage).{.$autoloads.=.array
7b9c0 28 29 3b 0a 0a 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 ();..foreach.($packageMap.as.$it
7b9e0 65 6d 29 20 7b 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 em).{.list($package,.$installPat
7ba00 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 24 70 61 63 6b 61 67 h).=.$item;..$autoload.=.$packag
7ba20 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 e->getAutoload();....if.(!isset(
7ba40 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 29 20 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 $autoload[$type]).||.!is_array($
7ba60 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a autoload[$type])).{.continue;.}.
7ba80 69 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 if.(null.!==.$package->getTarget
7baa0 44 69 72 28 29 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 Dir().&&.$package.!==.$mainPacka
7bac0 67 65 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 6e 73 ge).{.$installPath.=.substr($ins
7bae0 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 61 67 tallPath,.0,.-strlen('/'.$packag
7bb00 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 68 20 e->getTargetDir()));.}..foreach.
7bb20 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 ($autoload[$type].as.$namespace.
7bb40 3d 3e 20 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 =>.$paths).{.foreach.((array).$p
7bb60 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 0a 20 69 66 20 28 24 74 79 70 65 20 3d 3d 3d aths.as.$path).{...if.($type.===
7bb80 20 27 66 69 6c 65 73 27 20 26 26 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 6d 61 69 6e 50 61 .'files'.&&.$package.===.$mainPa
7bba0 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 ckage.&&.$package->getTargetDir(
7bbc0 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 ).&&.!is_readable($installPath.'
7bbe0 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 73 74 72 5f 72 65 /'.$path)).{.$targetDir.=.str_re
7bc00 70 6c 61 63 65 28 27 5c 5c 3c 64 69 72 73 65 70 5c 5c 3e 27 2c 20 27 5b 5c 5c 5c 5c 2f 5d 27 2c place('\\<dirsep\\>',.'[\\\\/]',
7bc20 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 2f .preg_quote(str_replace(array('/
7bc40 27 2c 20 27 5c 5c 27 29 2c 20 27 3c 64 69 72 73 65 70 3e 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e ',.'\\'),.'<dirsep>',.$package->
7bc60 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 61 74 68 20 3d 20 6c 74 72 69 6d getTargetDir())));.$path.=.ltrim
7bc80 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 27 2e 24 74 61 72 67 65 74 44 69 72 2e 27 7d (preg_replace('{^'.$targetDir.'}
7bca0 27 2c 20 27 27 2c 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 5c 5c 2f 27 29 29 2c 20 27 5c 5c ',.'',.ltrim($path,.'\\/')),.'\\
7bcc0 2f 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 66 69 6c 65 73 27 20 /');.}....if.($type.===.'files'.
7bce0 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 20 26 26 20 &&.$package.!==.$mainPackage.&&.
7bd00 24 70 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 21 69 73 5f $package->getTargetDir().&&.!is_
7bd20 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 29 readable($installPath.'/'.$path)
7bd40 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 ).{.$path.=.$package->getTargetD
7bd60 69 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 79 ir()...'/'...$path;.}....if.($ty
7bd80 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 20 26 26 20 24 70 61 63 6b 61 67 65 20 3d 3d pe.===.'classmap'.&&.$package.==
7bda0 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 =.$mainPackage.&&.$package->getT
7bdc0 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 argetDir().&&.!is_readable($inst
7bde0 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 allPath.'/'.$path)).{.$targetDir
7be00 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 64 69 72 73 65 70 5c 5c 3e 27 2c 20 27 .=.str_replace('\\<dirsep\\>',.'
7be20 5b 5c 5c 5c 5c 2f 5d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 5f 72 65 70 6c 61 63 65 [\\\\/]',.preg_quote(str_replace
7be40 28 61 72 72 61 79 28 27 2f 27 2c 20 27 5c 5c 27 29 2c 20 27 3c 64 69 72 73 65 70 3e 27 2c 20 24 (array('/',.'\\'),.'<dirsep>',.$
7be60 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 61 74 package->getTargetDir())));.$pat
7be80 68 20 3d 20 6c 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 27 2e 24 74 61 72 h.=.ltrim(preg_replace('{^'.$tar
7bea0 67 65 74 44 69 72 2e 27 7d 27 2c 20 27 27 2c 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 5c 5c getDir.'}',.'',.ltrim($path,.'\\
7bec0 2f 27 29 29 2c 20 27 5c 5c 2f 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 79 70 65 20 3d 3d 3d /')),.'\\/');.}....if.($type.===
7bee0 20 27 63 6c 61 73 73 6d 61 70 27 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 24 6d 61 69 .'classmap'.&&.$package.!==.$mai
7bf00 6e 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 nPackage.&&.$package->getTargetD
7bf20 69 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 ir().&&.!is_readable($installPat
7bf40 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 70 61 63 6b 61 67 65 h.'/'.$path)).{.$path.=.$package
7bf60 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a ->getTargetDir()...'/'...$path;.
7bf80 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a 24 61 }..if.(empty($installPath)).{.$a
7bfa0 75 74 6f 6c 6f 61 64 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 5b 5d 20 3d 20 65 6d 70 74 79 28 24 utoloads[$namespace][].=.empty($
7bfc0 70 61 74 68 29 20 3f 20 27 2e 27 20 3a 20 24 70 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 path).?.'.'.:.$path;.}.else.{.$a
7bfe0 75 74 6f 6c 6f 61 64 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 5b 5d 20 3d 20 24 69 6e 73 74 61 6c utoloads[$namespace][].=.$instal
7c000 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e lPath.'/'.$path;.}.}.}.}..return
7c020 20 24 61 75 74 6f 6c 6f 61 64 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .$autoloads;.}..protected.functi
7c040 6f 6e 20 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 on.sortPackageMap(array.$package
7c060 4d 61 70 29 0a 7b 0a 24 70 6f 73 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 Map).{.$positions.=.array();.$na
7c080 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 64 65 78 65 73 20 3d 20 61 72 72 61 79 28 mes.=.array();.$indexes.=.array(
7c0a0 29 3b 0a 0a 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 70 6f 73 );..foreach.($packageMap.as.$pos
7c0c0 69 74 69 6f 6e 20 3d 3e 20 24 69 74 65 6d 29 20 7b 0a 24 6d 61 69 6e 4e 61 6d 65 20 3d 20 24 69 ition.=>.$item).{.$mainName.=.$i
7c0e0 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 tem[0]->getName();.$names.=.arra
7c100 79 5f 6d 65 72 67 65 28 61 72 72 61 79 5f 66 69 6c 6c 5f 6b 65 79 73 28 24 69 74 65 6d 5b 30 5d y_merge(array_fill_keys($item[0]
7c120 2d 3e 67 65 74 4e 61 6d 65 73 28 29 2c 20 24 6d 61 69 6e 4e 61 6d 65 29 2c 20 24 6e 61 6d 65 73 ->getNames(),.$mainName),.$names
7c140 29 3b 0a 24 6e 61 6d 65 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 3d 20 24 6d 61 69 6e 4e 61 6d 65 );.$names[$mainName].=.$mainName
7c160 3b 0a 24 69 6e 64 65 78 65 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 3d 20 24 70 6f 73 69 74 69 6f ;.$indexes[$mainName].=.$positio
7c180 6e 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 3d 20 24 70 6f 73 69 74 69 6f 6e 3b 0a 7d 0a 0a 66 6f ns[$mainName].=.$position;.}..fo
7c1a0 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 0a 24 reach.($packageMap.as.$item).{.$
7c1c0 70 6f 73 69 74 69 6f 6e 20 3d 20 24 70 6f 73 69 74 69 6f 6e 73 5b 24 69 74 65 6d 5b 30 5d 2d 3e position.=.$positions[$item[0]->
7c1e0 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6d 65 72 67 65 getName()];.foreach.(array_merge
7c200 28 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 20 24 69 74 65 6d 5b ($item[0]->getRequires(),.$item[
7c220 30 5d 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 61 73 20 24 6c 69 6e 6b 29 20 0]->getDevRequires()).as.$link).
7c240 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a {.$target.=.$link->getTarget();.
7c260 69 66 20 28 21 69 73 73 65 74 28 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 5d 29 29 20 7b 0a 63 if.(!isset($names[$target])).{.c
7c280 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 20 3d 20 24 6e 61 6d 65 73 5b 24 74 61 ontinue;.}..$target.=.$names[$ta
7c2a0 72 67 65 74 5d 3b 0a 69 66 20 28 24 70 6f 73 69 74 69 6f 6e 73 5b 24 74 61 72 67 65 74 5d 20 3c rget];.if.($positions[$target].<
7c2c0 3d 20 24 70 6f 73 69 74 69 6f 6e 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 =.$position).{.continue;.}..fore
7c2e0 61 63 68 20 28 24 70 6f 73 69 74 69 6f 6e 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 ach.($positions.as.$key.=>.$valu
7c300 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3e 3d 20 24 70 6f 73 69 74 69 6f 6e 29 20 7b 0a e).{.if.($value.>=.$position).{.
7c320 62 72 65 61 6b 3b 0a 7d 0a 24 70 6f 73 69 74 69 6f 6e 73 5b 24 6b 65 79 5d 2d 2d 3b 0a 7d 0a 0a break;.}.$positions[$key]--;.}..
7c340 24 70 6f 73 69 74 69 6f 6e 73 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 6f 73 69 74 69 6f 6e 20 $positions[$target].=.$position.
7c360 2d 20 31 3b 0a 7d 0a 61 73 6f 72 74 28 24 70 6f 73 69 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 73 6f -.1;.}.asort($positions);.}..$so
7c380 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 rtedPackageMap.=.array();.foreac
7c3a0 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 70 6f 73 69 74 69 6f 6e 73 29 20 61 73 20 24 70 61 h.(array_keys($positions).as.$pa
7c3c0 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 5b 5d ckageName).{.$sortedPackageMap[]
7c3e0 20 3d 20 24 70 61 63 6b 61 67 65 4d 61 70 5b 24 69 6e 64 65 78 65 73 5b 24 70 61 63 6b 61 67 65 .=.$packageMap[$indexes[$package
7c400 4e 61 6d 65 5d 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 Name]];.}..return.$sortedPackage
7c420 4d 61 70 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 Map;.}.}.<?php.............names
7c440 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c pace.Composer\Autoload;.......cl
7c460 61 73 73 20 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 ass.ClassMapGenerator.{.......pu
7c480 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 64 69 72 73 2c blic.static.function.dump($dirs,
7c4a0 20 24 66 69 6c 65 29 0a 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 .$file).{.$maps.=.array();..fore
7c4c0 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 6d 61 70 73 20 3d 20 61 72 ach.($dirs.as.$dir).{.$maps.=.ar
7c4e0 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 70 73 2c 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 4d ray_merge($maps,.static::createM
7c500 61 70 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 ap($dir));.}..file_put_contents(
7c520 24 66 69 6c 65 2c 20 73 70 72 69 6e 74 66 28 27 3c 3f 70 68 70 20 72 65 74 75 72 6e 20 25 73 3b $file,.sprintf('<?php.return.%s;
7c540 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6d 61 70 73 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a ',.var_export($maps,.true)));.}.
7c560 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 69 6f ...........public.static.functio
7c580 6e 20 63 72 65 61 74 65 4d 61 70 28 24 70 61 74 68 2c 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 n.createMap($path,.$whitelist.=.
7c5a0 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 70 61 74 68 29 29 20 7b 0a null).{.if.(is_string($path)).{.
7c5c0 69 66 20 28 69 73 5f 66 69 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 61 72 if.(is_file($path)).{.$path.=.ar
7c5e0 72 61 79 28 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 70 61 74 68 29 29 3b 0a 7d 20 ray(new.\SplFileInfo($path));.}.
7c600 65 6c 73 65 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d elseif.(is_dir($path)).{.$path.=
7c620 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 28 .new.\RecursiveIteratorIterator(
7c640 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 28 new.\RecursiveDirectoryIterator(
7c660 24 70 61 74 68 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e $path));.}.else.{.throw.new.\Run
7c680 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 timeException(.'Could.not.scan.f
7c6a0 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 65 20 22 27 2e 24 70 61 74 68 2e 0a 27 22 20 77 or.classes.inside."'.$path..'".w
7c6c0 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f 20 62 65 20 61 20 66 69 6c hich.does.not.appear.to.be.a.fil
7c6e0 65 20 6e 6f 72 20 61 20 66 6f 6c 64 65 72 27 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6d 61 70 20 3d 20 61 e.nor.a.folder'.);.}.}..$map.=.a
7c700 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 20 61 73 20 24 66 69 6c 65 rray();..foreach.($path.as.$file
7c720 29 20 7b 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 63 6f 6e 74 ).{.if.(!$file->isFile()).{.cont
7c740 69 6e 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 50 61 74 68 20 3d 20 24 66 69 6c 65 2d 3e 67 65 74 52 inue;.}..$filePath.=.$file->getR
7c760 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 70 61 74 68 69 6e ealPath();..if.(!in_array(pathin
7c780 66 6f 28 24 66 69 6c 65 50 61 74 68 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e fo($filePath,.PATHINFO_EXTENSION
7c7a0 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 69 6e 63 27 29 29 29 20 7b 0a 63 6f 6e 74 69 ),.array('php',.'inc'))).{.conti
7c7c0 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 77 68 69 74 65 6c 69 73 74 20 26 26 20 21 70 72 65 67 5f nue;.}..if.($whitelist.&&.!preg_
7c7e0 6d 61 74 63 68 28 24 77 68 69 74 65 6c 69 73 74 2c 20 73 74 72 74 72 28 24 66 69 6c 65 50 61 74 match($whitelist,.strtr($filePat
7c800 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 h,.'\\',.'/'))).{.continue;.}..$
7c820 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 66 69 6c classes.=.self::findClasses($fil
7c840 65 50 61 74 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 ePath);..foreach.($classes.as.$c
7c860 6c 61 73 73 29 20 7b 0a 24 6d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 24 66 69 6c 65 50 61 74 68 lass).{.$map[$class].=.$filePath
7c880 3b 0a 7d 0a 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ;.}..}..return.$map;.}.........p
7c8a0 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 43 6c 61 73 73 rivate.static.function.findClass
7c8c0 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 74 72 61 69 74 73 20 3d 20 76 65 72 73 69 6f 6e 5f 63 6f es($path).{.$traits.=.version_co
7c8e0 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 3f mpare(PHP_VERSION,.'5.4',.'<').?
7c900 20 27 27 20 3a 20 27 7c 74 72 61 69 74 27 3b 0a 0a 74 72 79 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 .''.:.'|trait';..try.{.$contents
7c920 20 3d 20 70 68 70 5f 73 74 72 69 70 5f 77 68 69 74 65 73 70 61 63 65 28 24 70 61 74 68 29 3b 0a .=.php_strip_whitespace($path);.
7c940 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 74 68 72 6f 77 20 }.catch.(\Exception.$e).{.throw.
7c960 6e 65 77 20 5c 52 75 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 new.\RuntimeException('Could.not
7c980 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 65 20 27 2e 24 70 61 74 68 .scan.for.classes.inside.'.$path
7c9a0 2e 22 3a 20 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 .":.\n".$e->getMessage(),.0,.$e)
7c9c0 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5c 62 28 3f 3a 63 6c ;.}....if.(!preg_match('{\b(?:cl
7c9e0 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 74 72 61 69 74 73 2e 27 29 5c 62 7d 69 27 2c 20 ass|interface'.$traits.')\b}i',.
7ca00 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 3b 0a 7d 0a $contents)).{.return.array();.}.
7ca20 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 3c 3c ...$contents.=.preg_replace('{<<
7ca40 3c 5c 27 3f 28 5c 77 2b 29 5c 27 3f 28 3f 3a 5c 72 5c 6e 7c 5c 6e 7c 5c 72 29 28 3f 3a 2e 2a 3f <\'?(\w+)\'?(?:\r\n|\n|\r)(?:.*?
7ca60 29 28 3f 3a 5c 72 5c 6e 7c 5c 6e 7c 5c 72 29 5c 5c 31 28 3f 3d 5c 72 5c 6e 7c 5c 6e 7c 5c 72 7c )(?:\r\n|\n|\r)\\1(?=\r\n|\n|\r|
7ca80 3b 29 7d 73 27 2c 20 27 6e 75 6c 6c 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 20 24 63 6f ;)}s',.'null',.$contents);...$co
7caa0 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 22 5b 5e 22 5c 5c 5c 5c ntents.=.preg_replace('{"[^"\\\\
7cac0 5d 2a 28 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 22 7c 5c 27 5b 5e 5c 27 5c 5c 5c 5c 5d ]*(\\\\.[^"\\\\]*)*"|\'[^\'\\\\]
7cae0 2a 28 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 29 2a 5c 27 7d 27 2c 20 27 6e 75 6c 6c 27 2c *(\\\\.[^\'\\\\]*)*\'}',.'null',
7cb00 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 20 69 66 20 28 73 75 62 73 74 72 28 24 63 6f 6e 74 65 .$contents);...if.(substr($conte
7cb20 6e 74 73 2c 20 30 2c 20 32 29 20 21 3d 3d 20 27 3c 3f 27 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 nts,.0,.2).!==.'<?').{.$contents
7cb40 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 2e 2b 3f 3c 5c 3f 7d 73 27 2c 20 27 3c .=.preg_replace('{^.+?<\?}s',.'<
7cb60 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 ?',.$contents);.}...$contents.=.
7cb80 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 3f 3e 2e 2b 3c 5c 3f 7d 73 27 2c 20 27 3f 3e 3c preg_replace('{\?>.+<\?}s',.'?><
7cba0 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 ?',.$contents);...$pos.=.strrpos
7cbc0 28 24 63 6f 6e 74 65 6e 74 73 2c 20 27 3f 3e 27 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d ($contents,.'?>');.if.(false.!==
7cbe0 20 24 70 6f 73 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 73 75 62 73 74 72 .$pos.&&.false.===.strpos(substr
7cc00 28 24 63 6f 6e 74 65 6e 74 73 2c 20 24 70 6f 73 29 2c 20 27 3c 3f 27 29 29 20 7b 0a 24 63 6f 6e ($contents,.$pos),.'<?')).{.$con
7cc20 74 65 6e 74 73 20 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 24 70 6f tents.=.substr($contents,.0,.$po
7cc40 73 29 3b 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 0a 20 20 20 20 20 20 20 s);.}..preg_match_all('{........
7cc60 20 20 20 20 20 28 3f 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 62 28 3f 3c 21 .....(?:..................\b(?<!
7cc80 5b 5c 24 3a 3e 5d 29 28 3f 50 3c 74 79 70 65 3e 63 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 [\$:>])(?P<type>class|interface'
7cca0 2e 24 74 72 61 69 74 73 2e 27 29 20 5c 73 2b 20 28 3f 50 3c 6e 61 6d 65 3e 5b 61 2d 7a 41 2d 5a .$traits.').\s+.(?P<name>[a-zA-Z
7ccc0 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d _\x7f-\xff][a-zA-Z0-9_\x7f-\xff]
7cce0 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5c 62 28 3f 3c 21 5b 5c 24 3a 3e 5d *)................|.\b(?<![\$:>]
7cd00 29 28 3f 50 3c 6e 73 3e 6e 61 6d 65 73 70 61 63 65 29 20 28 3f 50 3c 6e 73 6e 61 6d 65 3e 5c 73 )(?P<ns>namespace).(?P<nsname>\s
7cd20 2b 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 +[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x
7cd40 37 66 2d 5c 78 66 66 5d 2a 28 3f 3a 5c 73 2a 5c 5c 5c 5c 5c 73 2a 5b 61 2d 7a 41 2d 5a 5f 5c 78 7f-\xff]*(?:\s*\\\\\s*[a-zA-Z_\x
7cd60 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a 29 2a 7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*
7cd80 29 3f 20 5c 73 2a 5b 5c 7b 3b 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 )?.\s*[\{;].............).......
7cda0 20 20 7d 69 78 27 2c 20 24 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 ..}ix',.$contents,.$matches);..$
7cdc0 63 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 classes.=.array();.$namespace.=.
7cde0 27 27 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 '';..for.($i.=.0,.$len.=.count($
7ce00 6d 61 74 63 68 65 73 5b 27 74 79 70 65 27 5d 29 3b 20 24 69 20 3c 20 24 6c 65 6e 3b 20 24 69 2b matches['type']);.$i.<.$len;.$i+
7ce20 2b 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 27 6e 73 27 5d 5b 24 +).{.if.(!empty($matches['ns'][$
7ce40 69 5d 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 i])).{.$namespace.=.str_replace(
7ce60 61 72 72 61 79 28 27 20 27 2c 20 22 5c 74 22 2c 20 22 5c 72 22 2c 20 22 5c 6e 22 29 2c 20 27 27 array('.',."\t",."\r",."\n"),.''
7ce80 2c 20 24 6d 61 74 63 68 65 73 5b 27 6e 73 6e 61 6d 65 27 5d 5b 24 69 5d 29 20 2e 20 27 5c 5c 27 ,.$matches['nsname'][$i])...'\\'
7cea0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6c 61 73 73 65 73 5b 5d 20 3d 20 6c 74 72 69 6d 28 24 6e ;.}.else.{.$classes[].=.ltrim($n
7cec0 61 6d 65 73 70 61 63 65 20 2e 20 24 6d 61 74 63 68 65 73 5b 27 6e 61 6d 65 27 5d 5b 24 69 5d 2c amespace...$matches['name'][$i],
7cee0 20 27 5c 5c 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 65 73 3b 0a 7d 0a .'\\');.}.}..return.$classes;.}.
7cf00 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
7cf20 70 6f 73 65 72 3b 0a 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 poser;..use.Composer\Autoload\Au
7cf40 74 6f 6c 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 44 65 toloadGenerator;.use.Composer\De
7cf60 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 3b 0a pendencyResolver\DefaultPolicy;.
7cf80 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 5c use.Composer\DependencyResolver\
7cfa0 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 Operation\UpdateOperation;.use.C
7cfc0 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 4f 70 65 72 61 omposer\DependencyResolver\Opera
7cfe0 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d tion\UninstallOperation;.use.Com
7d000 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 50 6f 6f 6c 3b 0a 75 poser\DependencyResolver\Pool;.u
7d020 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 5c 52 se.Composer\DependencyResolver\R
7d040 65 71 75 65 73 74 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 equest;.use.Composer\DependencyR
7d060 65 73 6f 6c 76 65 72 5c 52 75 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e esolver\Rule;.use.Composer\Depen
7d080 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 dencyResolver\Solver;.use.Compos
7d0a0 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 50 72 6f 62 er\DependencyResolver\SolverProb
7d0c0 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e lemsException;.use.Composer\Down
7d0e0 6c 6f 61 64 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 loader\DownloadManager;.use.Comp
7d100 6f 73 65 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 oser\Installer\InstallationManag
7d120 65 72 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 er;.use.Composer\Config;.use.Com
7d140 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 poser\Installer\NoopInstaller;.u
7d160 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.
7d180 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 70 Composer\Json\JsonFile;.use.Comp
7d1a0 6f 73 65 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 oser\Package\AliasPackage;.use.C
7d1c0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 omposer\Package\Link;.use.Compos
7d1e0 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 6f er\Package\LinkConstraint\Versio
7d200 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 67 nConstraint;.use.Composer\Packag
7d220 65 5c 4c 6f 63 6b 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 e\Locker;.use.Composer\Package\P
7d240 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
7d260 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ckage\RootPackageInterface;.use.
7d280 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 69 74 65 52 65 70 Composer\Repository\CompositeRep
7d2a0 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 72 79 ository;.use.Composer\Repository
7d2c0 5c 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 \InstalledArrayRepository;.use.C
7d2e0 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 6c 65 omposer\Repository\InstalledFile
7d300 73 79 73 74 65 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 52 systemRepository;.use.Composer\R
7d320 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
7d340 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 79 e.Composer\Repository\Repository
7d360 49 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 Interface;.use.Composer\Reposito
7d380 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 6d 70 6f 73 ry\RepositoryManager;.use.Compos
7d3a0 65 72 5c 53 63 72 69 70 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 er\Script\EventDispatcher;.use.C
7d3c0 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a omposer\Script\ScriptEvents;....
7d3e0 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ...class.Installer.{....protecte
7d400 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a d.$io;.....protected.$config;...
7d420 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ..protected.$package;.....protec
7d440 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ted.$downloadManager;.....protec
7d460 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 ted.$repositoryManager;.....prot
7d480 65 63 74 65 64 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e ected.$locker;.....protected.$in
7d4a0 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 stallationManager;.....protected
7d4c0 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 .$eventDispatcher;.....protected
7d4e0 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 .$autoloadGenerator;..protected.
7d500 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 $preferSource.=.false;.protected
7d520 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 .$preferDist.=.false;.protected.
7d540 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f $optimizeAutoloader.=.false;.pro
7d560 74 65 63 74 65 64 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 tected.$devMode.=.false;.protect
7d580 65 64 20 24 64 72 79 52 75 6e 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 ed.$dryRun.=.false;.protected.$v
7d5a0 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 erbose.=.false;.protected.$updat
7d5c0 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6e 53 63 72 69 70 74 73 e.=.false;.protected.$runScripts
7d5e0 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 57 68 69 74 65 6c .=.true;.protected.$updateWhitel
7d600 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 ist.=.null;.....protected.$sugge
7d620 73 74 65 64 50 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 stedPackages;.....protected.$add
7d640 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 3b 0a 0a 0a 0a 0a itionalInstalledRepository;.....
7d660 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 6f 6e 73 ..........public.function.__cons
7d680 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 6e 66 69 67 20 24 63 truct(IOInterface.$io,.Config.$c
7d6a0 6f 6e 66 69 67 2c 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 onfig,.RootPackageInterface.$pac
7d6c0 6b 61 67 65 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 64 4d kage,.DownloadManager.$downloadM
7d6e0 61 6e 61 67 65 72 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 65 70 6f 73 anager,.RepositoryManager.$repos
7d700 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 2c 20 49 6e itoryManager,.Locker.$locker,.In
7d720 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 6c 61 74 69 6f 6e 4d stallationManager.$installationM
7d740 61 6e 61 67 65 72 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 anager,.EventDispatcher.$eventDi
7d760 73 70 61 74 63 68 65 72 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 spatcher,.AutoloadGenerator.$aut
7d780 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 oloadGenerator).{.$this->io.=.$i
7d7a0 6f 3b 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 o;.$this->config.=.$config;.$thi
7d7c0 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 64 6f s->package.=.$package;.$this->do
7d7e0 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 wnloadManager.=.$downloadManager
7d800 3b 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 20 3d 20 24 72 65 ;.$this->repositoryManager.=.$re
7d820 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d positoryManager;.$this->locker.=
7d840 20 24 6c 6f 63 6b 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e .$locker;.$this->installationMan
7d860 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 ager.=.$installationManager;.$th
7d880 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 is->eventDispatcher.=.$eventDisp
7d8a0 61 74 63 68 65 72 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 atcher;.$this->autoloadGenerator
7d8c0 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 .=.$autoloadGenerator;.}.....pub
7d8e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e lic.function.run().{.if.($this->
7d900 64 72 79 52 75 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 74 72 75 65 3b dryRun).{.$this->verbose.=.true;
7d920 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 .$this->runScripts.=.false;.$thi
7d940 73 2d 3e 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 s->installationManager->addInsta
7d960 6c 6c 65 72 28 6e 65 77 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 74 68 69 73 2d 3e ller(new.NoopInstaller);.$this->
7d980 6d 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 72 65 70 mockLocalRepositories($this->rep
7d9a0 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 64 65 76 52 65 70 6f ositoryManager);.}......$devRepo
7d9c0 20 3d 20 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 70 6f 73 69 .=.new.InstalledFilesystemReposi
7d9e0 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d tory(new.JsonFile($this->config-
7da00 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e >get('vendor-dir').'/composer/in
7da20 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 29 3b 0a 69 66 20 28 24 64 65 76 52 65 70 stalled_dev.json'));.if.($devRep
7da40 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 o->getPackages()).{.$this->io->w
7da60 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 42 43 20 4e 6f 74 69 63 65 3a 20 52 65 6d 6f 76 69 rite('<warning>BC.Notice:.Removi
7da80 6e 67 20 6f 6c 64 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 74 6f 20 6d 69 67 72 61 74 65 20 74 ng.old.dev.packages.to.migrate.t
7daa0 6f 20 74 68 65 20 6e 65 77 20 72 65 71 75 69 72 65 2d 64 65 76 20 68 61 6e 64 6c 69 6e 67 2e 3c o.the.new.require-dev.handling.<
7dac0 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 76 52 65 70 6f 2d 3e /warning>');.foreach.($devRepo->
7dae0 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 29 20 7b 0a 69 66 20 getPackages().as.$package).{.if.
7db00 28 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 69 73 50 ($this->installationManager->isP
7db20 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 64 65 76 52 65 70 6f 2c 20 24 70 61 63 6b 61 ackageInstalled($devRepo,.$packa
7db40 67 65 29 29 20 7b 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 ge)).{.$this->installationManage
7db60 72 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 64 65 76 52 65 70 6f 2c 20 6e 65 77 20 55 6e 69 6e 73 r->uninstall($devRepo,.new.Unins
7db80 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 75 6e tallOperation($package));.}.}.un
7dba0 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d link($this->config->get('vendor-
7dbc0 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a dir').'/composer/installed_dev.j
7dbe0 73 6f 6e 27 29 3b 0a 7d 0a 75 6e 73 65 74 28 24 64 65 76 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 son');.}.unset($devRepo,.$packag
7dc00 65 29 3b 0a 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 7b e);...if.($this->preferSource).{
7dc20 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 66 .$this->downloadManager->setPref
7dc40 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 erSource(true);.}.if.($this->pre
7dc60 66 65 72 44 69 73 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 ferDist).{.$this->downloadManage
7dc80 72 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 74 72 75 65 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a r->setPreferDist(true);.}.......
7dca0 20 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 20 3d 20 63 6c 6f 6e 65 20 24 .$installedRootPackage.=.clone.$
7dcc0 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 this->package;.$installedRootPac
7dce0 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 24 69 6e 73 kage->setRequires(array());.$ins
7dd00 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 76 52 65 71 75 69 72 65 talledRootPackage->setDevRequire
7dd20 73 28 61 72 72 61 79 28 29 29 3b 0a 0a 0a 20 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 s(array());....$localRepo.=.$thi
7dd40 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 6f 63 61 6c 52 65 s->repositoryManager->getLocalRe
7dd60 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 pository();.$platformRepo.=.new.
7dd80 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 61 PlatformRepository();.$repos.=.a
7dda0 72 72 61 79 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 41 rray(.$localRepo,.new.InstalledA
7ddc0 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 rrayRepository(array($installedR
7dde0 6f 6f 74 50 61 63 6b 61 67 65 29 29 2c 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 0a 29 3b 0a ootPackage)),.$platformRepo,.);.
7de00 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 52 65 $installedRepo.=.new.CompositeRe
7de20 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 64 64 pository($repos);.if.($this->add
7de40 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 29 20 7b 0a 24 69 itionalInstalledRepository).{.$i
7de60 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 nstalledRepo->addRepository($thi
7de80 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 69 74 6f 72 79 s->additionalInstalledRepository
7dea0 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 6f 6f 74 41 );.}..$aliases.=.$this->getRootA
7dec0 6c 69 61 73 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 50 6c 61 74 66 6f 72 6d 50 61 liases();.$this->aliasPlatformPa
7dee0 63 6b 61 67 65 73 28 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 3b ckages($platformRepo,.$aliases);
7df00 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
7df20 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
7df40 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
7df60 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
7df80 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
7dfa0 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 vent($eventName,.$this->devMode)
7dfc0 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 ;.}..try.{.$this->suggestedPacka
7dfe0 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 6f 49 6e 73 ges.=.array();.if.(!$this->doIns
7e000 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c tall($localRepo,.$installedRepo,
7e020 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 74 68 69 73 2d .$platformRepo,.$aliases,.$this-
7e040 3e 64 65 76 4d 6f 64 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 20 63 >devMode)).{.return.false;.}.}.c
7e060 61 74 63 68 20 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 6e atch.(\Exception.$e).{.$this->in
7e080 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c stallationManager->notifyInstall
7e0a0 73 28 29 3b 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c s();..throw.$e;.}.$this->install
7e0c0 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a ationManager->notifyInstalls();.
7e0e0 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
7e100 61 67 65 73 20 61 73 20 24 73 75 67 67 65 73 74 69 6f 6e 29 20 7b 0a 24 74 61 72 67 65 74 20 3d ages.as.$suggestion).{.$target.=
7e120 20 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 3b 0a 66 6f 72 65 61 63 68 20 .$suggestion['target'];.foreach.
7e140 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 65 73 28 29 20 61 ($installedRepo->getPackages().a
7e160 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 74 61 72 67 s.$package).{.if.(in_array($targ
7e180 65 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 29 29 20 7b 0a 63 6f 6e et,.$package->getNames())).{.con
7e1a0 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 tinue.2;.}.}..$this->io->write($
7e1c0 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 65 73 74 73 20 suggestion['source'].'.suggests.
7e1e0 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 61 72 67 65 74 installing.'.$suggestion['target
7e200 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 27 5d 2e 27 29 '].'.('.$suggestion['reason'].')
7e220 27 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 0a 20 69 ');.}..if.(!$this->dryRun).{...i
7e240 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 73 2d 3e 6c 6f 63 6b f.($this->update.||.!$this->lock
7e260 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 72 65 er->isLocked()).{.$localRepo->re
7e280 6c 6f 61 64 28 29 3b 0a 0a 0a 20 0a 20 24 64 65 76 50 61 63 6b 61 67 65 73 20 3d 20 28 24 74 68 load();......$devPackages.=.($th
7e2a0 69 73 2d 3e 64 65 76 4d 6f 64 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e is->devMode.||.!$this->package->
7e2c0 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 6e 75 getDevRequires()).?.array().:.nu
7e2e0 6c 6c 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 26 26 20 24 74 68 ll;....if.($this->devMode.&&.$th
7e300 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 7b is->package->getDevRequires()).{
7e320 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 .$policy.=.$this->createPolicy()
7e340 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 6f 6f 6c 28 29 3b 0a 24 ;.$pool.=.$this->createPool();.$
7e360 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 65 64 52 65 pool->addRepository($installedRe
7e380 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d 20 24 74 68 po,.$aliases);....$request.=.$th
7e3a0 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e is->createRequest($pool,.$this->
7e3c0 70 61 63 6b 61 67 65 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 3b 0a 24 72 65 71 75 65 73 package,.$platformRepo);.$reques
7e3e0 74 2d 3e 75 70 64 61 74 65 41 6c 6c 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e t->updateAll();.foreach.($this->
7e400 70 61 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 package->getRequires().as.$link)
7e420 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 6b 2d 3e 67 65 74 54 .{.$request->install($link->getT
7e440 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 61 69 6e 74 28 29 29 arget(),.$link->getConstraint())
7e460 3b 0a 7d 0a 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 ;.}..$solver.=.new.Solver($polic
7e480 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 24 6f 70 73 20 y,.$pool,.$installedRepo);.$ops.
7e4a0 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 28 24 72 65 71 75 65 73 74 29 3b 0a 66 6f 72 65 =.$solver->solve($request);.fore
7e4c0 61 63 68 20 28 24 6f 70 73 20 61 73 20 24 6f 70 29 20 7b 0a 69 66 20 28 24 6f 70 2d 3e 67 65 74 ach.($ops.as.$op).{.if.($op->get
7e4e0 4a 6f 62 54 79 70 65 28 29 20 3d 3d 3d 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 20 7b 0a 24 64 65 JobType().===.'uninstall').{.$de
7e500 76 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6f 70 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b vPackages[].=.$op->getPackage();
7e520 0a 7d 0a 7d 0a 7d 0a 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 24 74 68 69 73 2d 3e 65 .}.}.}..$platformReqs.=.$this->e
7e540 78 74 72 61 63 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 74 68 69 73 xtractPlatformRequirements($this
7e560 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 29 3b 0a 24 70 6c 61 74 ->package->getRequires());.$plat
7e580 66 6f 72 6d 44 65 76 52 65 71 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3f 20 24 formDevReqs.=.$this->devMode.?.$
7e5a0 74 68 69 73 2d 3e 65 78 74 72 61 63 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 this->extractPlatformRequirement
7e5c0 73 28 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 69 72 65 73 s($this->package->getDevRequires
7e5e0 28 29 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 0a 24 75 70 64 61 74 65 64 4c 6f 63 6b 20 3d 20 24 ()).:.array();..$updatedLock.=.$
7e600 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 73 65 74 4c 6f 63 6b 44 61 74 61 28 0a 61 72 72 61 79 this->locker->setLockData(.array
7e620 5f 64 69 66 66 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 _diff($localRepo->getCanonicalPa
7e640 63 6b 61 67 65 73 28 29 2c 20 28 61 72 72 61 79 29 20 24 64 65 76 50 61 63 6b 61 67 65 73 29 2c ckages(),.(array).$devPackages),
7e660 0a 24 64 65 76 50 61 63 6b 61 67 65 73 2c 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 2c 0a 24 70 .$devPackages,.$platformReqs,.$p
7e680 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 2c 0a 24 61 6c 69 61 73 65 73 2c 0a 24 74 68 69 73 2d latformDevReqs,.$aliases,.$this-
7e6a0 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 69 74 79 28 29 2c >package->getMinimumStability(),
7e6c0 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 .$this->package->getStabilityFla
7e6e0 67 73 28 29 0a 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 64 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 gs().);.if.($updatedLock).{.$thi
7e700 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 57 72 69 74 69 6e 67 20 6c 6f 63 6b s->io->write('<info>Writing.lock
7e720 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 69 6f .file</info>');.}.}....$this->io
7e740 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f ->write('<info>Generating.autolo
7e760 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f ad.files</info>');.$this->autolo
7e780 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 6f 6e 66 69 67 2c adGenerator->dump($this->config,
7e7a0 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 74 68 .$localRepo,.$this->package,.$th
7e7c0 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 27 63 6f 6d 70 6f 73 is->installationManager,.'compos
7e7e0 65 72 27 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 29 3b er',.$this->optimizeAutoloader);
7e800 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
7e820 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
7e840 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 74 Events::POST_UPDATE_CMD.:.Script
7e860 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d Events::POST_INSTALL_CMD;.$this-
7e880 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 43 6f 6d 6d 61 6e >eventDispatcher->dispatchComman
7e8a0 64 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 64 65 76 4d 6f 64 dEvent($eventName,.$this->devMod
7e8c0 65 29 3b 0a 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 e);.}.}..return.true;.}..protect
7e8e0 65 64 20 66 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 ed.function.doInstall($localRepo
7e900 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c ,.$installedRepo,.$platformRepo,
7e920 20 24 61 6c 69 61 73 65 73 2c 20 24 77 69 74 68 44 65 76 52 65 71 73 29 0a 7b 0a 0a 20 24 6c 6f .$aliases,.$withDevReqs).{...$lo
7e940 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 3b 0a 24 72 65 70 6f 73 69 74 6f ckedRepository.=.null;.$reposito
7e960 72 69 65 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b ries.=.null;....$installFromLock
7e980 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 .=.false;.if.(!$this->update.&&.
7e9a0 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 69 6e $this->locker->isLocked()).{.$in
7e9c0 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 74 72 75 65 3b 0a 74 72 79 20 7b 0a 24 6c 6f 63 stallFromLock.=.true;.try.{.$loc
7e9e0 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 kedRepository.=.$this->locker->g
7ea00 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 29 etLockedRepository($withDevReqs)
7ea20 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 6f 6e 20 24 65 29 ;.}.catch.(\RuntimeException.$e)
7ea40 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 .{...if.($this->package->getDevR
7ea60 65 71 75 69 72 65 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 20 24 6c 6f 63 6b equires()).{.throw.$e;.}...$lock
7ea80 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 edRepository.=.$this->locker->ge
7eaa0 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d tLockedRepository();.}.}..$this-
7eac0 3e 77 68 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 0a 24 6c >whitelistUpdateDependencies(.$l
7eae0 6f 63 61 6c 52 65 70 6f 2c 0a 24 77 69 74 68 44 65 76 52 65 71 73 2c 0a 24 74 68 69 73 2d 3e 70 ocalRepo,.$withDevReqs,.$this->p
7eb00 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 ackage->getRequires(),.$this->pa
7eb20 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 29 3b 0a 0a 24 74 68 69 ckage->getDevRequires().);..$thi
7eb40 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 4c 6f 61 64 69 6e 67 20 63 6f 6d 70 s->io->write('<info>Loading.comp
7eb60 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 69 74 68 20 70 61 63 6b 61 67 65 20 69 oser.repositories.with.package.i
7eb80 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 0a 20 24 70 6f 6c 69 63 79 20 nformation</info>');....$policy.
7eba0 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d =.$this->createPolicy();.$pool.=
7ebc0 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 .$this->createPool();.$pool->add
7ebe0 52 65 70 6f 73 69 74 6f 72 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 Repository($installedRepo,.$alia
7ec00 73 65 73 29 3b 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 ses);.if.($installFromLock).{.$p
7ec20 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 ool->addRepository($lockedReposi
7ec40 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c tory,.$aliases);.}..if.(!$instal
7ec60 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 74 68 lFromLock).{.$repositories.=.$th
7ec80 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 52 65 70 6f 73 69 is->repositoryManager->getReposi
7eca0 74 6f 72 69 65 73 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 tories();.foreach.($repositories
7ecc0 20 61 73 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 .as.$repository).{.$pool->addRep
7ece0 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a ository($repository,.$aliases);.
7ed00 7d 0a 7d 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 }.}....$request.=.$this->createR
7ed20 65 71 75 65 73 74 28 24 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 70 equest($pool,.$this->package,.$p
7ed40 6c 61 74 66 6f 72 6d 52 65 70 6f 29 3b 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d latformRepo);..if.(!$installFrom
7ed60 4c 6f 63 6b 29 20 7b 0a 0a 20 24 72 65 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 Lock).{...$removedUnstablePackag
7ed80 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 es.=.array();.foreach.($localRep
7eda0 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 29 20 7b 0a o->getPackages().as.$package).{.
7edc0 69 66 20 28 0a 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 if.(.!$pool->isPackageAcceptable
7ede0 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 2c 20 24 70 61 63 6b 61 67 65 2d ($package->getNames(),.$package-
7ee00 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 0a 26 26 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 >getStability()).&&.$this->insta
7ee20 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c llationManager->isPackageInstall
7ee40 65 64 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 0a 29 20 7b 0a 24 72 65 ed($localRepo,.$package).).{.$re
7ee60 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e movedUnstablePackages[$package->
7ee80 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 24 72 65 71 75 65 73 74 2d 3e 72 65 6d getName()].=.true;.$request->rem
7eea0 6f 76 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 ove($package->getName(),.new.Ver
7eec0 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 67 65 2d 3e 67 65 sionConstraint('=',.$package->ge
7eee0 74 56 65 72 73 69 6f 6e 28 29 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e tVersion()));.}.}.}..if.($this->
7ef00 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 66 update).{.$this->io->write('<inf
7ef20 6f 3e 55 70 64 61 74 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 o>Updating.dependencies'.($withD
7ef40 65 76 52 65 71 73 3f 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 evReqs?'.(including.require-dev)
7ef60 27 3a 27 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 24 72 65 71 75 65 73 74 2d 3e 75 70 64 ':'').'</info>');..$request->upd
7ef80 61 74 65 41 6c 6c 28 29 3b 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 ateAll();..if.($withDevReqs).{.$
7efa0 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 links.=.array_merge($this->packa
7efc0 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 ge->getRequires(),.$this->packag
7efe0 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 e->getDevRequires());.}.else.{.$
7f000 6c 69 6e 6b 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 71 75 69 links.=.$this->package->getRequi
7f020 72 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 res();.}..foreach.($links.as.$li
7f040 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 6b 2d 3e 67 nk).{.$request->install($link->g
7f060 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 61 69 6e 74 etTarget(),.$link->getConstraint
7f080 28 29 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 57 68 69 ());.}......if.($this->updateWhi
7f0a0 74 65 6c 69 73 74 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c telist).{.if.($this->locker->isL
7f0c0 6f 63 6b 65 64 28 29 29 20 7b 0a 74 72 79 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 ocked()).{.try.{.$currentPackage
7f0e0 73 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 65 64 52 65 70 6f s.=.$this->locker->getLockedRepo
7f100 73 69 74 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 sitory($withDevReqs)->getPackage
7f120 73 28 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 6f 6e 20 s();.}.catch.(\RuntimeException.
7f140 24 65 29 20 7b 0a 0a 20 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 $e).{...$currentPackages.=.$this
7f160 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 29 2d ->locker->getLockedRepository()-
7f180 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 75 72 72 >getPackages();.}.}.else.{.$curr
7f1a0 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 entPackages.=.$installedRepo->ge
7f1c0 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 20 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 tPackages();.}....$candidates.=.
7f1e0 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 69 6e array();.foreach.($links.as.$lin
7f200 6b 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 k).{.$candidates[$link->getTarge
7f220 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 t()].=.true;.}.foreach.($localRe
7f240 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 29 20 7b po->getPackages().as.$package).{
7f260 0a 24 63 61 6e 64 69 64 61 74 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 .$candidates[$package->getName()
7f280 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 ].=.true;.}....foreach.($candida
7f2a0 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 20 3d 3e 20 24 64 75 6d 6d 79 29 20 7b 0a 66 tes.as.$candidate.=>.$dummy).{.f
7f2c0 6f 72 65 61 63 68 20 28 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 61 73 20 24 63 75 72 oreach.($currentPackages.as.$cur
7f2e0 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e Package).{.if.($curPackage->getN
7f300 61 6d 65 28 29 20 3d 3d 3d 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 21 24 74 68 ame().===.$candidate).{.if.(!$th
7f320 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 6c 65 28 24 63 75 72 50 61 63 6b 61 67 65 29 20 26 26 is->isUpdateable($curPackage).&&
7f340 20 21 69 73 73 65 74 28 24 72 65 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 .!isset($removedUnstablePackages
7f360 5b 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 63 6f [$curPackage->getName()])).{.$co
7f380 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 74 nstraint.=.new.VersionConstraint
7f3a0 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 29 ('=',.$curPackage->getVersion())
7f3c0 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 2d ;.$request->install($curPackage-
7f3e0 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 62 72 65 61 >getName(),.$constraint);.}.brea
7f400 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f k;.}.}.}.}.}.elseif.($installFro
7f420 6d 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 mLock).{.$this->io->write('<info
7f440 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 >Installing.dependencies'.($with
7f460 44 65 76 52 65 71 73 3f 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 DevReqs?'.(including.require-dev
7f480 29 27 3a 27 27 29 2e 27 20 66 72 6f 6d 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 )':'').'.from.lock.file</info>')
7f4a0 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 46 72 65 73 68 28 29 ;..if.(!$this->locker->isFresh()
7f4c0 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 3e 57 ).{.$this->io->write('<warning>W
7f4e0 61 72 6e 69 6e 67 3a 20 54 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 75 70 20 arning:.The.lock.file.is.not.up.
7f500 74 6f 20 64 61 74 65 20 77 69 74 68 20 74 68 65 20 6c 61 74 65 73 74 20 63 68 61 6e 67 65 73 20 to.date.with.the.latest.changes.
7f520 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 20 59 6f 75 20 6d 61 79 20 62 65 20 67 65 74 in.composer.json..You.may.be.get
7f540 74 69 6e 67 20 6f 75 74 64 61 74 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 20 52 75 6e 20 ting.outdated.dependencies..Run.
7f560 75 70 64 61 74 65 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 6d 2e 3c 2f 77 61 72 6e 69 6e 67 3e update.to.update.them.</warning>
7f580 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 ');.}..foreach.($lockedRepositor
7f5a0 79 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 29 20 7b 0a y->getPackages().as.$package).{.
7f5c0 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 6e 28 $version.=.$package->getVersion(
7f5e0 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e );.if.(isset($aliases[$package->
7f600 67 65 74 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f getName()][$version])).{.$versio
7f620 6e 20 3d 20 24 61 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 n.=.$aliases[$package->getName()
7f640 5d 5b 24 76 65 72 73 69 6f 6e 5d 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b ][$version]['alias_normalized'];
7f660 0a 7d 0a 24 63 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 .}.$constraint.=.new.VersionCons
7f680 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6e 73 74 72 61 69 traint('=',.$version);.$constrai
7f6a0 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 nt->setPrettyString($package->ge
7f6c0 74 50 72 65 74 74 79 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 tPrettyVersion());.$request->ins
7f6e0 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
7f700 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 raint);.}..foreach.($this->locke
7f720 72 2d 3e 67 65 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 77 69 74 68 r->getPlatformRequirements($with
7f740 44 65 76 52 65 71 73 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 DevReqs).as.$link).{.$request->i
7f760 6e 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 nstall($link->getTarget(),.$link
7f780 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 ->getConstraint());.}.}.else.{.$
7f7a0 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e this->io->write('<info>Installin
7f7c0 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 52 65 71 73 3f 27 20 g.dependencies'.($withDevReqs?'.
7f7e0 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 3a 27 27 29 2e 27 3c 2f (including.require-dev)':'').'</
7f800 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 6c info>');..if.($withDevReqs).{.$l
7f820 69 6e 6b 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 inks.=.array_merge($this->packag
7f840 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 e->getRequires(),.$this->package
7f860 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c ->getDevRequires());.}.else.{.$l
7f880 69 6e 6b 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 71 75 69 72 inks.=.$this->package->getRequir
7f8a0 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e es();.}..foreach.($links.as.$lin
7f8c0 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 6b 2d 3e 67 65 k).{.$request->install($link->ge
7f8e0 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 61 69 6e 74 28 tTarget(),.$link->getConstraint(
7f900 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b ));.}.}....$this->processDevPack
7f920 61 67 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c ages($localRepo,.$pool,.$policy,
7f940 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 .$repositories,.$lockedRepositor
7f960 79 2c 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 27 66 6f 72 63 65 2d 6c 69 6e 6b y,.$installFromLock,.'force-link
7f980 73 27 29 3b 0a 0a 0a 20 24 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f s');....$solver.=.new.Solver($po
7f9a0 6c 69 63 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 74 72 licy,.$pool,.$installedRepo);.tr
7f9c0 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
7f9e0 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
7fa00 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
7fa20 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
7fa40 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
7fa60 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>')
7fa80 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
7faa0 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 24 6f 70 65 72 61 e());..return.false;.}....$opera
7fac0 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 tions.=.$this->processDevPackage
7fae0 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 s($localRepo,.$pool,.$policy,.$r
7fb00 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 epositories,.$lockedRepository,.
7fb20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 $installFromLock,.'force-updates
7fb40 27 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 0a 0a 20 69 66 20 28 21 24 6f 70 65 72 61 74 ',.$operations);....if.(!$operat
7fb60 69 6f 6e 73 29 20 7b 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 ions).{.$this->io->write('Nothin
7fb80 67 20 74 6f 20 69 6e 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 g.to.install.or.update');.}..for
7fba0 65 61 63 68 20 28 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 each.($operations.as.$operation)
7fbc0 20 7b 0a 0a 20 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 .{...if.('install'.===.$operatio
7fbe0 6e 2d 3e 67 65 74 4a 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 n->getJobType()).{.foreach.($ope
7fc00 72 61 74 69 6f 6e 2d 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 ration->getPackage()->getSuggest
7fc20 73 28 29 20 61 73 20 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 s().as.$target.=>.$reason).{.$th
7fc40 69 73 2d 3e 73 75 67 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 is->suggestedPackages[].=.array(
7fc60 0a 27 73 6f 75 72 63 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 .'source'.=>.$operation->getPack
7fc80 61 67 65 28 29 2d 3e 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 age()->getPrettyName(),.'target'
7fca0 20 3d 3e 20 24 74 61 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 .=>.$target,.'reason'.=>.$reason
7fcc0 2c 0a 29 3b 0a 7d 0a 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 ,.);.}.}..$event.=.'Composer\Scr
7fce0 69 70 74 5c 53 63 72 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 ipt\ScriptEvents::PRE_PACKAGE_'.
7fd00 73 74 72 74 6f 75 70 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 strtoupper($operation->getJobTyp
7fd20 65 28 29 29 3b 0a 69 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 e());.if.(defined($event).&&.$th
7fd40 69 73 2d 3e 72 75 6e 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 is->runScripts).{.$this->eventDi
7fd60 73 70 61 74 63 68 65 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 spatcher->dispatchPackageEvent(c
7fd80 6f 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c onstant($event),.$this->devMode,
7fda0 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 69 6e 73 74 61 6c 6c .$operation);.}....if.(!$install
7fdc0 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 FromLock).{.$package.=.null;.if.
7fde0 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 62 ('update'.===.$operation->getJob
7fe00 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 72 61 74 69 6f 6e 2d Type()).{.$package.=.$operation-
7fe20 3e 67 65 74 54 61 72 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 >getTargetPackage();.}.elseif.('
7fe40 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 6f 62 54 install'.===.$operation->getJobT
7fe60 79 70 65 28 29 29 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 ype()).{.$package.=.$operation->
7fe80 67 65 74 50 61 63 6b 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 getPackage();.}.if.($package.&&.
7fea0 24 70 61 63 6b 61 67 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 $package->isDev()).{.$references
7fec0 20 3d 20 24 74 68 69 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 .=.$this->package->getReferences
7fee0 28 29 3b 0a 69 66 20 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 ();.if.(isset($references[$packa
7ff00 67 65 2d 3e 67 65 74 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 ge->getName()])).{.$package->set
7ff20 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 73 5b 24 70 61 63 SourceReference($references[$pac
7ff40 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 kage->getName()]);.$package->set
7ff60 44 69 73 74 52 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 DistReference($references[$packa
7ff80 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 ge->getName()]);.}.}.}....if.($t
7ffa0 68 69 73 2d 3e 64 72 79 52 75 6e 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 his->dryRun.&&.false.===.strpos(
7ffc0 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 27 41 6c 69 61 73 $operation->getJobType(),.'Alias
7ffe0 27 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 2d 20 27 20 2e 20 ')).{.$this->io->write('..-.'...
80000 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 $operation);.$this->io->write(''
80020 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 );.}.elseif.($this->io->isDebug(
80040 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 70 65 72 61 74 69 6f 6e ).&&.false.!==.strpos($operation
80060 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 27 41 6c 69 61 73 27 29 29 20 7b 0a 24 74 68 69 ->getJobType(),.'Alias')).{.$thi
80080 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 2d 20 27 20 2e 20 24 6f 70 65 72 61 74 69 6f 6e s->io->write('..-.'...$operation
800a0 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a 24 74 68 69 );.$this->io->write('');.}..$thi
800c0 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 65 78 65 63 75 74 65 28 s->installationManager->execute(
800e0 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 0a 0a 20 69 66 20 28 $localRepo,.$operation);....if.(
80100 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 $this->verbose.&&.$this->io->isV
80120 65 72 79 56 65 72 62 6f 73 65 28 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 6f 70 65 72 61 74 eryVerbose().&&.in_array($operat
80140 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 69 6e 73 74 61 6c ion->getJobType(),.array('instal
80160 6c 27 2c 20 27 75 70 64 61 74 65 27 29 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 6f 70 65 l',.'update'))).{.$reason.=.$ope
80180 72 61 74 69 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 3b 0a 69 66 20 28 24 72 65 61 73 6f 6e ration->getReason();.if.($reason
801a0 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 72 65 61 .instanceof.Rule).{.switch.($rea
801c0 73 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 29 20 7b 0a 63 61 73 65 20 52 75 6c 65 3a 3a 52 son->getReason()).{.case.Rule::R
801e0 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 ULE_JOB_INSTALL:.$this->io->writ
80200 65 28 27 20 20 20 20 52 45 41 53 4f 4e 3a 20 52 65 71 75 69 72 65 64 20 62 79 20 72 6f 6f 74 3a e('....REASON:.Required.by.root:
80220 20 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 28 29 .'.$reason->getRequiredPackage()
80240 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 62 72 65 61 6b 3b 0a );.$this->io->write('');.break;.
80260 63 61 73 65 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 case.Rule::RULE_PACKAGE_REQUIRES
80280 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 52 45 41 53 4f 4e 3a 20 :.$this->io->write('....REASON:.
802a0 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 29 3b 0a 24 '.$reason->getPrettyString());.$
802c0 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a this->io->write('');.break;.}.}.
802e0 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
80300 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f 75 iptEvents::POST_PACKAGE_'.strtou
80320 70 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 pper($operation->getJobType());.
80340 69 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 if.(defined($event).&&.$this->ru
80360 6e 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 nScripts).{.$this->eventDispatch
80380 65 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 er->dispatchPackageEvent(constan
803a0 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 24 6f 70 65 72 t($event),.$this->devMode,.$oper
803c0 61 74 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 ation);.}..if.(!$this->dryRun).{
803e0 0a 24 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 .$localRepo->write();.}.}..retur
80400 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 63 72 65 61 n.true;.}..private.function.crea
80420 74 65 50 6f 6f 6c 28 29 0a 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 tePool().{.$minimumStability.=.$
80440 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 69 this->package->getMinimumStabili
80460 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 70 ty();.$stabilityFlags.=.$this->p
80480 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 69 66 ackage->getStabilityFlags();..if
804a0 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 63 6b 65 .(!$this->update.&&.$this->locke
804c0 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 r->isLocked()).{.$minimumStabili
804e0 74 79 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 ty.=.$this->locker->getMinimumSt
80500 61 62 69 6c 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 ability();.$stabilityFlags.=.$th
80520 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b is->locker->getStabilityFlags();
80540 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 6f 6f 6c 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 .}..return.new.Pool($minimumStab
80560 69 6c 69 74 79 2c 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 7d 0a 0a 70 72 69 76 ility,.$stabilityFlags);.}..priv
80580 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 0a 7b 0a 72 65 ate.function.createPolicy().{.re
805a0 74 75 72 6e 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 28 24 74 68 69 73 2d 3e 70 61 turn.new.DefaultPolicy($this->pa
805c0 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 29 3b 0a 7d 0a 0a 70 72 ckage->getPreferStable());.}..pr
805e0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 71 75 65 73 74 28 50 6f 6f ivate.function.createRequest(Poo
80600 6c 20 24 70 6f 6f 6c 2c 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 72 l.$pool,.RootPackageInterface.$r
80620 6f 6f 74 50 61 63 6b 61 67 65 2c 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 24 ootPackage,.PlatformRepository.$
80640 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 0a 7b 0a 24 72 65 71 75 65 73 74 20 3d 20 6e 65 77 20 52 platformRepo).{.$request.=.new.R
80660 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 6e 65 equest($pool);..$constraint.=.ne
80680 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 72 6f 6f 74 50 61 w.VersionConstraint('=',.$rootPa
806a0 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e ckage->getVersion());.$constrain
806c0 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d t->setPrettyString($rootPackage-
806e0 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e >getPrettyVersion());.$request->
80700 69 6e 73 74 61 6c 6c 28 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c install($rootPackage->getName(),
80720 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 70 6c 61 74 .$constraint);....foreach.($plat
80740 66 6f 72 6d 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 formRepo->getPackages().as.$pack
80760 61 67 65 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e age).{.$constraint.=.new.Version
80780 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 Constraint('=',.$package->getVer
807a0 73 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 sion());.$constraint->setPrettyS
807c0 74 72 69 6e 67 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 tring($package->getPrettyVersion
807e0 28 29 29 3b 0a 0a 69 66 20 28 21 28 24 70 72 6f 76 69 64 65 64 20 3d 20 24 72 6f 6f 74 50 61 63 ());..if.(!($provided.=.$rootPac
80800 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 kage->getProvides()).||.!isset($
80820 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c provided[$package->getName()]).|
80840 7c 20 21 24 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 |.!$provided[$package->getName()
80860 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 6d 61 74 63 68 65 73 28 24 63 6f 6e ]->getConstraint()->matches($con
80880 73 74 72 61 69 6e 74 29 0a 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 straint).).{.$request->install($
808a0 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 72 61 69 6e 74 29 package->getName(),.$constraint)
808c0 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 65 73 74 3b 0a 7d 0a 0a 70 72 69 76 61 ;.}.}..return.$request;.}..priva
808e0 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 73 28 24 te.function.processDevPackages($
80900 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 65 70 6f localRepo,.$pool,.$policy,.$repo
80920 73 69 74 6f 72 69 65 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 69 6e sitories,.$lockedRepository,.$in
80940 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 24 74 61 73 6b 2c 20 61 72 72 61 79 20 24 6f 70 65 stallFromLock,.$task,.array.$ope
80960 72 61 74 69 6f 6e 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 rations.=.null).{.if.($task.===.
80980 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 70 65 'force-updates'.&&.null.===.$ope
809a0 72 61 74 69 6f 6e 73 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 rations).{.throw.new.\InvalidArg
809c0 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4d 69 73 73 69 6e 67 20 6f 70 65 72 61 74 69 6f umentException('Missing.operatio
809e0 6e 73 20 61 72 67 75 6d 65 6e 74 27 29 3b 0a 7d 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 ns.argument');.}.if.($task.===.'
80a00 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 61 72 force-links').{.$operations.=.ar
80a20 72 61 79 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 ray();.}..foreach.($localRepo->g
80a40 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 etCanonicalPackages().as.$packag
80a60 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 65 76 28 29 29 20 7b e).{...if.(!$package->isDev()).{
80a80 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 24 6f 70 65 72 61 74 .continue;.}....foreach.($operat
80aa0 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 28 28 27 75 70 64 61 ions.as.$operation).{.if.(('upda
80ac0 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 62 54 79 70 65 28 29 te'.===.$operation->getJobType()
80ae0 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 6c 50 61 63 6b 61 67 .&&.$operation->getInitialPackag
80b00 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 20 28 27 75 6e 69 6e e()->equals($package)).||.('unin
80b20 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 6f 62 54 79 70 stall'.===.$operation->getJobTyp
80b40 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 6b 61 67 65 28 29 2d e().&&.$operation->getPackage()-
80b60 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 6e 74 69 6e 75 65 20 >equals($package)).).{.continue.
80b80 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 6d 4c 6f 63 6b 29 20 2;.}.}....if.($installFromLock).
80ba0 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 {.foreach.($lockedRepository->fi
80bc0 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 6d 65 28 29 29 20 ndPackages($package->getName()).
80be0 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 24 6c 6f 63 6b 65 64 as.$lockedPackage).{.if.($locked
80c00 50 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 Package->isDev().&&.$lockedPacka
80c20 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 ge->getVersion().===.$package->g
80c40 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f etVersion()).{.if.($task.===.'fo
80c60 72 63 65 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 rce-links').{.$package->setRequi
80c80 72 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 res($lockedPackage->getRequires(
80ca0 29 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 6c 6f 63 6b ));.$package->setConflicts($lock
80cc0 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 29 3b 0a 24 70 61 63 edPackage->getConflicts());.$pac
80ce0 6b 61 67 65 2d 3e 73 65 74 50 72 6f 76 69 64 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 kage->setProvides($lockedPackage
80d00 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 ->getProvides());.$package->setR
80d20 65 70 6c 61 63 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 eplaces($lockedPackage->getRepla
80d40 63 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 ces());.}.elseif.($task.===.'for
80d60 63 65 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 69 66 20 28 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 ce-updates').{.if.(($lockedPacka
80d80 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6c 6f 63 ge->getSourceReference().&&.$loc
80da0 6b 65 64 50 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 kedPackage->getSourceReference()
80dc0 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 72 65 6e 63 .!==.$package->getSourceReferenc
80de0 65 28 29 29 0a 7c 7c 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 e()).||.($lockedPackage->getDist
80e00 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 Reference().&&.$lockedPackage->g
80e20 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e etDistReference().!==.$package->
80e40 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 20 7b 0a 24 6f 70 65 72 61 74 69 getDistReference()).).{.$operati
80e60 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 61 63 ons[].=.new.UpdateOperation($pac
80e80 6b 61 67 65 2c 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 kage,.$lockedPackage);.}.}..brea
80ea0 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 k;.}.}.}.else.{...if.($this->upd
80ec0 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 65 57 68 69 74 65 6c ate).{...if.($this->updateWhitel
80ee0 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 6c 65 28 24 70 61 63 ist.&&.!$this->isUpdateable($pac
80f00 6b 61 67 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 65 73 kage)).{.continue;.}....$matches
80f20 20 3d 20 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 .=.$pool->whatProvides($package-
80f40 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e >getName(),.new.VersionConstrain
80f60 74 28 27 3d 27 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 29 3b t('=',.$package->getVersion()));
80f80 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 .foreach.($matches.as.$index.=>.
80fa0 24 6d 61 74 63 68 29 20 7b 0a 0a 20 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6d 61 74 63 68 $match).{...if.(!in_array($match
80fc0 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 ->getRepository(),.$repositories
80fe0 2c 20 74 72 75 65 29 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 ,.true)).{.unset($matches[$index
81000 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 2d 3e 67 ]);.continue;.}....if.($match->g
81020 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 etName().!==.$package->getName()
81040 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 3b 0a 63 6f 6e ).{.unset($matches[$index]);.con
81060 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 20 3d 20 24 6d 61 tinue;.}..$matches[$index].=.$ma
81080 74 63 68 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 65 73 20 tch->getId();.}....if.($matches.
810a0 26 26 20 24 6d 61 74 63 68 65 73 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 50 72 65 &&.$matches.=.$policy->selectPre
810c0 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c 20 24 6d feredPackages($pool,.array(),.$m
810e0 61 74 63 68 65 73 29 29 20 7b 0a 24 6e 65 77 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e atches)).{.$newPackage.=.$pool->
81100 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6d 61 74 63 68 65 73 5b 30 5d 29 3b 0a 0a literalToPackage($matches[0]);..
81120 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 20 26 26 20 24 if.($task.===.'force-links'.&&.$
81140 6e 65 77 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 newPackage).{.$package->setRequi
81160 72 65 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 29 3b res($newPackage->getRequires());
81180 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 6e 65 77 50 61 63 6b .$package->setConflicts($newPack
811a0 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e age->getConflicts());.$package->
811c0 73 65 74 50 72 6f 76 69 64 65 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 setProvides($newPackage->getProv
811e0 69 64 65 73 28 29 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 ides());.$package->setReplaces($
81200 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 29 3b 0a 7d 0a 0a 69 newPackage->getReplaces());.}..i
81220 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 20 26 26 20 f.($task.===.'force-updates'.&&.
81240 24 6e 65 77 50 61 63 6b 61 67 65 20 26 26 20 28 0a 28 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e $newPackage.&&.(.(($newPackage->
81260 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6e 65 77 50 61 63 6b getSourceReference().&&.$newPack
81280 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 20 21 3d 3d 20 24 70 age->getSourceReference().!==.$p
812a0 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 0a 7c 7c ackage->getSourceReference()).||
812c0 20 28 24 6e 65 77 50 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 .($newPackage->getDistReference(
812e0 29 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e ).&&.$newPackage->getDistReferen
81300 63 65 28 29 20 21 3d 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 ce().!==.$package->getDistRefere
81320 6e 63 65 28 29 29 0a 29 0a 29 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 nce()).).)).{.$operations[].=.ne
81340 77 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 24 6e 65 77 w.UpdateOperation($package,.$new
81360 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 Package);.}.}.}..if.($task.===.'
81380 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 0a 20 24 72 65 66 65 72 65 6e 63 65 73 20 force-updates').{...$references.
813a0 3d 20 24 74 68 69 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 =.$this->package->getReferences(
813c0 29 3b 0a 0a 69 66 20 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 );..if.(isset($references[$packa
813e0 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 24 72 65 66 65 72 65 6e 63 65 73 5b 24 ge->getName()]).&&.$references[$
81400 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 package->getName()].!==.$package
81420 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 0a 20 24 6f 70 65 ->getSourceReference()).{...$ope
81440 72 61 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 rations[].=.new.UpdateOperation(
81460 24 70 61 63 6b 61 67 65 2c 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d $package,.clone.$package);.}.}.}
81480 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 70 72 69 76 61 .}..return.$operations;.}..priva
814a0 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 69 te.function.getRootAliases().{.i
814c0 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 63 6b f.(!$this->update.&&.$this->lock
814e0 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 er->isLocked()).{.$aliases.=.$th
81500 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 20 65 6c 73 65 is->locker->getAliases();.}.else
81520 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 .{.$aliases.=.$this->package->ge
81540 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 tAliases();.}..$normalizedAliase
81560 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 s.=.array();..foreach.($aliases.
81580 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 5b as.$alias).{.$normalizedAliases[
815a0 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 5d 5b 24 61 6c 69 61 73 5b 27 76 65 72 73 69 $alias['package']][$alias['versi
815c0 6f 6e 27 5d 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 61 6c 69 61 73 on']].=.array(.'alias'.=>.$alias
815e0 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e ['alias'],.'alias_normalized'.=>
81600 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 0a 29 3b 0a 7d .$alias['alias_normalized'].);.}
81620 0a 0a 72 65 74 75 72 6e 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 3b 0a 7d 0a 0a ..return.$normalizedAliases;.}..
81640 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 50 6c 61 74 66 6f 72 6d 50 61 private.function.aliasPlatformPa
81660 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 66 ckages(PlatformRepository.$platf
81680 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 ormRepo,.$aliases).{.foreach.($a
816a0 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 liases.as.$package.=>.$versions)
816c0 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 73 69 6f .{.foreach.($versions.as.$versio
816e0 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 6c 61 74 n.=>.$alias).{.$packages.=.$plat
81700 66 6f 72 6d 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 2c formRepo->findPackages($package,
81720 20 24 76 65 72 73 69 6f 6e 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 .$version);.foreach.($packages.a
81740 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 6e 65 s.$package).{.$aliasPackage.=.ne
81760 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 73 5b w.AliasPackage($package,.$alias[
81780 27 61 6c 69 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 'alias_normalized'],.$alias['ali
817a0 61 73 27 5d 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 as']);.$aliasPackage->setRootPac
817c0 6b 61 67 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e kageAlias(true);.$platformRepo->
817e0 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d addPackage($aliasPackage);.}.}.}
81800 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 61 62 6c .}..private.function.isUpdateabl
81820 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 0a 69 e(PackageInterface.$package).{.i
81840 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 0a 74 68 f.(!$this->updateWhitelist).{.th
81860 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 64 61 74 row.new.\LogicException('isUpdat
81880 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 68 65 6e eable.should.only.be.called.when
818a0 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 0a 66 6f .a.whitelist.is.present');.}..fo
818c0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 61 73 reach.($this->updateWhitelist.as
818e0 20 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d 3e 20 24 76 6f 69 64 29 20 7b .$whiteListedPattern.=>.$void).{
81900 0a 24 63 6c 65 61 6e 65 64 57 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d 20 73 74 .$cleanedWhiteListedPattern.=.st
81920 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2a 27 2c 20 27 2e 2a 27 2c 20 70 72 65 67 5f 71 75 6f 74 r_replace('\\*',.'.*',.preg_quot
81940 65 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 29 3b 0a 0a 69 66 20 28 70 72 e($whiteListedPattern));..if.(pr
81960 65 67 5f 6d 61 74 63 68 28 22 7b 5e 22 2e 24 63 6c 65 61 6e 65 64 57 68 69 74 65 4c 69 73 74 65 eg_match("{^".$cleanedWhiteListe
81980 64 50 61 74 74 65 72 6e 2e 22 24 7d 69 22 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d dPattern."$}i",.$package->getNam
819a0 65 28 29 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 72 6e e())).{.return.true;.}.}..return
819c0 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 .false;.}..private.function.extr
819e0 61 63 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6c 69 6e 6b 73 29 20 actPlatformRequirements($links).
81a00 7b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 {.$platformReqs.=.array();.forea
81a20 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f ch.($links.as.$link).{.if.(preg_
81a40 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f match(PlatformRepository::PLATFO
81a60 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 RM_PACKAGE_REGEX,.$link->getTarg
81a80 65 74 28 29 29 29 20 7b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 5b 24 6c 69 6e 6b 2d 3e 67 65 et())).{.$platformReqs[$link->ge
81aa0 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e tTarget()].=.$link->getPrettyCon
81ac0 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 6c 61 74 66 6f 72 6d straint();.}.}..return.$platform
81ae0 52 65 71 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e Reqs;.}..............private.fun
81b00 63 74 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 ction.whitelistUpdateDependencie
81b20 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 61 72 72 61 79 20 24 72 s($localRepo,.$devMode,.array.$r
81b40 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 ootRequires,.array.$rootDevRequi
81b60 72 65 73 29 0a 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 res).{.if.(!$this->updateWhiteli
81b80 73 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 st).{.return;.}..$requiredPackag
81ba0 65 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 eNames.=.array();.foreach.(array
81bc0 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 _merge($rootRequires,.$rootDevRe
81be0 71 75 69 72 65 73 29 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 71 75 69 72 65 64 quires).as.$require).{.$required
81c00 50 61 63 6b 61 67 65 4e 61 6d 65 73 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 PackageNames[].=.$require->getTa
81c20 72 67 65 74 28 29 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 rget();.}..if.($devMode).{.$root
81c40 52 65 71 75 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 Requires.=.array_merge($rootRequ
81c60 69 72 65 73 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 ires,.$rootDevRequires);.}..$ski
81c80 70 50 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 72 pPackages.=.array();.foreach.($r
81ca0 6f 6f 74 52 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 ootRequires.as.$require).{.$skip
81cc0 50 61 63 6b 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 Packages[$require->getTarget()].
81ce0 3d 20 74 72 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 =.true;.}..$pool.=.new.Pool;.$po
81d00 6f 6c 2d 3e 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 ol->addRepository($localRepo);..
81d20 24 73 65 65 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 $seen.=.array();..foreach.($this
81d40 2d 3e 75 70 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 ->updateWhitelist.as.$packageNam
81d60 65 20 3d 3e 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 e.=>.$void).{.$packageQueue.=.ne
81d80 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 0a 24 64 65 70 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6f w.\SplQueue;..$depPackages.=.$po
81da0 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 29 3b 0a ol->whatProvides($packageName);.
81dc0 69 66 20 28 63 6f 75 6e 74 28 24 64 65 70 50 61 63 6b 61 67 65 73 29 20 3d 3d 20 30 20 26 26 20 if.(count($depPackages).==.0.&&.
81de0 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 71 75 69 72 65 !in_array($packageName,.$require
81e00 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 29 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 dPackageNames).&&.!in_array($pac
81e20 6b 61 67 65 4e 61 6d 65 2c 20 61 72 72 61 79 28 27 6e 6f 74 68 69 6e 67 27 2c 20 27 6c 6f 63 6b kageName,.array('nothing',.'lock
81e40 27 29 29 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 '))).{.$this->io->write('<warnin
81e60 67 3e 50 61 63 6b 61 67 65 20 22 27 20 2e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 22 g>Package."'...$packageName...'"
81e80 20 6c 69 73 74 65 64 20 66 6f 72 20 75 70 64 61 74 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c .listed.for.update.is.not.instal
81ea0 6c 65 64 2e 20 49 67 6e 6f 72 69 6e 67 2e 3c 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 66 6f led..Ignoring.<warning>');.}..fo
81ec0 72 65 61 63 68 20 28 24 64 65 70 50 61 63 6b 61 67 65 73 20 61 73 20 24 64 65 70 50 61 63 6b 61 reach.($depPackages.as.$depPacka
81ee0 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 65 ge).{.$packageQueue->enqueue($de
81f00 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 75 pPackage);.}..while.(!$packageQu
81f20 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 61 eue->isEmpty()).{.$package.=.$pa
81f40 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 74 ckageQueue->dequeue();.if.(isset
81f60 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 6f ($seen[$package->getId()])).{.co
81f80 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 64 ntinue;.}..$seen[$package->getId
81fa0 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 69 ()].=.true;.$this->updateWhiteli
81fc0 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 0a st[$package->getName()].=.true;.
81fe0 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 72 .$requires.=.$package->getRequir
82000 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 20 es();.if.($devMode).{.$requires.
82020 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 67 =.array_merge($requires,.$packag
82040 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 68 e->getDevRequires());.}..foreach
82060 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 75 .($requires.as.$require).{.$requ
82080 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 65 irePackages.=.$pool->whatProvide
820a0 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 61 s($require->getTarget());..forea
820c0 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 65 ch.($requirePackages.as.$require
820e0 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 67 Package).{.if.(isset($skipPackag
82100 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 29 es[$requirePackage->getName()]))
82120 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 6e .{.continue;.}.$packageQueue->en
82140 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 0a queue($requirePackage);.}.}.}.}.
82160 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 6d 6f 63 6b 4c }.........private.function.mockL
82180 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 ocalRepositories(RepositoryManag
821a0 65 72 20 24 72 6d 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 er.$rm).{.$packages.=.array();.f
821c0 6f 72 65 61 63 68 20 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 oreach.($rm->getLocalRepository(
821e0 29 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 29 20 7b 0a )->getPackages().as.$package).{.
82200 24 70 61 63 6b 61 67 65 73 5b 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 5d 20 3d 20 63 $packages[(string).$package].=.c
82220 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 lone.$package;.}.foreach.($packa
82240 67 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 ges.as.$key.=>.$package).{.if.($
82260 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)
82280 20 7b 0a 24 61 6c 69 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 67 .{.$alias.=.(string).$package->g
822a0 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 5b 24 6b 65 79 5d 20 3d 20 6e etAliasOf();.$packages[$key].=.n
822c0 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 73 5b 24 61 6c 69 61 73 ew.AliasPackage($packages[$alias
822e0 5d 2c 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 24 70 61 63 6b ],.$package->getVersion(),.$pack
82300 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 24 72 age->getPrettyVersion());.}.}.$r
82320 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 0a 6e 65 77 20 49 6e 73 74 61 m->setLocalRepository(.new.Insta
82340 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 24 70 61 63 6b 61 67 65 73 29 0a 29 lledArrayRepository($packages).)
82360 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 69 ;.}.........public.static.functi
82380 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 6f on.create(IOInterface.$io,.Compo
823a0 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 ser.$composer).{.return.new.stat
823c0 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 66 69 67 28 29 2c ic(.$io,.$composer->getConfig(),
823e0 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 24 63 6f 6d 70 6f .$composer->getPackage(),.$compo
82400 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 0a 24 63 6f 6d 70 ser->getDownloadManager(),.$comp
82420 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 2c 0a 24 63 oser->getRepositoryManager(),.$c
82440 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 70 6f 73 65 72 2d omposer->getLocker(),.$composer-
82460 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 0a 24 63 6f 6d 70 >getInstallationManager(),.$comp
82480 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2c 0a 24 63 6f 6d oser->getEventDispatcher(),.$com
824a0 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 0a 29 3b poser->getAutoloadGenerator().);
824c0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 64 64 69 74 69 6f 6e 61 .}..public.function.setAdditiona
824e0 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 lInstalledRepository(RepositoryI
82500 6e 74 65 72 66 61 63 65 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 nterface.$additionalInstalledRep
82520 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 ository).{.$this->additionalInst
82540 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 alledRepository.=.$additionalIns
82560 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b talledRepository;..return.$this;
82580 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 44 72 79 .}........public.function.setDry
825a0 52 75 6e 28 24 64 72 79 52 75 6e 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 79 Run($dryRun.=.true).{.$this->dry
825c0 52 75 6e 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 72 79 52 75 6e 3b 0a 0a 72 65 74 75 72 6e Run.=.(boolean).$dryRun;..return
825e0 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 6e .$this;.}........public.function
82600 20 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d .setPreferSource($preferSource.=
82620 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 28 .true).{.$this->preferSource.=.(
82640 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 boolean).$preferSource;..return.
82660 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.
82680 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 setPreferDist($preferDist.=.true
826a0 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 20 3d 20 28 62 6f 6f 6c 65 61 6e ).{.$this->preferDist.=.(boolean
826c0 29 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a ).$preferDist;..return.$this;.}.
826e0 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 74 69 6d 69 .......public.function.setOptimi
82700 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 zeAutoloader($optimizeAutoloader
82720 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c .=.false).{.$this->optimizeAutol
82740 6f 61 64 65 72 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c oader.=.(boolean).$optimizeAutol
82760 6f 61 64 65 72 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 oader;..return.$this;.}........p
82780 75 62 6c 69 63 20 66 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 ublic.function.setUpdate($update
827a0 20 3d 20 74 72 75 65 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 .=.true).{.$this->update.=.(bool
827c0 65 61 6e 29 20 24 75 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 ean).$update;..return.$this;.}..
827e0 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 76 4d 6f 64 65 ......public.function.setDevMode
82800 28 24 64 65 76 4d 6f 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 ($devMode.=.true).{.$this->devMo
82820 64 65 20 3d 20 28 62 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 de.=.(boolean).$devMode;..return
82840 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 6e .$this;.}........public.function
82860 20 73 65 74 52 75 6e 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 .setRunScripts($runScripts.=.tru
82880 65 29 0a 7b 0a 24 74 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 e).{.$this->runScripts.=.(boolea
828a0 6e 29 20 24 72 75 6e 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 n).$runScripts;..return.$this;.}
828c0 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 43 6f 6e 66 69 ........public.function.setConfi
828e0 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 63 6f 6e 66 69 g(Config.$config).{.$this->confi
82900 67 20 3d 20 24 63 6f 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 g.=.$config;..return.$this;.}...
82920 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 65 28 .....public.function.setVerbose(
82940 24 76 65 72 62 6f 73 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 $verbose.=.true).{.$this->verbos
82960 65 20 3d 20 28 62 6f 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 e.=.(boolean).$verbose;..return.
82980 24 74 68 69 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 $this;.}.........public.function
829a0 20 73 65 74 55 70 64 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 .setUpdateWhitelist(array.$packa
829c0 67 65 73 29 0a 7b 0a 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 ges).{.$this->updateWhitelist.=.
829e0 61 72 72 61 79 5f 66 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 array_flip(array_map('strtolower
82a00 27 2c 20 24 70 61 63 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 ',.$packages));..return.$this;.}
82a20 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 64 69 73 61 62 ...........public.function.disab
82a40 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e leCustomInstallers().{.$this->in
82a60 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 64 69 73 61 62 6c 65 43 75 73 74 6f 6d stallationManager->disableCustom
82a80 49 6e 73 74 61 6c 6c 65 72 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d Installers();..return.$this;.}.}
82aa0 0a 3c 3f 70 68 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 .<?php../*..*.This.file.is.part.
82ac0 6f 66 20 43 6f 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 of.Composer...*..*.(c).Nils.Ader
82ae0 6d 61 6e 6e 20 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 mann.<naderman@naderman.de>..*..
82b00 20 20 20 4a 6f 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 ...Jordi.Boggiano.<j.boggiano@se
82b20 6c 64 2e 62 65 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 ld.be>..*..*.For.the.full.copyri
82b40 67 68 74 20 61 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 ght.and.license.information,.ple
82b60 61 73 65 20 76 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 ase.view.the.LICENSE..*.file.tha
82b80 74 20 77 61 73 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 t.was.distributed.with.this.sour
82ba0 63 65 20 63 6f 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 ce.code...*/..namespace.Composer
82bc0 5c 41 75 74 6f 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 \Autoload;../**..*.ClassLoader.i
82be0 6d 70 6c 65 6d 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 mplements.a.PSR-0.class.loader..
82c00 2a 0a 20 2a 20 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 *..*.See.https://github.com/php-
82c20 66 69 67 2f 66 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 fig/fig-standards/blob/master/ac
82c40 63 65 70 74 65 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 cepted/PSR-0.md..*..*.....$loade
82c60 72 20 3d 20 6e 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 r.=.new.\Composer\Autoload\Class
82c80 4c 6f 61 64 65 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 Loader();..*..*.....//.register.
82ca0 63 6c 61 73 73 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 classes.with.namespaces..*.....$
82cc0 6c 6f 61 64 65 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 loader->add('Symfony\Component',
82ce0 20 5f 5f 44 49 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 .__DIR__.'/component');..*.....$
82d00 6c 6f 61 64 65 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 loader->add('Symfony',..........
82d20 20 5f 5f 44 49 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 .__DIR__.'/framework');..*..*...
82d40 20 20 2f 2f 20 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 ..//.activate.the.autoloader..*.
82d60 20 20 20 20 24 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 ....$loader->register();..*..*..
82d80 20 20 20 2f 2f 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 ...//.to.enable.searching.the.in
82da0 63 6c 75 64 65 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 clude.path.(eg..for.PEAR.package
82dc0 73 29 0a 20 2a 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 s)..*.....$loader->setUseInclude
82de0 50 61 74 68 28 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 Path(true);..*..*.In.this.exampl
82e00 65 2c 20 69 66 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 e,.if.you.try.to.use.a.class.in.
82e20 74 68 65 20 53 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 the.Symfony\Component..*.namespa
82e40 63 65 20 6f 72 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 ce.or.one.of.its.children.(Symfo
82e60 6e 79 5c 43 6f 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 ny\Component\Console.for.instanc
82e80 65 29 2c 0a 20 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 e),..*.the.autoloader.will.first
82ea0 20 6c 6f 6f 6b 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 .look.for.the.class.under.the.co
82ec0 6d 70 6f 6e 65 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 mponent/..*.directory,.and.it.wi
82ee0 6c 6c 20 74 68 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 ll.then.fallback.to.the.framewor
82f00 6b 2f 20 64 69 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 k/.directory.if.not..*.found.bef
82f20 6f 72 65 20 67 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 ore.giving.up...*..*.This.class.
82f40 69 73 20 6c 6f 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 is.loosely.based.on.the.Symfony.
82f60 55 6e 69 76 65 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 UniversalClassLoader...*..*.@aut
82f80 68 6f 72 20 46 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 hor.Fabien.Potencier.<fabien@sym
82fa0 66 6f 6e 79 2e 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 fony.com>..*.@author.Jordi.Boggi
82fc0 61 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 2f 0a 63 6c 61 ano.<j.boggiano@seld.be>..*/.cla
82fe0 73 73 20 43 6c 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 ss.ClassLoader.{.....private.$pr
83000 65 66 69 78 65 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 efixes.=.array();.....private.$f
83020 61 6c 6c 62 61 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 allbackDirs.=.array();.....priva
83040 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 0a 20 20 20 20 te.$useIncludePath.=.false;.....
83060 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 20 20 private.$classMap.=.array();....
83080 20 20 70 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 ..public.function.getPrefixes().
830a0 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 70 72 65 66 ....{.........return.$this->pref
830c0 69 78 65 73 3b 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 ixes;.....}......public.function
830e0 20 67 65 74 46 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 .getFallbackDirs().....{........
83100 20 72 65 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 20 20 20 .return.$this->fallbackDirs;....
83120 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 43 6c 61 73 73 .}......public.function.getClass
83140 4d 61 70 28 29 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 Map().....{.........return.$this
83160 2d 3e 63 6c 61 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 ->classMap;.....}....../**......
83180 2a 20 40 70 61 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 *.@param.array.$classMap.Class.t
831a0 6f 20 66 69 6c 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 o.filename.map......*/.....publi
831c0 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
831e0 61 73 73 4d 61 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 assMap).....{.........if.($this-
83200 3e 63 6c 61 73 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 >classMap).{.............$this->
83220 63 6c 61 73 73 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 classMap.=.array_merge($this->cl
83240 61 73 73 4d 61 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 assMap,.$classMap);.........}.el
83260 73 65 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 4d 61 70 se.{.............$this->classMap
83280 20 3d 20 24 63 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 .=.$classMap;.........}.....}...
832a0 20 20 20 2f 2a 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 .../**......*.Registers.a.set.of
832c0 20 63 6c 61 73 73 65 73 2c 20 6d 65 72 67 69 6e 67 20 77 69 74 68 20 61 6e 79 20 6f 74 68 65 72 .classes,.merging.with.any.other
832e0 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 s.previously.set.......*......*.
83300 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 20 54 68 65 @param.string.......$prefix..The
83320 20 63 6c 61 73 73 65 73 20 70 72 65 66 69 78 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 .classes.prefix......*.@param.ar
83340 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 20 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e ray|string.$paths...The.location
83360 28 73 29 20 6f 66 20 74 68 65 20 63 6c 61 73 73 65 73 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d (s).of.the.classes......*.@param
83380 20 62 6f 6f 6c 20 20 20 20 20 20 20 20 20 24 70 72 65 70 65 6e 64 20 50 72 65 70 65 6e 64 20 74 .bool.........$prepend.Prepend.t
833a0 68 65 20 6c 6f 63 61 74 69 6f 6e 28 73 29 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 he.location(s)......*/.....publi
833c0 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 2c 20 c.function.add($prefix,.$paths,.
833e0 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 $prepend.=.false).....{.........
83400 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 69 66 20 28 if.(!$prefix).{.............if.(
83420 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 $prepend).{.................$thi
83440 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 s->fallbackDirs.=.array_merge(..
83460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 ...................(array).$path
83480 73 2c 0a 20 20 20 20 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 s,.....................$this->fa
834a0 6c 6c 62 61 63 6b 44 69 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 llbackDirs.................);...
834c0 20 20 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 20 20 ..........}.else.{..............
834e0 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d ...$this->fallbackDirs.=.array_m
83500 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d erge(.....................$this-
83520 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >fallbackDirs,..................
83540 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(array).$paths...............
83560 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..);.............}..............
83580 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 return;.........}.........if.(!i
835a0 73 73 65 74 28 24 74 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 sset($this->prefixes[$prefix])).
835c0 7b 0a 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 5b 24 70 {.............$this->prefixes[$p
835e0 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 20 20 20 20 20 20 refix].=.(array).$paths;........
83600 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 20 20 20 20 20 20 ......return;.........}.........
83620 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 if.($prepend).{.............$thi
83640 73 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 s->prefixes[$prefix].=.array_mer
83660 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 ge(.................(array).$pat
83680 68 73 2c 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 hs,.................$this->prefi
836a0 78 65 73 5b 24 70 72 65 66 69 78 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 xes[$prefix].............);.....
836c0 20 20 20 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 ....}.else.{.............$this->
836e0 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(
83700 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
83720 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
83740 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.............);........
83760 20 7d 0a 20 20 20 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 .}.....}....../**......*.Registe
83780 72 73 20 61 20 73 65 74 20 6f 66 20 63 6c 61 73 73 65 73 2c 20 72 65 70 6c 61 63 69 6e 67 20 61 rs.a.set.of.classes,.replacing.a
837a0 6e 79 20 6f 74 68 65 72 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 2e 0a 20 20 20 20 20 2a ny.others.previously.set.......*
837c0 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 ......*.@param.string.......$pre
837e0 66 69 78 20 20 54 68 65 20 63 6c 61 73 73 65 73 20 70 72 65 66 69 78 0a 20 20 20 20 20 2a 20 40 fix..The.classes.prefix......*.@
83800 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 20 20 54 68 65 20 param.array|string.$paths...The.
83820 6c 6f 63 61 74 69 6f 6e 28 73 29 20 6f 66 20 74 68 65 20 63 6c 61 73 73 65 73 0a 20 20 20 20 20 location(s).of.the.classes......
83840 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 28 24 70 72 65 66 */.....public.function.set($pref
83860 69 78 2c 20 24 70 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 ix,.$paths).....{.........if.(!$
83880 70 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c prefix).{.............$this->fal
838a0 6c 62 61 63 6b 44 69 72 73 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 20 20 20 lbackDirs.=.(array).$paths;.....
838c0 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 20 20 20 .........return;.........}......
838e0 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 ...$this->prefixes[$prefix].=.(a
83900 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 rray).$paths;.....}....../**....
83920 20 20 2a 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 ..*.Turns.on.searching.the.inclu
83940 64 65 20 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 de.path.for.class.files.......*.
83960 20 20 20 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 .....*.@param.bool.$useIncludePa
83980 74 68 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 73 th......*/.....public.function.s
839a0 65 74 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 etUseIncludePath($useIncludePath
839c0 29 0a 20 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 ).....{.........$this->useInclud
839e0 65 50 61 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 ePath.=.$useIncludePath;.....}..
83a00 20 20 20 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 ..../**......*.Can.be.used.to.ch
83a20 65 63 6b 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 eck.if.the.autoloader.uses.the.i
83a40 6e 63 6c 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 nclude.path.to.check......*.for.
83a60 63 6c 61 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 classes.......*......*.@return.b
83a80 6f 6f 6c 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 ool......*/.....public.function.
83aa0 67 65 74 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 getUseIncludePath().....{.......
83ac0 20 20 72 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 ..return.$this->useIncludePath;.
83ae0 20 20 20 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 ....}....../**......*.Registers.
83b00 74 68 69 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 this.instance.as.an.autoloader..
83b20 20 20 20 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 .....*......*.@param.bool.$prepe
83b40 6e 64 20 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 nd.Whether.to.prepend.the.autolo
83b60 61 64 65 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 ader.or.not......*/.....public.f
83b80 75 6e 63 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 unction.register($prepend.=.fals
83ba0 65 29 0a 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 e).....{.........spl_autoload_re
83bc0 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 61 73 73 27 29 gister(array($this,.'loadClass')
83be0 2c 20 74 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 ,.true,.$prepend);.....}....../*
83c00 2a 0a 20 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 *......*.Unregisters.this.instan
83c20 63 65 20 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 ce.as.an.autoloader.......*/....
83c40 20 70 75 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 .public.function.unregister()...
83c60 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 75 6e 72 65 67 69 73 ..{.........spl_autoload_unregis
83c80 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 29 3b 0a ter(array($this,.'loadClass'));.
83ca0 20 20 20 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 ....}....../**......*.Loads.the.
83cc0 67 69 76 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 given.class.or.interface.......*
83ce0 0a 20 20 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 ......*.@param..string....$class
83d00 20 54 68 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 .The.name.of.the.class......*.@r
83d20 65 74 75 72 6e 20 62 6f 6f 6c 7c 6e 75 6c 6c 20 54 72 75 65 20 69 66 20 6c 6f 61 64 65 64 2c 20 eturn.bool|null.True.if.loaded,.
83d40 6e 75 6c 6c 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 null.otherwise......*/.....publi
83d60 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 29 0a 20 20 20 c.function.loadClass($class)....
83d80 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 .{.........if.($file.=.$this->fi
83da0 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e ndFile($class)).{.............in
83dc0 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e clude.$file;..............return
83de0 20 74 72 75 65 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 2a 0a .true;.........}.....}....../**.
83e00 20 20 20 20 20 2a 20 46 69 6e 64 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 66 69 6c .....*.Finds.the.path.to.the.fil
83e20 65 20 77 68 65 72 65 20 74 68 65 20 63 6c 61 73 73 20 69 73 20 64 65 66 69 6e 65 64 2e 0a 20 20 e.where.the.class.is.defined....
83e40 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 24 63 6c 61 73 73 ...*......*.@param.string.$class
83e60 20 54 68 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 0a 20 20 .The.name.of.the.class......*...
83e80 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 7c 66 61 6c 73 65 20 54 68 65 20 70 61 ...*.@return.string|false.The.pa
83ea0 74 68 20 69 66 20 66 6f 75 6e 64 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 th.if.found,.false.otherwise....
83ec0 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 66 69 6e 64 46 69 6c ..*/.....public.function.findFil
83ee0 65 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 27 5c 5c 27 e($class).....{.........if.('\\'
83f00 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 63 6c .==.$class[0]).{.............$cl
83f20 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 20 20 ass.=.substr($class,.1);........
83f40 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6c 61 .}..........if.(isset($this->cla
83f60 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ssMap[$class])).{.............re
83f80 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 20 20 turn.$this->classMap[$class];...
83fa0 20 20 20 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 ......}..........if.(false.!==.$
83fc0 70 6f 73 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 pos.=.strrpos($class,.'\\')).{..
83fe0 20 20 20 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 ...........//.namespaced.class.n
84000 61 6d 65 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 ame.............$classPath.=.str
84020 5f 72 65 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 _replace('\\',.DIRECTORY_SEPARAT
84040 4f 52 2c 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 OR,.substr($class,.0,.$pos))...D
84060 49 52 45 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 IRECTORY_SEPARATOR;.............
84080 24 63 6c 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 $className.=.substr($class,.$pos
840a0 20 2b 20 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 .+.1);.........}.else.{.........
840c0 20 20 20 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 ....//.PEAR-like.class.name.....
840e0 20 20 20 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 ........$classPath.=.null;......
84100 20 20 20 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 .......$className.=.$class;.....
84120 20 20 20 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 ....}..........$classPath..=.str
84140 5f 72 65 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 _replace('_',.DIRECTORY_SEPARATO
84160 52 2c 20 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 R,.$className)...'.php';........
84180 20 20 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 20 24 70 ..foreach.($this->prefixes.as.$p
841a0 72 65 66 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 refix.=>.$dirs).{.............if
841c0 20 28 30 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 .(0.===.strpos($class,.$prefix))
841e0 20 7b 0a 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 .{.................foreach.($dir
84200 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 20 20 20 20 20 20 20 s.as.$dir).{....................
84220 20 69 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 .if.(file_exists($dir...DIRECTOR
84240 59 5f 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 Y_SEPARATOR...$classPath)).{....
84260 20 20 20 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 .....................return.$dir
84280 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 6c 61 73 73 50 ...DIRECTORY_SEPARATOR...$classP
842a0 61 74 68 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 ath;.....................}......
842c0 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 0a 20 20 20 20 20 ...........}.............}......
842e0 20 20 20 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 ...}..........foreach.($this->fa
84300 6c 6c 62 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 llbackDirs.as.$dir).{...........
84320 20 20 69 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 ..if.(file_exists($dir...DIRECTO
84340 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 29 29 20 7b 0a 20 20 RY_SEPARATOR...$classPath)).{...
84360 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 44 49 52 45 ..............return.$dir...DIRE
84380 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 20 20 CTORY_SEPARATOR...$classPath;...
843a0 20 20 20 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 ..........}.........}..........i
843c0 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 66 69 6c f.($this->useIncludePath.&&.$fil
843e0 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 74 68 28 e.=.stream_resolve_include_path(
84400 24 63 6c 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 $classPath)).{.............retur
84420 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 n.$file;.........}..........retu
84440 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 6c rn.$this->classMap[$class].=.fal
84460 73 65 3b 0a 20 20 20 20 7d 0a 7d 0a 5b 0a 20 20 20 20 22 41 46 4c 2d 31 2e 31 22 2c 20 22 41 46 se;.....}.}.[....."AFL-1.1",."AF
84480 4c 2d 31 2e 32 22 2c 20 22 41 46 4c 2d 32 2e 30 22 2c 20 22 41 46 4c 2d 32 2e 31 22 2c 20 22 41 L-1.2",."AFL-2.0",."AFL-2.1",."A
844a0 46 4c 2d 33 2e 30 22 2c 20 22 41 50 4c 2d 31 2e 30 22 2c 20 22 41 6c 61 64 64 69 6e 22 2c 0a 20 FL-3.0",."APL-1.0",."Aladdin",..
844c0 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 70 ..."ANTLR-PD",."Apache-1.0",."Ap
844e0 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 31 ache-1.1",."Apache-2.0",."APSL-1
84500 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 2c .0",....."APSL-1.1",."APSL-1.2",
84520 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 72 ."APSL-2.0",."Artistic-1.0",."Ar
84540 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 69 74 54 6f 72 72 tistic-2.0",."AAL",....."BitTorr
84560 65 6e 74 2d 31 2e 30 22 2c 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 31 22 2c 20 22 42 53 4c ent-1.0",."BitTorrent-1.1",."BSL
84580 2d 31 2e 30 22 2c 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 43 6c 65 61 72 22 2c 0a 20 20 20 -1.0",."BSD-3-Clause-Clear",....
845a0 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 65 2d 46 ."BSD-2-Clause",."BSD-2-Clause-F
845c0 72 65 65 42 53 44 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 4e 65 74 42 53 44 22 2c 0a reeBSD",."BSD-2-Clause-NetBSD",.
845e0 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 61 75 73 ...."BSD-3-Clause",."BSD-4-Claus
84600 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 4c 2d 31 e",."BSD-4-Clause-UC",."CECILL-1
84620 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 4c 2d 32 .0",....."CECILL-1.1",."CECILL-2
84640 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 22 43 6c .0",."CECILL-B",."CECILL-C",."Cl
84660 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 22 2c 20 22 43 Artistic",....."CNRI-Python",."C
84680 4e 52 49 2d 50 79 74 68 6f 6e 2d 47 50 4c 2d 43 6f 6d 70 61 74 69 62 6c 65 22 2c 20 22 43 44 44 NRI-Python-GPL-Compatible",."CDD
846a0 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 2d 31 2e L-1.0",."CDDL-1.1",....."CPAL-1.
846c0 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 22 43 6f 0",."CPL-1.0",."CATOSL-1.1",."Co
846e0 6e 64 6f 72 2d 31 2e 31 22 2c 20 22 43 43 2d 42 59 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 32 ndor-1.1",."CC-BY-1.0",."CC-BY-2
84700 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 33 2e 30 .0",....."CC-BY-2.5",."CC-BY-3.0
84720 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 30 ",."CC-BY-ND-1.0",."CC-BY-ND-2.0
84740 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 44 ",."CC-BY-ND-2.5",....."CC-BY-ND
84760 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 -3.0",."CC-BY-NC-1.0",."CC-BY-NC
84780 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 -2.0",."CC-BY-NC-2.5",....."CC-B
847a0 59 2d 4e 43 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 Y-NC-3.0",."CC-BY-NC-ND-1.0",."C
847c0 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e C-BY-NC-ND-2.0",."CC-BY-NC-ND-2.
847e0 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 33 2e 30 22 2c 20 22 43 43 2d 42 5",....."CC-BY-NC-ND-3.0",."CC-B
84800 59 2d 4e 43 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 30 22 2c Y-NC-SA-1.0",."CC-BY-NC-SA-2.0",
84820 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e ."CC-BY-NC-SA-2.5",....."CC-BY-N
84840 43 2d 53 41 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 C-SA-3.0",."CC-BY-SA-1.0",."CC-B
84860 59 2d 53 41 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 35 22 2c 0a 20 20 20 20 22 Y-SA-2.0",."CC-BY-SA-2.5",....."
84880 43 43 2d 42 59 2d 53 41 2d 33 2e 30 22 2c 20 22 43 43 30 2d 31 2e 30 22 2c 20 22 43 55 41 2d 4f CC-BY-SA-3.0",."CC0-1.0",."CUA-O
848a0 50 4c 2d 31 2e 30 22 2c 20 22 57 54 46 50 4c 22 2c 20 22 45 50 4c 2d 31 2e 30 22 2c 20 22 65 43 PL-1.0",."WTFPL",."EPL-1.0",."eC
848c0 6f 73 2d 32 2e 30 22 2c 0a 20 20 20 20 22 45 43 4c 2d 31 2e 30 22 2c 20 22 45 43 4c 2d 32 2e 30 os-2.0",....."ECL-1.0",."ECL-2.0
848e0 22 2c 20 22 45 46 4c 2d 31 2e 30 22 2c 20 22 45 46 4c 2d 32 2e 30 22 2c 20 22 45 6e 74 65 73 73 ",."EFL-1.0",."EFL-2.0",."Entess
84900 61 22 2c 20 22 45 72 6c 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 45 55 44 61 74 61 67 72 69 64 a",."ErlPL-1.1",....."EUDatagrid
84920 22 2c 20 22 45 55 50 4c 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d 31 2e 31 22 2c 20 22 46 61 69 72 ",."EUPL-1.0",."EUPL-1.1",."Fair
84940 22 2c 20 22 46 72 61 6d 65 77 6f 72 78 2d 31 2e 30 22 2c 20 22 46 54 4c 22 2c 0a 20 20 20 20 22 ",."Frameworx-1.0",."FTL",....."
84960 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 32 AGPL-3.0",."GFDL-1.1",."GFDL-1.2
84980 22 2c 20 22 47 46 44 4c 2d 31 2e 33 22 2c 20 22 47 50 4c 2d 31 2e 30 22 2c 20 22 47 50 4c 2d 31 ",."GFDL-1.3",."GPL-1.0",."GPL-1
849a0 2e 30 2b 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 22 2c 20 22 47 50 4c 2d 32 2e 30 2b 22 2c .0+",....."GPL-2.0",."GPL-2.0+",
849c0 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 65 70 74 69 6f ."GPL-2.0-with-autoconf-exceptio
849e0 6e 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 62 69 73 6f 6e 2d 65 78 63 65 n",....."GPL-2.0-with-bison-exce
84a00 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 63 6c 61 73 73 70 61 74 68 2d ption",."GPL-2.0-with-classpath-
84a20 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 68 2d 66 6f exception",....."GPL-2.0-with-fo
84a40 6e 74 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 47 43 43 nt-exception",."GPL-2.0-with-GCC
84a60 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 47 50 4c -exception",."GPL-3.0",....."GPL
84a80 2d 33 2e 30 2b 22 2c 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 65 -3.0+",."GPL-3.0-with-autoconf-e
84aa0 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 43 2d 65 78 63 xception",."GPL-3.0-with-GCC-exc
84ac0 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 22 4c 47 50 4c 2d 32 2e 31 22 2c 20 22 4c 47 50 4c 2d 32 eption",....."LGPL-2.1",."LGPL-2
84ae0 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 2b 22 2c 20 22 .1+",."LGPL-3.0",."LGPL-3.0+",."
84b00 4c 47 50 4c 2d 32 2e 30 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 0a 20 20 20 20 22 67 53 4f LGPL-2.0",."LGPL-2.0+",....."gSO
84b20 41 50 2d 31 2e 33 62 22 2c 20 22 48 50 4e 44 22 2c 20 22 49 50 4c 2d 31 2e 30 22 2c 20 22 49 6d AP-1.3b",."HPND",."IPL-1.0",."Im
84b40 6c 69 62 32 22 2c 20 22 49 4a 47 22 2c 20 22 49 6e 74 65 6c 22 2c 20 22 49 50 41 22 2c 20 22 49 lib2",."IJG",."Intel",."IPA",."I
84b60 53 43 22 2c 0a 20 20 20 20 22 4a 53 4f 4e 22 2c 20 22 4c 50 50 4c 2d 31 2e 33 61 22 2c 20 22 4c SC",....."JSON",."LPPL-1.3a",."L
84b80 50 50 4c 2d 31 2e 30 22 2c 20 22 4c 50 50 4c 2d 31 2e 31 22 2c 20 22 4c 50 50 4c 2d 31 2e 32 22 PPL-1.0",."LPPL-1.1",."LPPL-1.2"
84ba0 2c 20 22 4c 50 50 4c 2d 31 2e 33 63 22 2c 0a 20 20 20 20 22 4c 69 62 70 6e 67 22 2c 20 22 4c 50 ,."LPPL-1.3c",....."Libpng",."LP
84bc0 4c 2d 31 2e 30 32 22 2c 20 22 4c 50 4c 2d 31 2e 30 22 2c 20 22 4d 53 2d 50 4c 22 2c 20 22 4d 53 L-1.02",."LPL-1.0",."MS-PL",."MS
84be0 2d 52 4c 22 2c 20 22 4d 69 72 4f 53 22 2c 20 22 4d 49 54 22 2c 0a 20 20 20 20 22 4d 6f 74 6f 73 -RL",."MirOS",."MIT",....."Motos
84c00 6f 74 6f 22 2c 20 22 4d 50 4c 2d 31 2e 30 22 2c 20 22 4d 50 4c 2d 31 2e 31 22 2c 20 22 4d 50 4c oto",."MPL-1.0",."MPL-1.1",."MPL
84c20 2d 32 2e 30 22 2c 0a 20 20 20 20 22 4d 50 4c 2d 32 2e 30 2d 6e 6f 2d 63 6f 70 79 6c 65 66 74 2d -2.0",....."MPL-2.0-no-copyleft-
84c40 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 4d 75 6c 74 69 63 73 22 2c 20 22 4e 41 53 41 2d 31 2e 33 exception",."Multics",."NASA-1.3
84c60 22 2c 20 22 4e 61 75 6d 65 6e 22 2c 0a 20 20 20 20 22 4e 42 50 4c 2d 31 2e 30 22 2c 20 22 4e 47 ",."Naumen",....."NBPL-1.0",."NG
84c80 50 4c 22 2c 20 22 4e 4f 53 4c 22 2c 20 22 4e 50 4c 2d 31 2e 30 22 2c 20 22 4e 50 4c 2d 31 2e 31 PL",."NOSL",."NPL-1.0",."NPL-1.1
84ca0 22 2c 20 22 4e 6f 6b 69 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 4e 54 ",."Nokia",."NPOSL-3.0",....."NT
84cc0 50 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 20 22 50 44 44 P",."OCLC-2.0",."ODbL-1.0",."PDD
84ce0 4c 2d 31 2e 30 22 2c 20 22 4f 47 54 53 4c 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 32 22 2c 0a L-1.0",."OGTSL",."OLDAP-2.2.2",.
84d00 20 20 20 20 22 4f 4c 44 41 50 2d 31 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 32 22 2c 20 22 4f ...."OLDAP-1.1",."OLDAP-1.2",."O
84d20 4c 44 41 50 2d 31 2e 33 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 34 22 2c 20 22 4f 4c 44 41 50 2d 32 LDAP-1.3",."OLDAP-1.4",."OLDAP-2
84d40 2e 30 22 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 30 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 32 .0",....."OLDAP-2.0.1",."OLDAP-2
84d60 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 31 22 2c .1",."OLDAP-2.2",."OLDAP-2.2.1",
84d80 20 22 4f 4c 44 41 50 2d 32 2e 33 22 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 34 22 2c 20 22 ."OLDAP-2.3",....."OLDAP-2.4",."
84da0 4f 4c 44 41 50 2d 32 2e 35 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 36 22 2c 20 22 4f 4c 44 41 50 2d OLDAP-2.5",."OLDAP-2.6",."OLDAP-
84dc0 32 2e 37 22 2c 20 22 4f 50 4c 2d 31 2e 30 22 2c 20 22 4f 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 2.7",."OPL-1.0",."OSL-1.0",.....
84de0 22 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 "OSL-2.0",."OSL-2.1",."OSL-3.0",
84e00 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 2d 33 2e ."OLDAP-2.8",."OpenSSL",."PHP-3.
84e20 30 22 2c 0a 20 20 20 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 0",....."PHP-3.01",."PostgreSQL"
84e40 2c 20 22 50 79 74 68 6f 6e 2d 32 2e 30 22 2c 20 22 51 50 4c 2d 31 2e 30 22 2c 20 22 52 50 53 4c ,."Python-2.0",."QPL-1.0",."RPSL
84e60 2d 31 2e 30 22 2c 20 22 52 50 4c 2d 31 2e 35 22 2c 0a 20 20 20 20 22 52 48 65 43 6f 73 2d 31 2e -1.0",."RPL-1.5",....."RHeCos-1.
84e80 31 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 20 22 1",."RSCPL",."Ruby",."SAX-PD",."
84ea0 53 47 49 2d 42 2d 31 2e 30 22 2c 20 22 53 47 49 2d 42 2d 31 2e 31 22 2c 0a 20 20 20 20 22 53 47 SGI-B-1.0",."SGI-B-1.1",....."SG
84ec0 49 2d 42 2d 32 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 31 22 2c 20 I-B-2.0",."OFL-1.0",."OFL-1.1",.
84ee0 22 53 69 6d 50 4c 2d 32 2e 30 22 2c 20 22 53 6c 65 65 70 79 63 61 74 22 2c 20 22 53 4d 4c 4e 4a "SimPL-2.0",."Sleepycat",."SMLNJ
84f00 22 2c 0a 20 20 20 20 22 53 75 67 61 72 43 52 4d 2d 31 2e 31 2e 33 22 2c 20 22 53 49 53 53 4c 22 ",....."SugarCRM-1.1.3",."SISSL"
84f20 2c 20 22 53 50 4c 2d 31 2e 30 22 2c 20 22 57 61 74 63 6f 6d 2d 31 2e 30 22 2c 20 22 4e 43 53 41 ,."SPL-1.0",."Watcom-1.0",."NCSA
84f40 22 2c 20 22 56 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 57 33 43 22 2c 20 22 57 58 77 69 6e 64 ",."VSL-1.0",....."W3C",."WXwind
84f60 6f 77 73 22 2c 20 22 58 6e 65 74 22 2c 20 22 58 31 31 22 2c 20 22 58 46 72 65 65 38 36 2d 31 2e ows",."Xnet",."X11",."XFree86-1.
84f80 31 22 2c 20 22 59 50 4c 2d 31 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 5a 1",."YPL-1.0",."YPL-1.1",....."Z
84fa0 69 6d 62 72 61 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 imbra-1.3",."Zlib",."ZPL-1.1",."
84fc0 5a 50 4c 2d 32 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 ZPL-2.0",."ZPL-2.1".]{....."name
84fe0 22 3a 20 22 50 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 ":."Package",....."type":."objec
85000 74 22 2c 0a 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 t",....."additionalProperties":.
85020 66 61 6c 73 65 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 false,....."properties":.{......
85040 20 20 20 22 6e 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 ..."name":.{............."type":
85060 20 22 73 74 72 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 ."string",............."descript
85080 69 6f 6e 22 3a 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 ion":."Package.name,.including.'
850a0 76 65 6e 64 6f 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 vendor-name/'.prefix.",.........
850c0 20 20 20 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 ...."required":.true.........},.
850e0 20 20 20 20 20 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 ........"type":.{............."d
85100 65 73 63 72 69 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 escription":."Package.type,.eith
85120 65 72 20 27 6c 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 er.'library'.for.common.packages
85140 2c 20 27 63 6f 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 ,.'composer-installer'.for.custo
85160 6d 20 69 6e 73 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 m.installers,.'metapackage'.for.
85180 65 6d 70 74 79 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 empty.packages,.or.a.custom.type
851a0 20 28 5b 61 2d 7a 30 2d 39 2d 5d 2b 29 20 64 65 66 69 6e 65 64 20 62 79 20 77 68 61 74 65 76 65 .([a-z0-9-]+).defined.by.whateve
851c0 72 20 70 72 6f 6a 65 63 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 61 70 70 6c 69 65 73 20 74 r.project.this.package.applies.t
851e0 6f 2e 22 2c 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 o.",............."type":."string
85200 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 61 72 67 65 74 2d 64 69 72 ".........},........."target-dir
85220 22 3a 20 7b 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 ":.{............."description":.
85240 22 46 6f 72 63 65 73 20 74 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c "Forces.the.package.to.be.instal
85260 6c 65 64 20 69 6e 74 6f 20 74 68 65 20 67 69 76 65 6e 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 led.into.the.given.subdirectory.
85280 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f 72 20 61 75 74 6f 6c 6f 61 64 69 path..This.is.used.for.autoloadi
852a0 6e 67 20 50 53 52 2d 30 20 70 61 63 6b 61 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 63 6f ng.PSR-0.packages.that.do.not.co
852c0 6e 74 61 69 6e 20 74 68 65 69 72 20 66 75 6c 6c 20 70 61 74 68 2e 20 55 73 65 20 66 6f 72 77 61 ntain.their.full.path..Use.forwa
852e0 72 64 20 73 6c 61 73 68 65 73 20 66 6f 72 20 63 72 6f 73 73 2d 70 6c 61 74 66 6f 72 6d 20 63 6f rd.slashes.for.cross-platform.co
85300 6d 70 61 74 69 62 69 6c 69 74 79 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 mpatibility.",............."type
85320 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 20 20 20 22 ":."string".........},........."
85340 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 description":.{............."typ
85360 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 22 64 65 73 63 72 e":."string",............."descr
85380 69 70 74 69 6f 6e 22 3a 20 22 53 68 6f 72 74 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 iption":."Short.package.descript
853a0 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 ion.",............."required":.t
853c0 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6b 65 79 77 6f 72 64 73 rue.........},........."keywords
853e0 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 61 72 72 61 79 22 ":.{............."type":."array"
85400 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 ,............."items":.{........
85420 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 20 ........."type":."string",......
85440 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 41 20 74 61 67 ..........."description":."A.tag
85460 2f 6b 65 79 77 6f 72 64 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 6c 61 74 /keyword.that.this.package.relat
85480 65 73 20 74 6f 2e 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 es.to.".............}.........},
854a0 0a 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 20 20 ........."homepage":.{..........
854c0 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 20 ..."type":."string",............
854e0 20 22 64 65 73 63 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 ."description":."Homepage.URL.fo
85500 72 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f r.the.project.",............."fo
85520 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 rmat":."uri".........},.........
85540 22 76 65 72 73 69 6f 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a "version":.{............."type":
85560 20 22 73 74 72 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 ."string",............."descript
85580 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 2c 20 73 65 65 20 68 74 74 70 ion":."Package.version,.see.http
855a0 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 63 68 65 6d 61 ://getcomposer.org/doc/04-schema
855c0 2e 6d 64 23 76 65 72 73 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 76 61 6c .md#version.for.more.info.on.val
855e0 69 64 20 73 63 68 65 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 id.schemes.".........},.........
85600 22 74 69 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 "time":.{............."type":."s
85620 74 72 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 tring",............."description
85640 22 3a 20 22 50 61 63 6b 61 67 65 20 72 65 6c 65 61 73 65 20 64 61 74 65 2c 20 69 6e 20 27 59 59 ":."Package.release.date,.in.'YY
85660 59 59 2d 4d 4d 2d 44 44 27 20 6f 72 20 27 59 59 59 59 2d 4d 4d 2d 44 44 20 48 48 3a 4d 4d 3a 53 YY-MM-DD'.or.'YYYY-MM-DD.HH:MM:S
85680 53 27 20 66 6f 72 6d 61 74 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 S'.format.".........},........."
856a0 6c 69 63 65 6e 73 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 license":.{............."type":.
856c0 5b 22 73 74 72 69 6e 67 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ["string",."array"],............
856e0 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c 69 63 65 6e 73 65 20 6e 61 6d 65 2e 20 4f ."description":."License.name..O
85700 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 6c 69 63 65 6e 73 65 20 6e 61 6d 65 73 2e 22 0a 20 20 r.an.array.of.license.names."...
85720 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 68 6f 72 73 22 3a 20 7b 0a 20 20 ......},........."authors":.{...
85740 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 20 20 20 20 20 .........."type":."array",......
85760 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c 69 73 74 20 6f 66 20 61 ......."description":."List.of.a
85780 75 74 68 6f 72 73 20 74 68 61 74 20 63 6f 6e 74 72 69 62 75 74 65 64 20 74 6f 20 74 68 65 20 70 uthors.that.contributed.to.the.p
857a0 61 63 6b 61 67 65 2e 20 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 74 68 65 20 6d 61 ackage..This.is.typically.the.ma
857c0 69 6e 20 6d 61 69 6e 74 61 69 6e 65 72 73 2c 20 6e 6f 74 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 in.maintainers,.not.the.full.lis
857e0 74 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 7b 0a 20 20 20 20 t.",............."items":.{.....
85800 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 20 ............"type":."object",...
85820 20 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 .............."additionalPropert
85840 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 ies":.false,................."pr
85860 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 20 20 20 operties":.{....................
85880 20 22 6e 61 6d 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 ."name":.{......................
858a0 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 20 ..."type":."string",............
858c0 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 46 75 6c ............."description":."Ful
858e0 6c 20 6e 61 6d 65 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 l.name.of.the.author.",.........
85900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 ................"required":.true
85920 0a 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 .....................},.........
85940 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ............"email":.{..........
85960 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 2c ..............."type":."string",
85980 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 72 69 ........................."descri
859a0 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 61 75 ption":."Email.address.of.the.au
859c0 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 20 20 thor.",.........................
859e0 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 20 20 20 20 "format":."email"...............
85a00 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 68 6f ......},....................."ho
85a20 6d 65 70 61 67 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 mepage":.{......................
85a40 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 20 ..."type":."string",............
85a60 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 48 6f 6d ............."description":."Hom
85a80 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 epage.URL.for.the.author.",.....
85aa0 20 20 20 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 ...................."format":."u
85ac0 72 69 22 0a 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 ri".....................},......
85ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 6f 6c 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 ..............."role":.{........
85b00 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
85b20 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
85b40 72 69 70 74 69 6f 6e 22 3a 20 22 41 75 74 68 6f 72 27 73 20 72 6f 6c 65 20 69 6e 20 74 68 65 20 ription":."Author's.role.in.the.
85b60 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a project.".....................}.
85b80 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 0a ................}.............}.
85ba0 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 22 3a 20 7b 0a ........},........."require":.{.
85bc0 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 20 ............"type":."object",...
85be0 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 69 .........."description":."This.i
85c00 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 20 s.a.hash.of.package.name.(keys).
85c20 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 29 and.version.constraints.(values)
85c40 20 74 68 61 74 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 72 75 6e 20 74 68 69 73 20 70 .that.are.required.to.run.this.p
85c60 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
85c80 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.........},...
85ca0 20 20 20 20 20 20 22 72 65 70 6c 61 63 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 ......"replace":.{............."
85cc0 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 65 type":."object",............."de
85ce0 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 70 scription":."This.is.a.hash.of.p
85d00 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 63 ackage.name.(keys).and.version.c
85d20 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 61 6e 20 62 65 20 onstraints.(values).that.can.be.
85d40 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 replaced.by.this.package.",.....
85d60 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 65 73 22 3a 20 ........"additionalProperties":.
85d80 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 63 6f 6e 66 6c 69 63 true.........},........."conflic
85da0 74 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 t":.{............."type":."objec
85dc0 74 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 t",............."description":."
85de0 54 68 69 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 This.is.a.hash.of.package.name.(
85e00 6b 65 79 73 29 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 keys).and.version.constraints.(v
85e20 61 6c 75 65 73 29 20 74 68 61 74 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 74 68 69 73 20 70 alues).that.conflict.with.this.p
85e40 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
85e60 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.........},...
85e80 20 20 20 20 20 20 22 70 72 6f 76 69 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 ......"provide":.{............."
85ea0 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 65 type":."object",............."de
85ec0 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 70 scription":."This.is.a.hash.of.p
85ee0 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 63 ackage.name.(keys).and.version.c
85f00 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 74 68 69 73 20 70 61 onstraints.(values).that.this.pa
85f20 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 ckage.provides.in.addition.to.th
85f40 69 73 20 70 61 63 6b 61 67 65 27 73 20 6e 61 6d 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 is.package's.name.",............
85f60 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...
85f80 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 2d 64 65 76 22 3a 20 ......},........."require-dev":.
85fa0 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 0a {............."type":."object",.
85fc0 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 73 ............"description":."This
85fe0 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 73 .is.a.hash.of.package.name.(keys
86000 29 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 ).and.version.constraints.(value
86020 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 73 20 66 6f s).that.this.package.requires.fo
86040 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 69 74 20 28 74 65 73 74 69 6e 67 20 74 6f 6f 6c 73 20 61 r.developing.it.(testing.tools.a
86060 6e 64 20 73 75 63 68 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 nd.such).",............."additio
86080 6e 61 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 nalProperties":.true.........},.
860a0 20 20 20 20 20 20 20 20 22 73 75 67 67 65 73 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ........"suggest":.{............
860c0 20 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 ."type":."object",............."
860e0 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 73 68 20 6f 66 description":."This.is.a.hash.of
86100 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 64 65 73 63 72 69 70 .package.name.(keys).and.descrip
86120 74 69 6f 6e 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 67 65 tions.(values).that.this.package
86140 20 73 75 67 67 65 73 74 73 20 77 6f 72 6b 20 77 65 6c 6c 20 77 69 74 68 20 69 74 20 28 74 68 69 .suggests.work.well.with.it.(thi
86160 73 20 77 69 6c 6c 20 62 65 20 73 75 67 67 65 73 74 65 64 20 74 6f 20 74 68 65 20 75 73 65 72 20 s.will.be.suggested.to.the.user.
86180 64 75 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 during.installation).",.........
861a0 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
861c0 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 63 6f 6e 66 69 67 22 3a 20 7b 0a .........},........."config":.{.
861e0 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 20 ............"type":."object",...
86200 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 43 6f 6d 70 6f 73 .........."description":."Compos
86220 65 72 20 6f 70 74 69 6f 6e 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 er.options.",............."prope
86240 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 6f 63 65 rties":.{................."proce
86260 73 73 2d 74 69 6d 65 6f 75 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ss-timeout":.{..................
86280 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ..."type":."integer",...........
862a0 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 65 20 74 69 .........."description":."The.ti
862c0 6d 65 6f 75 74 20 69 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 20 70 72 6f 63 65 73 73 20 65 78 65 meout.in.seconds.for.process.exe
862e0 63 75 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 33 30 30 20 28 35 6d 69 6e 73 29 cutions,.defaults.to.300.(5mins)
86300 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 20 .".................},...........
86320 20 20 20 20 20 20 22 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 22 3a 20 7b 0a 20 20 20 20 ......"use-include-path":.{.....
86340 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 62 6f 6f 6c 65 61 6e ................"type":."boolean
86360 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
86380 69 6f 6e 22 3a 20 22 49 66 20 74 72 75 65 2c 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 61 75 74 ion":."If.true,.the.Composer.aut
863a0 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 61 6c 73 6f 20 6c 6f 6f 6b 20 66 6f 72 20 63 6c 61 73 73 oloader.will.also.look.for.class
863c0 65 73 20 69 6e 20 74 68 65 20 50 48 50 20 69 6e 63 6c 75 64 65 20 70 61 74 68 2e 22 0a 20 20 20 es.in.the.PHP.include.path."....
863e0 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 20 20 .............},.................
86400 22 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 "preferred-install":.{..........
86420 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 20 20 ..........."type":."string",....
86440 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 20 ................."description":.
86460 22 54 68 65 20 69 6e 73 74 61 6c 6c 20 6d 65 74 68 6f 64 20 43 6f 6d 70 6f 73 65 72 20 77 69 6c "The.install.method.Composer.wil
86480 6c 20 70 72 65 66 65 72 20 74 6f 20 75 73 65 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 61 75 74 l.prefer.to.use,.defaults.to.aut
864a0 6f 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 6f 66 20 73 6f 75 72 63 65 2c 20 64 69 73 74 o.and.can.be.any.of.source,.dist
864c0 20 6f 72 20 61 75 74 6f 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 .or.auto.".................},...
864e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c .............."notify-on-install
86500 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":
86520 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."boolean",.....................
86540 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 61 6c 6c 6f 77 73 20 "description":."Composer.allows.
86560 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 6f 20 64 65 66 69 6e 65 20 61 20 6e 6f 74 69 66 69 63 repositories.to.define.a.notific
86580 61 74 69 6f 6e 20 55 52 4c 2c 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 67 65 74 20 6e 6f 74 69 ation.URL,.so.that.they.get.noti
865a0 66 69 65 64 20 77 68 65 6e 65 76 65 72 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 74 68 61 fied.whenever.a.package.from.tha
865c0 74 20 72 65 70 6f 73 69 74 6f 72 79 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2e 20 54 68 69 73 20 t.repository.is.installed..This.
865e0 6f 70 74 69 6f 6e 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 64 69 73 61 62 6c 65 20 74 68 61 option.allows.you.to.disable.tha
86600 74 20 62 65 68 61 76 69 6f 75 72 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 72 75 65 2e 22 0a t.behaviour,.defaults.to.true.".
86620 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 20 20 ................},..............
86640 20 20 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 ..."github-protocols":.{........
86660 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 20 20 ............."type":."array",...
86680 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":
866a0 20 22 41 20 6c 69 73 74 20 6f 66 20 70 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 75 73 65 20 66 6f 72 ."A.list.of.protocols.to.use.for
866c0 20 67 69 74 68 75 62 2e 63 6f 6d 20 63 6c 6f 6e 65 73 2c 20 69 6e 20 70 72 69 6f 72 69 74 79 20 .github.com.clones,.in.priority.
866e0 6f 72 64 65 72 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5b 5c 22 67 69 74 5c 22 2c 20 5c 22 68 order,.defaults.to.[\"git\",.\"h
86700 74 74 70 73 5c 22 2c 20 5c 22 68 74 74 70 5c 22 5d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ttps\",.\"http\"].",............
86720 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........."items":.{.............
86740 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 0a 20 20 20 ............"type":."string"....
86760 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 20 20 20 20 20 .................}..............
86780 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 6f 61 ...},................."github-oa
867a0 75 74 68 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 uth":.{....................."typ
867c0 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 20 20 e":."object",...................
867e0 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 68 61 73 68 20 6f 66 20 64 6f 6d 61 .."description":."A.hash.of.doma
86800 69 6e 20 6e 61 6d 65 20 3d 3e 20 67 69 74 68 75 62 20 41 50 49 20 6f 61 75 74 68 20 74 6f 6b 65 in.name.=>.github.API.oauth.toke
86820 6e 73 2c 20 74 79 70 69 63 61 6c 6c 79 20 7b 5c 22 67 69 74 68 75 62 2e 63 6f 6d 5c 22 3a 5c 22 ns,.typically.{\"github.com\":\"
86840 3c 74 6f 6b 65 6e 3e 5c 22 7d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 <token>\"}.",...................
86860 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 0a 20 .."additionalProperties":.true..
86880 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 ...............},...............
868a0 20 20 22 76 65 6e 64 6f 72 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."vendor-dir":.{...............
868c0 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 20 ......"type":."string",.........
868e0 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 65 20 ............"description":."The.
86900 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 location.where.all.packages.are.
86920 69 6e 73 74 61 6c 6c 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 5c installed,.defaults.to.\"vendor\
86940 22 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 ".".................},..........
86960 20 20 20 20 20 20 20 22 62 69 6e 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......."bin-dir":.{.............
86980 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 20 20 ........"type":."string",.......
869a0 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 54 68 .............."description":."Th
869c0 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 62 69 6e 61 72 69 65 73 20 61 72 e.location.where.all.binaries.ar
869e0 65 20 6c 69 6e 6b 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 2f 62 e.linked,.defaults.to.\"vendor/b
86a00 69 6e 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 20 20 20 20 20 in\".".................},.......
86a20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 .........."cache-dir":.{........
86a40 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",..
86a60 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"
86a80 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 63 61 63 68 65 73 :."The.location.where.all.caches
86aa0 20 61 72 65 20 6c 6f 63 61 74 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7e 2f 2e 63 .are.located,.defaults.to.\"~/.c
86ac0 6f 6d 70 6f 73 65 72 2f 63 61 63 68 65 5c 22 20 6f 6e 20 2a 6e 69 78 20 61 6e 64 20 5c 22 25 4c omposer/cache\".on.*nix.and.\"%L
86ae0 4f 43 41 4c 41 50 50 44 41 54 41 25 5c 5c 43 6f 6d 70 6f 73 65 72 5c 22 20 6f 6e 20 77 69 6e 64 OCALAPPDATA%\\Composer\".on.wind
86b00 6f 77 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 ows.".................},........
86b20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 22 3a 20 7b 0a 20 20 ........."cache-files-dir":.{...
86b40 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 22 73 74 72 69 6e .................."type":."strin
86b60 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 64 65 73 63 72 69 70 g",....................."descrip
86b80 74 69 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 66 69 6c 65 73 tion":."The.location.where.files
86ba0 20 28 7a 69 70 20 64 6f 77 6e 6c 6f 61 64 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 .(zip.downloads).are.cached,.def
86bc0 61 75 6c 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c 65 73 5c 22 2e aults.to.\"{$cache-dir}/files\".
86be0 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 ".................},............
86c00 20 20 20 20 20 22 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 ....."cache-repo-dir":.{........
86c20 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",..
86c40 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"
86c60 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 72 65 70 6f 20 28 67 69 74 2f :."The.location.where.repo.(git/
86c80 68 67 20 72 65 70 6f 20 63 6c 6f 6e 65 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 hg.repo.clones).are.cached,.defa
86ca0 75 6c 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 72 65 70 6f 5c 22 2e 22 0a ults.to.\"{$cache-dir}/repo\".".
86cc0 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 20 20 ................},..............
86ce0 20 20 20 22 63 61 63 68 65 2d 76 63 73 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ..."cache-vcs-dir":.{...........
86d00 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",.....
86d20 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 20 22 ................"description":."
86d40 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 76 63 73 20 69 6e 66 6f 73 20 28 67 69 The.location.where.vcs.infos.(gi
86d60 74 20 63 6c 6f 6e 65 73 2c 20 67 69 74 68 75 62 20 61 70 69 20 63 61 6c 6c 73 2c 20 65 74 63 2e t.clones,.github.api.calls,.etc.
86d80 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 76 63 73 20 72 65 70 6f 73 29 20 61 72 65 20 63 61 63 .when.reading.vcs.repos).are.cac
86da0 68 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f hed,.defaults.to.\"{$cache-dir}/
86dc0 76 63 73 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 20 20 20 20 vcs\".".................},......
86de0 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 74 74 6c 22 3a 20 7b 0a 20 20 20 20 20 20 ..........."cache-ttl":.{.......
86e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c .............."type":."integer",
86e20 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
86e40 6e 22 3a 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 63 61 63 68 65 20 74 69 6d 65 2d 74 6f 2d 6c n":."The.default.cache.time-to-l
86e60 69 76 65 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 31 35 35 35 32 30 30 30 20 28 36 20 6d 6f 6e ive,.defaults.to.15552000.(6.mon
86e80 74 68 73 29 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 ths).".................},.......
86ea0 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 22 3a 20 7b 0a 20 .........."cache-files-ttl":.{..
86ec0 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 22 69 6e 74 65 ..................."type":."inte
86ee0 67 65 72 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 ger",....................."descr
86f00 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 63 61 63 68 65 20 74 69 6d 65 2d 74 6f 2d 6c 69 76 65 iption":."The.cache.time-to-live
86f20 20 66 6f 72 20 66 69 6c 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 76 61 6c 75 .for.files,.defaults.to.the.valu
86f40 65 20 6f 66 20 63 61 63 68 65 2d 74 74 6c 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.of.cache-ttl."................
86f60 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 .},................."cache-files
86f80 2d 6d 61 78 73 69 7a 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 -maxsize":.{....................
86fa0 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 69 6e 74 65 67 65 72 22 5d 2c 0a ."type":.["string",."integer"],.
86fc0 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
86fe0 22 3a 20 22 54 68 65 20 63 61 63 68 65 20 6d 61 78 20 73 69 7a 65 20 66 6f 72 20 74 68 65 20 66 ":."The.cache.max.size.for.the.f
87000 69 6c 65 73 20 63 61 63 68 65 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 33 30 30 4d 69 42 iles.cache,.defaults.to.\"300MiB
87020 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 20 20 20 20 20 20 20 \".".................},.........
87040 20 20 20 20 20 20 20 20 22 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 22 3a 20 7b 0a 20 20 20 ........"discard-changes":.{....
87060 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 73 74 72 69 6e ................."type":.["strin
87080 67 22 2c 20 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g",."boolean"],.................
870a0 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 ...."description":."The.default.
870c0 73 74 79 6c 65 20 6f 66 20 68 61 6e 64 6c 69 6e 67 20 64 69 72 74 79 20 75 70 64 61 74 65 73 2c style.of.handling.dirty.updates,
870e0 20 64 65 66 61 75 6c 74 73 20 74 6f 20 66 61 6c 73 65 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e .defaults.to.false.and.can.be.an
87100 79 20 6f 66 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 5c 22 73 74 61 73 68 5c 22 2e 22 0a y.of.true,.false.or.\"stash\".".
87120 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 0a ................}.............}.
87140 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 65 78 74 72 61 22 3a 20 7b 0a 20 20 ........},........."extra":.{...
87160 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 2c 20 22 61 72 .........."type":.["object",."ar
87180 72 61 79 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 22 ray"],............."description"
871a0 3a 20 22 41 72 62 69 74 72 61 72 79 20 65 78 74 72 61 20 64 61 74 61 20 74 68 61 74 20 63 61 6e :."Arbitrary.extra.data.that.can
871c0 20 62 65 20 75 73 65 64 20 62 79 20 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2c 20 66 .be.used.by.custom.installers,.f
871e0 6f 72 20 65 78 61 6d 70 6c 65 2c 20 70 61 63 6b 61 67 65 20 6f 66 20 74 79 70 65 20 63 6f 6d 70 or.example,.package.of.type.comp
87200 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 20 6d 75 73 74 20 68 61 76 65 20 61 20 27 63 6c 61 73 oser-installer.must.have.a.'clas
87220 73 27 20 6b 65 79 20 64 65 66 69 6e 69 6e 67 20 74 68 65 20 69 6e 73 74 61 6c 6c 65 72 20 63 6c s'.key.defining.the.installer.cl
87240 61 73 73 20 6e 61 6d 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 ass.name.",............."additio
87260 6e 61 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 nalProperties":.true.........},.
87280 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ........"autoload":.{...........
872a0 20 20 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 .."type":."object",.............
872c0 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 68 "description":."Description.of.h
872e0 6f 77 20 74 68 65 20 70 61 63 6b 61 67 65 20 63 61 6e 20 62 65 20 61 75 74 6f 6c 6f 61 64 65 64 ow.the.package.can.be.autoloaded
87300 2e 22 2c 0a 20 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 .",............."properties":.{.
87320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 30 22 3a 20 7b 0a 20 20 20 20 20 ................"psr-0":.{......
87340 20 20 20 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",
87360 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
87380 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 73 70 61 63 65 n":."This.is.a.hash.of.namespace
873a0 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 s.(keys).and.the.directories.the
873c0 79 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e y.can.be.found.into.(values,.can
873e0 20 62 65 20 61 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 62 79 20 74 68 65 20 61 75 74 6f .be.arrays.of.paths).by.the.auto
87400 6c 6f 61 64 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 61 loader.",....................."a
87420 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 20 20 20 dditionalProperties":.true......
87440 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 63 ...........},................."c
87460 6c 61 73 73 6d 61 70 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 lassmap":.{.....................
87480 22 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 20 20 20 "type":."array",................
874a0 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 69 73 20 61 6e 20 ....."description":."This.is.an.
874c0 61 72 72 61 79 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 array.of.directories.that.contai
874e0 6e 20 63 6c 61 73 73 65 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 n.classes.to.be.included.in.the.
87500 63 6c 61 73 73 2d 6d 61 70 20 67 65 6e 65 72 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 2e 22 0a 20 class-map.generation.process."..
87520 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 ...............},...............
87540 20 20 22 66 69 6c 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."files":.{....................
87560 20 22 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 20 20 ."type":."array",...............
87580 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 69 73 20 61 6e ......"description":."This.is.an
875a0 20 61 72 72 61 79 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 20 61 6c 77 61 79 73 20 .array.of.files.that.are.always.
875c0 72 65 71 75 69 72 65 64 20 6f 6e 20 65 76 65 72 79 20 72 65 71 75 65 73 74 2e 22 0a 20 20 20 20 required.on.every.request.".....
875e0 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 0a 20 20 20 20 ............}.............}.....
87600 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 72 63 68 69 76 65 22 3a 20 7b 0a 20 20 20 20 ....},........."archive":.{.....
87620 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 ........"type":.["object"],.....
87640 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 70 74 69 6f 6e 73 20 ........"description":."Options.
87660 66 6f 72 20 63 72 65 61 74 69 6e 67 20 70 61 63 6b 61 67 65 20 61 72 63 68 69 76 65 73 20 66 6f for.creating.package.archives.fo
87680 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 r.distribution.",............."p
876a0 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
876c0 78 63 6c 75 64 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 xclude":.{....................."
876e0 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 20 20 20 20 type":."array",.................
87700 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 61 ...."description":."A.list.of.pa
87720 74 74 65 72 6e 73 20 66 6f 72 20 70 61 74 68 73 20 74 6f 20 65 78 63 6c 75 64 65 20 6f 72 20 69 tterns.for.paths.to.exclude.or.i
87740 6e 63 6c 75 64 65 20 69 66 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 61 6e 20 65 78 63 6c 61 nclude.if.prefixed.with.an.excla
87760 6d 61 74 69 6f 6e 20 6d 61 72 6b 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a mation.mark.".................}.
87780 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 ............}.........},........
877a0 20 22 72 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 ."repositories":.{............."
877c0 74 79 70 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 type":.["object",."array"],.....
877e0 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 20 73 65 74 20 6f 66 ........"description":."A.set.of
87800 20 61 64 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 .additional.repositories.where.p
87820 61 63 6b 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 ackages.can.be.found.",.........
87840 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
87860 0a 20 20 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 .........},........."minimum-sta
87880 62 69 6c 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 bility":.{............."type":.[
878a0 22 73 74 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 "string"],............."descript
878c0 69 6f 6e 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 ion":."The.minimum.stability.the
878e0 20 70 61 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 .packages.must.have.to.be.instal
87900 6c 2d 61 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 l-able..Possible.values.are:.dev
87920 2c 20 61 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 ,.alpha,.beta,.RC,.stable.".....
87940 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 65 66 65 72 2d 73 74 61 62 6c 65 22 3a 20 ....},........."prefer-stable":.
87960 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 62 6f 6f 6c 65 61 6e 22 {............."type":.["boolean"
87980 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 49 ],............."description":."I
879a0 66 20 73 65 74 20 74 6f 20 74 72 75 65 2c 20 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 77 f.set.to.true,.stable.packages.w
879c0 69 6c 6c 20 62 65 20 70 72 65 66 65 72 65 64 20 74 6f 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 ill.be.prefered.to.dev.packages.
879e0 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 65 76 65 6e 20 69 66 20 74 68 65 20 6d 69 6e 69 6d when.possible,.even.if.the.minim
87a00 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 61 6c 6c 6f 77 73 20 75 6e 73 74 61 62 6c 65 20 70 61 63 um-stability.allows.unstable.pac
87a20 6b 61 67 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 62 69 6e 22 kages.".........},........."bin"
87a40 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 61 72 72 61 79 22 :.{............."type":.["array"
87a60 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 41 ],............."description":."A
87a80 20 73 65 74 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 .set.of.files.that.should.be.tre
87aa0 61 74 65 64 20 61 73 20 62 69 6e 61 72 69 65 73 20 61 6e 64 20 73 79 6d 6c 69 6e 6b 65 64 20 69 ated.as.binaries.and.symlinked.i
87ac0 6e 74 6f 20 62 69 6e 2d 64 69 72 20 28 66 72 6f 6d 20 63 6f 6e 66 69 67 29 2e 22 2c 0a 20 20 20 nto.bin-dir.(from.config).",....
87ae0 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........."items":.{.............
87b00 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 20 20 20 20 20 ...."type":."string"............
87b20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 69 6e 63 6c 75 64 65 2d 70 .}.........},........."include-p
87b40 61 74 68 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 61 72 ath":.{............."type":.["ar
87b60 72 61 79 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 22 ray"],............."description"
87b80 3a 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 41 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f :."DEPRECATED:.A.list.of.directo
87ba0 72 69 65 73 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 67 65 74 20 61 64 64 65 64 20 74 6f 20 50 ries.which.should.get.added.to.P
87bc0 48 50 27 73 20 69 6e 63 6c 75 64 65 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 HP's.include.path..This.is.only.
87be0 70 72 65 73 65 6e 74 20 74 6f 20 73 75 70 70 6f 72 74 20 6c 65 67 61 63 79 20 70 72 6f 6a 65 63 present.to.support.legacy.projec
87c00 74 73 2c 20 61 6e 64 20 61 6c 6c 20 6e 65 77 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 70 72 65 66 ts,.and.all.new.code.should.pref
87c20 65 72 61 62 6c 79 20 75 73 65 20 61 75 74 6f 6c 6f 61 64 69 6e 67 2e 22 2c 0a 20 20 20 20 20 20 erably.use.autoloading.",.......
87c40 20 20 20 20 20 20 22 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 ......"items":.{................
87c60 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ."type":."string".............}.
87c80 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 63 72 69 70 74 73 22 3a 20 7b 0a ........},........."scripts":.{.
87ca0 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a ............"type":.["object"],.
87cc0 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 53 63 72 69 ............"description":."Scri
87ce0 70 74 73 20 6c 69 73 74 65 6e 65 72 73 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 pts.listeners.that.will.be.execu
87d00 74 65 64 20 62 65 66 6f 72 65 2f 61 66 74 65 72 20 73 6f 6d 65 20 65 76 65 6e 74 73 2e 22 2c 0a ted.before/after.some.events.",.
87d20 20 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 ............"properties":.{.....
87d40 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b ............"pre-install-cmd":.{
87d60 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 22 61 ....................."type":.["a
87d80 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 20 20 rray",."string"],...............
87da0 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 62 65 66 ......"description":."Occurs.bef
87dc0 6f 72 65 20 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 ore.the.install.command.is.execu
87de0 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:
87e00 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 :method.callables.or.shell.comma
87e20 6e 64 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 nds.".................},........
87e40 20 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 ........."post-install-cmd":.{..
87e60 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 22 61 72 72 ..................."type":.["arr
87e80 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 20 20 20 20 ay",."string"],.................
87ea0 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 66 74 65 72 ...."description":."Occurs.after
87ec0 20 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 .the.install.command.is.executed
87ee0 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
87f00 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 thod.callables.or.shell.commands
87f20 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 20 .".................},...........
87f40 20 20 20 20 20 20 22 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 ......"pre-update-cmd":.{.......
87f60 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 79 22 2c 20 .............."type":.["array",.
87f80 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 20 20 20 22 "string"],....................."
87fa0 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 20 74 68 65 description":."Occurs.before.the
87fc0 20 75 70 64 61 74 65 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 .update.command.is.executed,.con
87fe0 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 64 20 tains.one.or.more.Class::method.
88000 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 callables.or.shell.commands."...
88020 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 20 ..............},................
88040 20 22 70 6f 73 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 ."post-update-cmd":.{...........
88060 20 20 20 20 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 .........."type":.["array",."str
88080 69 6e 67 22 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 ing"],....................."desc
880a0 72 69 70 74 69 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 ription":."Occurs.after.the.upda
880c0 74 65 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 te.command.is.executed,.contains
880e0 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 61 .one.or.more.Class::method.calla
88100 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 bles.or.shell.commands."........
88120 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 72 65 .........},................."pre
88140 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 -package-install":.{............
88160 20 20 20 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 ........."type":.["array",."stri
88180 6e 67 22 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 ng"],....................."descr
881a0 69 70 74 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 iption":."Occurs.before.a.packag
881c0 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 e.is.installed,.contains.one.or.
881e0 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 20 6f 72 20 more.Class::method.callables.or.
88200 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 shell.commands."................
88220 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
88240 65 2d 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 20 20 20 20 e-install":.{...................
88260 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 2c 0a 20 .."type":.["array",."string"],..
88280 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"
882a0 3a 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 69 6e 73 :."Occurs.after.a.package.is.ins
882c0 74 61 6c 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 talled,.contains.one.or.more.Cla
882e0 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f ss::method.callables.or.shell.co
88300 6d 6d 61 6e 64 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 mmands.".................},.....
88320 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 64 61 74 65 22 ............"pre-package-update"
88340 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 20 :.{....................."type":.
88360 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 20 ["array",."string"],............
88380 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 20 ........."description":."Occurs.
883a0 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 2c 20 63 6f 6e before.a.package.is.updated,.con
883c0 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 64 20 tains.one.or.more.Class::method.
883e0 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 callables.or.shell.commands."...
88400 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 20 ..............},................
88420 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 ."post-package-update":.{.......
88440 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 79 22 2c 20 .............."type":.["array",.
88460 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 20 20 20 22 "string"],....................."
88480 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 61 20 70 61 description":."Occurs.after.a.pa
884a0 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f ckage.is.updated,.contains.one.o
884c0 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 20 6f r.more.Class::method.callables.o
884e0 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 r.shell.commands."..............
88500 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 61 ...},................."pre-packa
88520 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 20 ge-uninstall":.{................
88540 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"]
88560 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
88580 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 61 on":."Occurs.before.a.package.ha
885a0 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 65 s.been.uninstalled,.contains.one
885c0 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 73 .or.more.Class::method.callables
885e0 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 .or.shell.commands."............
88600 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 74 2d 70 61 .....},................."post-pa
88620 63 6b 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 ckage-uninstall":.{.............
88640 20 20 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 ........"type":.["array",."strin
88660 67 22 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 g"],....................."descri
88680 70 74 69 6f 6e 22 3a 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 ption":."Occurs.after.a.package.
886a0 68 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 has.been.uninstalled,.contains.o
886c0 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
886e0 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 es.or.shell.commands."..........
88700 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 74 2d .......},................."post-
88720 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 autoload-dump":.{...............
88740 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"
88760 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
88780 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 74 68 65 20 61 75 74 6f 6c 6f ion":."Occurs.after.a.the.autolo
887a0 61 64 65 72 20 69 73 20 64 75 6d 70 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 ader.is.dumped,.contains.one.or.
887c0 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 20 6f 72 20 more.Class::method.callables.or.
887e0 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 shell.commands."................
88800 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 20 20 20 .}.............}.........},.....
88820 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 22 74 79 ...."support":.{............."ty
88840 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 72 6f 70 pe":."object",............."prop
88860 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 6d 61 69 erties":.{................."emai
88880 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 70 65 22 l":.{....................."type"
888a0 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 20 20 20 :."string",.....................
888c0 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 20 66 6f "description":."Email.address.fo
888e0 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 20 20 20 r.support.",....................
88900 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 20 20 20 ."format":."email"..............
88920 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 22 3a 20 ...},................."issues":.
88940 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 22 73 {....................."type":."s
88960 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 64 65 73 tring",....................."des
88980 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 54 72 61 cription":."URL.to.the.Issue.Tra
889a0 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 66 6f 72 cker.",....................."for
889c0 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 20 mat":."uri".................},..
889e0 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 20 20 20 ..............."forum":.{.......
88a00 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",.
88a20 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
88a40 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 20 20 20 ":."URL.to.the.Forum.",.........
88a60 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 20 20 20 ............"format":."uri".....
88a80 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 20 20 22 ............},................."
88aa0 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 22 74 79 wiki":.{....................."ty
88ac0 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",..................
88ae0 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 20 57 69 ..."description":."URL.to.the.Wi
88b00 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 72 6d 61 ki.",....................."forma
88b20 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 20 20 20 t":."uri".................},....
88b40 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 20 20 20 ............."irc":.{...........
88b60 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",.....
88b80 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 20 22 ................"description":."
88ba0 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 72 63 3a IRC.channel.for.support,.as.irc:
88bc0 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 20 20 20 //server/channel.",.............
88be0 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 20 20 20 ........"format":."uri".........
88c00 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 6f 75 72 ........},................."sour
88c20 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 79 70 65 ce":.{....................."type
88c40 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 20 20 ":."string",....................
88c60 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 65 20 6f ."description":."URL.to.browse.o
88c80 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 20 20 20 r.download.the.sources.",.......
88ca0 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 20 .............."format":."uri"...
88cc0 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 0a 20 20 ..............}.............}...
88ce0 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 ff 00 00 ......}.....}.}.MZ..............
88d00 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 00 00 00 ........@.......................
88d20 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 21 54 68 ........................!..L.!Th
88d40 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 4f 53 20 is.program.cannot.be.run.in.DOS.
88d60 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 a7 42 9e mode....$.........,.;.B.;.B.;.B.
88d80 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 a7 42 9e 2...:.B.2...-.B.2...9.B.2...?.B.
88da0 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 a7 42 9e .a9.8.B.;.C...B.2...:.B.2...:.B.
88dc0 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 01 05 00 2...:.B.Rich;.B.........PE..L...
88de0 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 00 00 00 .MoO............................
88e00 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 00 00 00 8.............@.................
88e20 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 10 00 00 .........`......?.....@.........
88e40 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 00 00 00 ........................."..P...
88e60 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 01 00 00 .@.......................P..p...
88e80 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 00 00 00 .!..............................
88ea0 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 00 00 00 8!..@...........................
88ec0 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 10 00 00 .................text...........
88ee0 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 61 00 00 .......................`.rdata..
88f00 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 00 00 40 ............................@..@
88f20 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 00 00 00 .data........0..................
88f40 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 1a 00 00 ....@....rsrc........@..........
88f60 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 50 00 00 ............@..@.reloc.......P..
88f80 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 00 00 00 ....."..............@..B........
88fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
890a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
890c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
890e0 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 f6 ff 15 ................j$...@..x...j...
89100 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 ff 15 04 ..@..e.....E.PV....@..E....PV...
89120 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 20 40 00 .@..M...X.@..e...E.P.5H.@...L.@.
89140 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 15 50 20 YY.5\.@..E.P.5`.@...D.@.YY....P.
89160 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 75 02 f3 @..M...M...T.@.3..H....;..0@.u..
89180 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 35 68 33 ......h..@.......l3@...$40@..5h3
891a0 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 c4 14 a3 @..40@.h$0@.h(0@.h.0@.....@.....
891c0 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 33 db 89 00@...}.j......Y.j.h."@......3..
891e0 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 c3 74 19 ].d......p..]...3@.SVW..0.@.;.t.
89200 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 7c 33 40 ;.u.3.F.u...h......4.@...3.F.|3@
89220 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 00 68 f0 .;.u.j..\...Y.;.|3@...u,.5|3@.h.
89240 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 00 00 e9 .@.h..@......YY..t..E...........
89260 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 e8 6c 05 .....5<0@..|3@.;.u.h..@.h..@..l.
89280 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 8c 33 40 ..YY..|3@.....9].u.SW..8.@.9..3@
892a0 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 24 30 40 .t.h.3@......Y..t.Sj.S...3@..$0@
892c0 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 fe ff ff .....@....5$0@..5(0@..5.0@......
892e0 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 09 89 4d ....80@.9.,0@.u7P....@..E......M
89300 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 00 75 07 .PQ.....YY..e..E..80@.3.9.,0@.u.
89320 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 38 30 40 P..h.@.9.<0@.u.....@..E......80@
89340 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 00 8d 80 ........MZ..f9...@.t.3..M.<.@...
89360 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 00 75 d5 ..@..8PE..u...H.......t.......u.
89380 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 e8 00 00 .......v.3.9........xt.v.3.9....
893a0 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 a3 84 33 ......j..,0@...p.@.j...l.@.YY..3
893c0 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 70 33 40 @...3@.....@...t3@.......@...p3@
893e0 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 40 00 00 ......@....x3@..V.........=.0@..
89400 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 ff ff 15 u.h..@.....@.Y.g....=.0@..u.j...
89420 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 a3 48 31 ..@.Y3...{..........U....(....H1
89440 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 31 40 00 @...D1@...@1@...<1@..581@..=41@.
89460 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 8c 25 28 f..`1@.f..T1@.f..01@.f..,1@.f.%(
89480 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 50 31 40 1@.f.-$1@....X1@..E..L1@..E..P1@
894a0 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 00 a3 4c ..E..\1@..........0@......P1@..L
894c0 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 85 d8 fc 0@...@0@.......D0@.......0@.....
894e0 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 00 00 59 ....0@...........@...0@.j..?...Y
89500 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 01 e8 1b j.....@.h.!@...$.@..=.0@..u.j...
89520 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 8b 45 08 ...Yh......(.@.P..,.@.....U...E.
89540 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 93 19 74 ...8csm.u*.x..u$.@.=....t.=!...t
89560 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 40 00 ff .="...t.=.@..u......3.]...hH.@..
89580 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 33 40 00 ...@.3...%..@.j.h("@..b....5.3@.
895a0 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 6a 08 e8 .5..@...Y.E....u..u.....@.Y.gj..
895c0 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 59 89 45 ....Y.e...5.3@....E..5.3@...YY.E
895e0 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 dc ff 75 ..E.P.E.P.u..5l.@...YP.U....E..u
89600 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 09 00 00 .....3@..u........3@..E.........
89620 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 ff ff ff ..E.......j......Y...U...u..N...
89640 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 0f 8b 07 ......YH]...V..!@...!@.W..;.s...
89660 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 57 8b f8 ..t......;.r._^...V.."@..."@.W..
89680 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 cc cc cc ;.s.....t......;.r._^..%..@.....
896a0 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 50 45 00 ..U...M..MZ..f9.t.3.]..A<...8PE.
896c0 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 cc cc cc .u.3......f9H......]............
896e0 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 18 85 f6 ..U...E..H<....A.SV..q.3.W.D....
89700 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 33 c0 5f v..}..H.;.r..X...;.r.B..(;.r.3._
89720 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 65 17 40 ^[]...............U..j.hH"@.he.@
89740 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 a3 00 00 .d.....P...SVW..0@.1E.3.P.E.d...
89760 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 8b 45 08 ...e..E.....h..@..*........tU.E.
89780 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 f7 d0 83 -..@.Ph..@..P........t;.@$......
897a0 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 ec 8b 08 ...E......M.d......Y_^[..]..E...
897c0 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 f0 64 89 ..3.=...........e..E.....3..M.d.
897e0 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 65 17 40 .....Y_^[..]...%..@..%..@...he.@
89800 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 00 31 45 .d.5.....D$..l$..l$.+.SVW..0@.1E
89820 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 00 00 00 .3.P.e..u..E..E......E..E.d.....
89840 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 ff 75 10 ..M.d......Y__^[..]Q...U...u..u.
89860 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 68 00 00 .u..u.h..@.h.0@.........]...Vh..
89880 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 00 00 00 ..h....3.V..........t.VVVVV.....
898a0 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 53 57 bf ...^.3....U.......0@..e...e..SW.
898c0 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 f8 50 ff N.@......;.t...t.....0@..`V.E.P.
898e0 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 14 20 40 .<.@..u.3u.....@.3.....@.3.....@
89900 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 bb eb 0b .3..E.P....@..E.3E.3.;.u..O.@...
89920 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 c3 ff 25 ..u.........5.0@....5.0@.^_[...%
89940 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 25 90 20 t.@..%x.@..%|.@..%..@..%..@..%..
89960 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 44 24 0c @..%..@..%..@..%..@.Pd.5.....D$.
89980 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 ff ff ff +d$.SVW.(....0@.3.P.E..u..E.....
899a0 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 c3 8b 4d .E.d.......M.d......Y__^[..]Q..M
899c0 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 8b 4a cc .3............M..%T.@..T$..B..J.
899e0 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 00 00 00 3.......J.3.......l"@..s........
89a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89ae0 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 29 00 00 .................#...#...#...)..
89b00 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 28 00 00 r)..b)..H)..4)...)...(...(...(..
89b20 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 25 00 00 .(...(...(...).......#...$...%..
89b40 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 27 00 00 .%...&..d&...&...$......('...'..
89b60 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 28 00 00 .'...'...'...(..((..6(...'..H(..
89b80 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 27 00 00 Z(..t(...(...'...'...'...'...'..
89ba0 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 27 00 00 l'..^'..R'..F'..>'..>(..0'...'..
89bc0 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 14 40 00 .)............@.........W.@...@.
89be0 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 00 00 00 .....................MoO........
89c00 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 61 74 69 l....!......@0@..0@.bad.allocati
89c20 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 00 00 00 on......H.......................
89c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89c60 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 21 f6 cc .....0@..!@.....RSDS.......J.!..
89c80 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 74 73 5c .LZ.....c:\users\seld\documents\
89ca0 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 69 64 64 visual.studio.2010\Projects\hidd
89cc0 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 00 00 00 eninp\Release\hiddeninp.pdb.....
89ce0 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 00 00 00 e...............................
89d00 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 00 00 00 ..............@...@.............
89d20 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 00 00 00 ................:.@.............
89d40 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 05 93 19 ..............@...@.......@."...
89d60 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 00 00 00 ....d"@.........................
89d80 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 00 00 00 ."...........#......$#..........
89da0 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 00 00 00 .&..D...H#...........(..h.......
89dc0 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 29 00 00 .................#...#...#...)..
89de0 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 28 00 00 r)..b)..H)..4)...)...(...(...(..
89e00 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 25 00 00 .(...(...(...).......#...$...%..
89e20 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 27 00 00 .%...&..d&...&...$......('...'..
89e40 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 28 00 00 .'...'...'...(..((..6(...'..H(..
89e60 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 27 00 00 Z(..t(...(...'...'...'...'...'..
89e80 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 27 00 00 l'..^'..R'..F'..>'..>(..0'...'..
89ea0 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 65 74 43 .)........GetConsoleMode....SetC
89ec0 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 45 52 4e onsoleMode..;.GetStdHandle..KERN
89ee0 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 69 74 73 EL32.dll....??$?6DU?$char_traits
89f00 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 40 40 59 @D@std@@V?$allocator@D@1@@std@@Y
89f20 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 74 72 61 AAAV?$basic_ostream@DU?$char_tra
89f40 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 63 5f 73 its@D@std@@@0@AAV10@ABV?$basic_s
89f60 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 56 3f 24 tring@DU?$char_traits@D@std@@V?$
89f80 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 74 64 40 allocator@D@2@@0@@Z...?cout@std@
89fa0 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 72 61 69 @3V?$basic_ostream@DU?$char_trai
89fc0 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 56 3f 24 ts@D@std@@@1@A..J.?cin@std@@3V?$
89fe0 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 40 44 40 basic_istream@DU?$char_traits@D@
8a000 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 61 72 5f std@@@1@A...??$getline@DU?$char_
8a020 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 32 40 40 traits@D@std@@V?$allocator@D@2@@
8a040 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 24 63 68 std@@YAAAV?$basic_istream@DU?$ch
8a060 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 3f 24 62 ar_traits@D@std@@@0@AAV10@AAV?$b
8a080 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 40 73 74 asic_string@DU?$char_traits@D@st
8a0a0 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 3f 36 3f d@@V?$allocator@D@2@@0@@Z...??6?
8a0c0 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 73 40 44 $basic_ostream@DU?$char_traits@D
8a0e0 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 40 41 41 @std@@@std@@QAEAAV01@P6AAAV01@AA
8a100 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 40 44 55 V01@@Z@Z.._.??1?$basic_string@DU
8a120 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 61 74 6f ?$char_traits@D@std@@V?$allocato
8a140 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 73 69 63 r@D@2@@std@@QAE@XZ..{.??0?$basic
8a160 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 56 _string@DU?$char_traits@D@std@@V
8a180 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 00 b3 07 ?$allocator@D@2@@std@@QAE@XZ....
8a1a0 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 61 6d 40 ?endl@std@@YAAAV?$basic_ostream@
8a1c0 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 32 31 40 DU?$char_traits@D@std@@@1@AAV21@
8a1e0 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 00 9f 00 @Z..MSVCP90.dll..._amsg_exit....
8a200 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 69 74 00 __getmainargs.,._cexit..|._exit.
8a220 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 74 65 6e f._XcptFilter...exit....__initen
8a240 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 01 5f 63 v..._initterm..._initterm_e.<._c
8a260 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 6d 61 74 onfigthreadlocale...__setusermat
8a280 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 63 6f 6d herr...._adjust_fdiv....__p__com
8a2a0 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 5f 70 6f mode....__p__fmode..j._encode_po
8a2c0 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 74 5f 64 inter...__set_app_type..K._crt_d
8a2e0 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 41 58 58 ebugger_hook..C.?terminate@@YAXX
8a300 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 6c 6c 6f Z.MSVCR90.dll..._unlock...__dllo
8a320 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 63 6f 64 nexit.v._lock..._onexit.`._decod
8a340 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 63 6f 6d e_pointer.s._except_handler4_com
8a360 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 72 6f 6c mon..._invoke_watson..?._control
8a380 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 04 53 6c fp_s....InterlockedExchange.!.Sl
8a3a0 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 6e 67 65 eep...InterlockedCompareExchange
8a3c0 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 72 72 65 ..-.TerminateProcess....GetCurre
8a3e0 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 6e 46 69 ntProcess.>.UnhandledExceptionFi
8a400 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 46 69 6c lter....SetUnhandledExceptionFil
8a420 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 72 79 50 ter...IsDebuggerPresent.T.QueryP
8a440 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 75 6e 74 erformanceCounter.f.GetTickCount
8a460 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 43 75 72 ....GetCurrentThreadId....GetCur
8a480 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 41 73 46 rentProcessId.O.GetSystemTimeAsF
8a4a0 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 00 00 00 ileTime.s.__CxxFrameHandler3....
8a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a4e0 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 ff ff ff ................N.@....D........
8a500 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 00 00 00 ........$!@.....................
8a520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a6e0 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 00 02 00 ................................
8a700 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 00 01 00 ............8...................
8a720 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 00 00 80 ....P.......................h...
8a740 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 00 00 00 ................................
8a760 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 00 00 00 .................@..(...........
8a780 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 00 45 00 .C..V...........(.4...V.S._.V.E.
8a7a0 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 00 01 00 R.S.I.O.N._.I.N.F.O.............
8a7c0 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 00 00 00 ................................
8a7e0 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 00 46 00 ..................S.t.r.i.n.g.F.
8a800 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 00 30 00 i.l.e.I.n.f.o...b.....0.4.0.9.0.
8a820 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 00 72 00 4.b.0.....Q...F.i.l.e.D.e.s.c.r.
8a840 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 00 72 00 i.p.t.i.o.n.....R.e.a.d.s...f.r.
8a860 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 00 74 00 o.m...s.t.d.i.n...w.i.t.h.o.u.t.
8a880 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 00 6f 00 ..l.e.a.k.i.n.g...i.n.f.o...t.o.
8a8a0 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 00 6e 00 ..t.h.e...t.e.r.m.i.n.a.l...a.n.
8a8c0 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 00 74 00 d...o.u.t.p.u.t.s...b.a.c.k...t.
8a8e0 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 00 6c 00 o...s.t.d.o.u.t.....6.....F.i.l.
8a900 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 00 20 00 e.V.e.r.s.i.o.n.....1.,...0.,...
8a920 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 00 61 00 0.,...0.....8.....I.n.t.e.r.n.a.
8a940 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 00 75 00 l.N.a.m.e...h.i.d.d.e.n.i.n.p.u.
8a960 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 00 69 00 t...P.....L.e.g.a.l.C.o.p.y.r.i.
8a980 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 00 61 00 g.h.t...J.o.r.d.i...B.o.g.g.i.a.
8a9a0 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 00 69 00 n.o...-...2.0.1.2...H.....O.r.i.
8a9c0 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 00 69 00 g.i.n.a.l.F.i.l.e.n.a.m.e...h.i.
8a9e0 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 00 0d 00 d.d.e.n.i.n.p.u.t...e.x.e...:...
8aa00 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 00 69 00 ..P.r.o.d.u.c.t.N.a.m.e.....H.i.
8aa20 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 00 50 00 d.d.e.n...I.n.p.u.t.....:.....P.
8aa40 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 00 2c 00 r.o.d.u.c.t.V.e.r.s.i.o.n...1.,.
8aa60 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 00 72 00 ..0.,...0.,...0.....D.....V.a.r.
8aa80 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 00 61 00 F.i.l.e.I.n.f.o.....$.....T.r.a.
8aaa0 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 6d 62 6c n.s.l.a.t.i.o.n.........<assembl
8aac0 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 74 2d 63 y.xmlns="urn:schemas-microsoft-c
8aae0 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 2e 30 22 om:asm.v1".manifestVersion="1.0"
8ab00 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 68 65 6d >....<trustInfo.xmlns="urn:schem
8ab20 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 20 20 3c as-microsoft-com:asm.v3">......<
8ab40 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 69 76 69 security>........<requestedPrivi
8ab60 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 63 75 74 leges>..........<requestedExecut
8ab80 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 41 63 63 ionLevel.level="asInvoker".uiAcc
8aba0 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 69 6f 6e ess="false"></requestedExecution
8abc0 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 69 6c 65 Level>........</requestedPrivile
8abe0 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 75 73 74 ges>......</security>....</trust
8ac00 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 65 70 65 Info>....<dependency>......<depe
8ac20 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 6c 79 49 ndentAssembly>........<assemblyI
8ac40 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 63 72 6f dentity.type="win32".name="Micro
8ac60 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 31 30 32 soft.VC90.CRT".version="9.0.2102
8ac80 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 38 36 22 2.8".processorArchitecture="x86"
8aca0 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 38 65 33 .publicKeyToken="1fc8b3b9a1e18e3
8acc0 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 2f 64 65 b"></assemblyIdentity>......</de
8ace0 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 6e 63 79 pendentAssembly>....</dependency
8ad00 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 49 4e 47 >..</assembly>PAPADDINGXXPADDING
8ad20 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ad40 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ad60 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ad80 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ada0 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8adc0 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ade0 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ae00 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ae20 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ae40 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ae60 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8ae80 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8aea0 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8aec0 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 49 4e 47 PADDINGXXPADDINGPADDINGXXPADDING
8aee0 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 30 2f 30 PADDINGXXPADDING....@....0.0!0/0
8af00 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 30 bd 30 80F0L0T0^0d0n0{0.0.0.0.0.0.0.0.0
8af20 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 31 89 31 .0.0.0.0.0.1#1-1@1J1O1T1v1{1.1.1
8af40 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 32 33 32 .1.1.1.1.1.1.1.1.1.1.1.1.2"2*232
8af60 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 32 f4 32 92A2M2_2j2p2.2.2.2.2.2.2.2.2.2.2
8af80 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 33 88 33 .2.3.3.3%303N3T3Z3`3f3l3s3z3.3.3
8afa0 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 34 14 34 .3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.4
8afc0 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 34 14 35 .4.4%4;4B4.4.4.4.4.4.4.4.4.4.4.5
8afe0 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 37 2a 37 !5^5c5.5.5.5H6M6_6}6.6.6.7.7.7*7
8b000 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 38 68 38 w7|7.7.7.7.7.8.8.8=8E8P8V8\8b8h8
8b020 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 30 1c 31 n8t8z8.8.8.8.9......$....0.0.0.1
8b040 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 30 00 00 .1t1x1.2.2@2\2`2h2t2.0.......0..
8b060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b0e0 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 0a 0a 0a ................<?php...........
8b100 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 63 namespace.Symfony\Component\Proc
8b120 65 73 73 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 72 6f 63 ess;..use.Symfony\Component\Proc
8b140 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a ess\Exception\RuntimeException;.
8b160 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 50 72 6f 63 65 73 73 20 65 78 74 ............class.PhpProcess.ext
8b180 65 6e 64 73 20 50 72 6f 63 65 73 73 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 78 65 63 75 74 61 62 ends.Process.{.private.$executab
8b1a0 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e leFinder;.............public.fun
8b1c0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 63 72 69 70 74 2c 20 24 63 77 64 20 ction.__construct($script,.$cwd.
8b1e0 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 6e 76 20 3d 20 61 72 72 61 79 28 29 2c 20 24 74 =.null,.array.$env.=.array(),.$t
8b200 69 6d 65 6f 75 74 20 3d 20 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 imeout.=.60,.array.$options.=.ar
8b220 72 61 79 28 29 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 6e 75 6c ray()).{.parent::__construct(nul
8b240 6c 2c 20 24 63 77 64 2c 20 24 65 6e 76 2c 20 24 73 63 72 69 70 74 2c 20 24 74 69 6d 65 6f 75 74 l,.$cwd,.$env,.$script,.$timeout
8b260 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 ,.$options);..$this->executableF
8b280 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 46 69 6e 64 65 72 28 inder.=.new.PhpExecutableFinder(
8b2a0 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 73 65 74 50 68 );.}.......public.function.setPh
8b2c0 70 42 69 6e 61 72 79 28 24 70 68 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e pBinary($php).{.$this->setComman
8b2e0 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 dLine($php);.}.....public.functi
8b300 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 on.start($callback.=.null).{.if.
8b320 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 (null.===.$this->getCommandLine(
8b340 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 68 70 20 3d 20 24 74 68 69 73 2d )).{.if.(false.===.$php.=.$this-
8b360 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 29 20 7b 0a 74 68 72 >executableFinder->find()).{.thr
8b380 6f 77 20 6e 65 77 20 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 ow.new.RuntimeException('Unable.
8b3a0 74 6f 20 66 69 6e 64 20 74 68 65 20 50 48 50 20 65 78 65 63 75 74 61 62 6c 65 2e 27 29 3b 0a 7d to.find.the.PHP.executable.');.}
8b3c0 0a 24 74 68 69 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a .$this->setCommandLine($php);.}.
8b3e0 0a 70 61 72 65 6e 74 3a 3a 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 7d 0a 3c .parent::start($callback);.}.}.<
8b400 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
8b420 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 \Component\Process;........class
8b440 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 75 66 .ExecutableFinder.{.private.$suf
8b460 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 27 2e 65 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 27 2e fixes.=.array('.exe',.'.bat',.'.
8b480 63 6d 64 27 2c 20 27 2e 63 6f 6d 27 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 cmd',.'.com');.......public.func
8b4a0 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 73 tion.setSuffixes(array.$suffixes
8b4c0 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 3b ).{.$this->suffixes.=.$suffixes;
8b4e0 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 64 64 53 75 66 66 .}.......public.function.addSuff
8b500 69 78 28 24 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 ix($suffix).{.$this->suffixes[].
8b520 3d 20 24 73 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 =.$suffix;.}...........public.fu
8b540 6e 63 74 69 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 nction.find($name,.$default.=.nu
8b560 6c 6c 2c 20 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 ll,.array.$extraDirs.=.array()).
8b580 7b 0a 69 66 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 {.if.(ini_get('open_basedir')).{
8b5a0 0a 24 73 65 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 .$searchPath.=.explode(PATH_SEPA
8b5c0 52 41 54 4f 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 RATOR,.getenv('open_basedir'));.
8b5e0 24 64 69 72 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 $dirs.=.array();.foreach.($searc
8b600 68 50 61 74 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 hPath.as.$path).{.if.(is_dir($pa
8b620 74 68 29 29 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 th)).{.$dirs[].=.$path;.}.else.{
8b640 0a 24 66 69 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 .$file.=.str_replace(dirname($pa
8b660 74 68 29 2c 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 th),.'',.$path);.if.($file.==.$n
8b680 61 6d 65 20 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 ame.&&.is_executable($path)).{.r
8b6a0 65 74 75 72 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 eturn.$path;.}.}.}.}.else.{.$dir
8b6c0 73 20 3d 20 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 s.=.array_merge(.explode(PATH_SE
8b6e0 50 41 52 41 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 PARATOR,.getenv('PATH').?:.geten
8b700 76 28 27 50 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 v('Path')),.$extraDirs.);.}..$su
8b720 66 66 69 78 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 ffixes.=.array('');.if.(defined(
8b740 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 29 20 7b 0a 'PHP_WINDOWS_VERSION_BUILD')).{.
8b760 24 70 61 74 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 $pathExt.=.getenv('PATHEXT');.$s
8b780 75 66 66 69 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 uffixes.=.$pathExt.?.explode(PAT
8b7a0 48 5f 53 45 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 H_SEPARATOR,.$pathExt).:.$this->
8b7c0 73 75 66 66 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 suffixes;.}.foreach.($suffixes.a
8b7e0 73 20 24 73 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 s.$suffix).{.foreach.($dirs.as.$
8b800 64 69 72 29 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 dir).{.if.(is_file($file.=.$dir.
8b820 44 49 52 45 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 DIRECTORY_SEPARATOR.$name.$suffi
8b840 78 29 20 26 26 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 x).&&.(defined('PHP_WINDOWS_VERS
8b860 49 4f 4e 5f 42 55 49 4c 44 27 29 20 7c 7c 20 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 66 69 ION_BUILD').||.is_executable($fi
8b880 6c 65 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 le))).{.return.$file;.}.}.}..ret
8b8a0 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.$default;.}.}.<?php.........
8b8c0 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
8b8e0 6f 63 65 73 73 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 72 ocess;..use.Symfony\Component\Pr
8b900 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 ocess\Exception\InvalidArgumentE
8b920 78 63 65 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 xception;.use.Symfony\Component\
8b940 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e Process\Exception\LogicException
8b960 3b 0a 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 ;.use.Symfony\Component\Process\
8b980 45 78 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a Exception\RuntimeException;.....
8b9a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 0a 7b 0a 63 6f 6e 73 74 20 45 52 52 20 3d .....class.Process.{.const.ERR.=
8b9c0 20 27 65 72 72 27 3b 0a 63 6f 6e 73 74 20 4f 55 54 20 3d 20 27 6f 75 74 27 3b 0a 0a 63 6f 6e 73 .'err';.const.OUT.=.'out';..cons
8b9e0 74 20 53 54 41 54 55 53 5f 52 45 41 44 59 20 3d 20 27 72 65 61 64 79 27 3b 0a 63 6f 6e 73 74 20 t.STATUS_READY.=.'ready';.const.
8ba00 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 3d 20 27 73 74 61 72 74 65 64 27 3b 0a 63 6f 6e 73 STATUS_STARTED.=.'started';.cons
8ba20 74 20 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 20 3d 20 27 74 65 72 6d 69 6e 61 74 65 t.STATUS_TERMINATED.=.'terminate
8ba40 64 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 44 49 4e 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 44 4f d';..const.STDIN.=.0;.const.STDO
8ba60 55 54 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 44 45 52 52 20 3d 20 32 3b 0a 0a 0a 20 63 6f 6e UT.=.1;.const.STDERR.=.2;....con
8ba80 73 74 20 54 49 4d 45 4f 55 54 5f 50 52 45 43 49 53 49 4f 4e 20 3d 20 30 2e 32 3b 0a 0a 70 72 69 st.TIMEOUT_PRECISION.=.0.2;..pri
8baa0 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 3b vate.$commandline;.private.$cwd;
8bac0 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 74 64 69 6e 3b 0a 70 .private.$env;.private.$stdin;.p
8bae0 72 69 76 61 74 65 20 24 73 74 61 72 74 74 69 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 rivate.$starttime;.private.$time
8bb00 6f 75 74 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 out;.private.$options;.private.$
8bb20 65 78 69 74 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 exitcode;.private.$fallbackExitc
8bb40 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 6f 6e ode;.private.$processInformation
8bb60 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 64 65 ;.private.$stdout;.private.$stde
8bb80 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 70 61 rr;.private.$enhanceWindowsCompa
8bba0 74 69 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 68 61 6e 63 65 53 69 67 63 68 69 tibility;.private.$enhanceSigchi
8bbc0 6c 64 43 6f 6d 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 ldCompatibility;.private.$pipes;
8bbe0 0a 70 72 69 76 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 .private.$process;.private.$stat
8bc00 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 70 72 69 76 61 74 65 us.=.self::STATUS_READY;.private
8bc20 20 24 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 3b 0a 70 72 69 76 61 .$incrementalOutputOffset;.priva
8bc40 74 65 20 24 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 te.$incrementalErrorOutputOffset
8bc60 3b 0a 70 72 69 76 61 74 65 20 24 74 74 79 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 48 61 ;.private.$tty;..private.$fileHa
8bc80 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 70 72 69 76 ndles;.private.$readBytes;..priv
8bca0 61 74 65 20 73 74 61 74 69 63 20 24 73 69 67 63 68 69 6c 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ate.static.$sigchild;.........pu
8bcc0 62 6c 69 63 20 73 74 61 74 69 63 20 24 65 78 69 74 43 6f 64 65 73 20 3d 20 61 72 72 61 79 28 0a blic.static.$exitCodes.=.array(.
8bce0 30 20 3d 3e 20 27 4f 4b 27 2c 0a 31 20 3d 3e 20 27 47 65 6e 65 72 61 6c 20 65 72 72 6f 72 27 2c 0.=>.'OK',.1.=>.'General.error',
8bd00 0a 32 20 3d 3e 20 27 4d 69 73 75 73 65 20 6f 66 20 73 68 65 6c 6c 20 62 75 69 6c 74 69 6e 73 27 .2.=>.'Misuse.of.shell.builtins'
8bd20 2c 0a 0a 31 32 36 20 3d 3e 20 27 49 6e 76 6f 6b 65 64 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 6e 6f ,..126.=>.'Invoked.command.canno
8bd40 74 20 65 78 65 63 75 74 65 27 2c 0a 31 32 37 20 3d 3e 20 27 43 6f 6d 6d 61 6e 64 20 6e 6f 74 20 t.execute',.127.=>.'Command.not.
8bd60 66 6f 75 6e 64 27 2c 0a 31 32 38 20 3d 3e 20 27 49 6e 76 61 6c 69 64 20 65 78 69 74 20 61 72 67 found',.128.=>.'Invalid.exit.arg
8bd80 75 6d 65 6e 74 27 2c 0a 0a 0a 20 31 32 39 20 3d 3e 20 27 48 61 6e 67 75 70 27 2c 0a 31 33 30 20 ument',....129.=>.'Hangup',.130.
8bda0 3d 3e 20 27 49 6e 74 65 72 72 75 70 74 27 2c 0a 31 33 31 20 3d 3e 20 27 51 75 69 74 20 61 6e 64 =>.'Interrupt',.131.=>.'Quit.and
8bdc0 20 64 75 6d 70 20 63 6f 72 65 27 2c 0a 31 33 32 20 3d 3e 20 27 49 6c 6c 65 67 61 6c 20 69 6e 73 .dump.core',.132.=>.'Illegal.ins
8bde0 74 72 75 63 74 69 6f 6e 27 2c 0a 31 33 33 20 3d 3e 20 27 54 72 61 63 65 2f 62 72 65 61 6b 70 6f truction',.133.=>.'Trace/breakpo
8be00 69 6e 74 20 74 72 61 70 27 2c 0a 31 33 34 20 3d 3e 20 27 50 72 6f 63 65 73 73 20 61 62 6f 72 74 int.trap',.134.=>.'Process.abort
8be20 65 64 27 2c 0a 31 33 35 20 3d 3e 20 27 42 75 73 20 65 72 72 6f 72 3a 20 22 61 63 63 65 73 73 20 ed',.135.=>.'Bus.error:."access.
8be40 74 6f 20 75 6e 64 65 66 69 6e 65 64 20 70 6f 72 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 6f to.undefined.portion.of.memory.o
8be60 62 6a 65 63 74 22 27 2c 0a 31 33 36 20 3d 3e 20 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 bject"',.136.=>.'Floating.point.
8be80 65 78 63 65 70 74 69 6f 6e 3a 20 22 65 72 72 6f 6e 65 6f 75 73 20 61 72 69 74 68 6d 65 74 69 63 exception:."erroneous.arithmetic
8bea0 20 6f 70 65 72 61 74 69 6f 6e 22 27 2c 0a 31 33 37 20 3d 3e 20 27 4b 69 6c 6c 20 28 74 65 72 6d .operation"',.137.=>.'Kill.(term
8bec0 69 6e 61 74 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 29 27 2c 0a 31 33 38 20 3d 3e 20 27 55 73 65 inate.immediately)',.138.=>.'Use
8bee0 72 2d 64 65 66 69 6e 65 64 20 31 27 2c 0a 31 33 39 20 3d 3e 20 27 53 65 67 6d 65 6e 74 61 74 69 r-defined.1',.139.=>.'Segmentati
8bf00 6f 6e 20 76 69 6f 6c 61 74 69 6f 6e 27 2c 0a 31 34 30 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 on.violation',.140.=>.'User-defi
8bf20 6e 65 64 20 32 27 2c 0a 31 34 31 20 3d 3e 20 27 57 72 69 74 65 20 74 6f 20 70 69 70 65 20 77 69 ned.2',.141.=>.'Write.to.pipe.wi
8bf40 74 68 20 6e 6f 20 6f 6e 65 20 72 65 61 64 69 6e 67 27 2c 0a 31 34 32 20 3d 3e 20 27 53 69 67 6e th.no.one.reading',.142.=>.'Sign
8bf60 61 6c 20 72 61 69 73 65 64 20 62 79 20 61 6c 61 72 6d 27 2c 0a 31 34 33 20 3d 3e 20 27 54 65 72 al.raised.by.alarm',.143.=>.'Ter
8bf80 6d 69 6e 61 74 69 6f 6e 20 28 72 65 71 75 65 73 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 29 27 mination.(request.to.terminate)'
8bfa0 2c 0a 0a 20 31 34 35 20 3d 3e 20 27 43 68 69 6c 64 20 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e ,...145.=>.'Child.process.termin
8bfc0 61 74 65 64 2c 20 73 74 6f 70 70 65 64 20 28 6f 72 20 63 6f 6e 74 69 6e 75 65 64 2a 29 27 2c 0a ated,.stopped.(or.continued*)',.
8bfe0 31 34 36 20 3d 3e 20 27 43 6f 6e 74 69 6e 75 65 20 69 66 20 73 74 6f 70 70 65 64 27 2c 0a 31 34 146.=>.'Continue.if.stopped',.14
8c000 37 20 3d 3e 20 27 53 74 6f 70 20 65 78 65 63 75 74 69 6e 67 20 74 65 6d 70 6f 72 61 72 69 6c 79 7.=>.'Stop.executing.temporarily
8c020 27 2c 0a 31 34 38 20 3d 3e 20 27 54 65 72 6d 69 6e 61 6c 20 73 74 6f 70 20 73 69 67 6e 61 6c 27 ',.148.=>.'Terminal.stop.signal'
8c040 2c 0a 31 34 39 20 3d 3e 20 27 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 ,.149.=>.'Background.process.att
8c060 65 6d 70 74 69 6e 67 20 74 6f 20 72 65 61 64 20 66 72 6f 6d 20 74 74 79 20 28 22 69 6e 22 29 27 empting.to.read.from.tty.("in")'
8c080 2c 0a 31 35 30 20 3d 3e 20 27 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 ,.150.=>.'Background.process.att
8c0a0 65 6d 70 74 69 6e 67 20 74 6f 20 77 72 69 74 65 20 74 6f 20 74 74 79 20 28 22 6f 75 74 22 29 27 empting.to.write.to.tty.("out")'
8c0c0 2c 0a 31 35 31 20 3d 3e 20 27 55 72 67 65 6e 74 20 64 61 74 61 20 61 76 61 69 6c 61 62 6c 65 20 ,.151.=>.'Urgent.data.available.
8c0e0 6f 6e 20 73 6f 63 6b 65 74 27 2c 0a 31 35 32 20 3d 3e 20 27 43 50 55 20 74 69 6d 65 20 6c 69 6d on.socket',.152.=>.'CPU.time.lim
8c100 69 74 20 65 78 63 65 65 64 65 64 27 2c 0a 31 35 33 20 3d 3e 20 27 46 69 6c 65 20 73 69 7a 65 20 it.exceeded',.153.=>.'File.size.
8c120 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 27 2c 0a 31 35 34 20 3d 3e 20 27 53 69 67 6e 61 6c 20 limit.exceeded',.154.=>.'Signal.
8c140 72 61 69 73 65 64 20 62 79 20 74 69 6d 65 72 20 63 6f 75 6e 74 69 6e 67 20 76 69 72 74 75 61 6c raised.by.timer.counting.virtual
8c160 20 74 69 6d 65 3a 20 22 76 69 72 74 75 61 6c 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 22 27 2c .time:."virtual.timer.expired"',
8c180 0a 31 35 35 20 3d 3e 20 27 50 72 6f 66 69 6c 69 6e 67 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 .155.=>.'Profiling.timer.expired
8c1a0 27 2c 0a 0a 20 31 35 37 20 3d 3e 20 27 50 6f 6c 6c 61 62 6c 65 20 65 76 65 6e 74 27 2c 0a 0a 20 ',...157.=>.'Pollable.event',...
8c1c0 31 35 39 20 3d 3e 20 27 42 61 64 20 73 79 73 63 61 6c 6c 27 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 159.=>.'Bad.syscall',.);........
8c1e0 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
8c200 75 63 74 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 uct($commandline,.$cwd.=.null,.a
8c220 72 72 61 79 20 24 65 6e 76 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 64 69 6e 20 3d 20 6e 75 6c 6c 2c rray.$env.=.null,.$stdin.=.null,
8c240 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 6f 6e 73 20 3d .$timeout.=.60,.array.$options.=
8c260 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 .array()).{.if.(!function_exists
8c280 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 ('proc_open')).{.throw.new.Runti
8c2a0 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 72 6f 63 65 73 73 20 63 6c 61 73 73 20 72 meException('The.Process.class.r
8c2c0 65 6c 69 65 73 20 6f 6e 20 70 72 6f 63 5f 6f 70 65 6e 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 elies.on.proc_open,.which.is.not
8c2e0 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 79 6f 75 72 20 50 48 50 20 69 6e 73 74 61 6c 6c 61 74 .available.on.your.PHP.installat
8c300 69 6f 6e 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 ion.');.}..$this->commandline.=.
8c320 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b $commandline;.$this->cwd.=.$cwd;
8c340 0a 0a 0a 20 0a 20 0a 20 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 77 ..........if.(null.===.$this->cw
8c360 64 20 26 26 20 28 64 65 66 69 6e 65 64 28 27 5a 45 4e 44 5f 54 48 52 45 41 44 5f 53 41 46 45 27 d.&&.(defined('ZEND_THREAD_SAFE'
8c380 29 20 7c 7c 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 49 4f ).||.defined('PHP_WINDOWS_VERSIO
8c3a0 4e 5f 42 55 49 4c 44 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 67 65 74 63 77 N_BUILD'))).{.$this->cwd.=.getcw
8c3c0 64 28 29 3b 0a 7d 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 d();.}.if.(null.!==.$env).{.$thi
8c3e0 73 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 s->env.=.array();.foreach.($env.
8c400 61 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 as.$key.=>.$value).{.$this->env[
8c420 28 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 (binary).$key].=.(binary).$value
8c440 3b 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 ;.}.}.else.{.$this->env.=.null;.
8c460 7d 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 }.$this->stdin.=.$stdin;.$this->
8c480 73 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 setTimeout($timeout);.$this->enh
8c4a0 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 74 72 75 65 3b anceWindowsCompatibility.=.true;
8c4c0 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 .$this->enhanceSigchildCompatibi
8c4e0 6c 69 74 79 20 3d 20 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 lity.=.!defined('PHP_WINDOWS_VER
8c500 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c SION_BUILD').&&.$this->isSigchil
8c520 64 45 6e 61 62 6c 65 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 dEnabled();.$this->options.=.arr
8c540 61 79 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 ay_replace(array('suppress_error
8c560 73 27 20 3d 3e 20 74 72 75 65 2c 20 27 62 69 6e 61 72 79 5f 70 69 70 65 73 27 20 3d 3e 20 74 72 s'.=>.true,.'binary_pipes'.=>.tr
8c580 75 65 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ue),.$options);.}..public.functi
8c5a0 6f 6e 20 5f 5f 64 65 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 6f 70 28 on.__destruct().{...$this->stop(
8c5c0 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a );.}..public.function.__clone().
8c5e0 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d {.$this->exitcode.=.null;.$this-
8c600 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d >fallbackExitcode.=.null;.$this-
8c620 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 >processInformation.=.null;.$thi
8c640 73 2d 3e 73 74 64 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 s->stdout.=.null;.$this->stderr.
8c660 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 =.null;.$this->pipes.=.null;.$th
8c680 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 is->process.=.null;.$this->statu
8c6a0 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 24 74 68 69 73 2d 3e 66 s.=.self::STATUS_READY;.$this->f
8c6c0 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 ileHandles.=.null;.$this->readBy
8c6e0 74 65 73 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tes.=.null;.}...................
8c700 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.
8c720 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b =.null).{.$this->start($callback
8c740 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 69 74 28 24 63 61 6c 6c 62 61 63 6b );..return.$this->wait($callback
8c760 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 );.}.......................publi
8c780 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c c.function.start($callback.=.nul
8c7a0 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 74 l).{.if.($this->isRunning()).{.t
8c7c0 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 72 6f 63 65 hrow.new.RuntimeException('Proce
8c7e0 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 24 74 68 69 ss.is.already.running');.}..$thi
8c800 73 2d 3e 73 74 61 72 74 74 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a s->starttime.=.microtime(true);.
8c820 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 $this->stdout.=.'';.$this->stder
8c840 72 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 r.=.'';.$this->incrementalOutput
8c860 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 Offset.=.0;.$this->incrementalEr
8c880 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d rorOutputOffset.=.0;.$callback.=
8c8a0 20 24 74 68 69 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 .$this->buildCallback($callback)
8c8c0 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 73 63 72 ;.$descriptors.=.$this->getDescr
8c8e0 69 70 74 6f 72 73 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 74 68 69 73 2d iptors();..$commandline.=.$this-
8c900 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f >commandline;..if.(defined('PHP_
8c920 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
8c940 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 29 20 7b ->enhanceWindowsCompatibility).{
8c960 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 63 6d 64 20 2f 56 3a 4f 4e 20 2f 45 3a 4f 4e .$commandline.=.'cmd./V:ON./E:ON
8c980 20 2f 43 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 22 27 3b 0a 69 66 20 28 21 69 73 ./C."'.$commandline.'"';.if.(!is
8c9a0 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 65 6c 6c set($this->options['bypass_shell
8c9c0 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 '])).{.$this->options['bypass_sh
8c9e0 65 6c 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ell'].=.true;.}.}..$this->proces
8ca00 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 64 65 73 s.=.proc_open($commandline,.$des
8ca20 63 72 69 70 74 6f 72 73 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 2c 20 24 74 68 69 73 2d 3e 63 criptors,.$this->pipes,.$this->c
8ca40 77 64 2c 20 24 74 68 69 73 2d 3e 65 6e 76 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b wd,.$this->env,.$this->options);
8ca60 0a 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ..if.(!is_resource($this->proces
8ca80 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e s)).{.throw.new.RuntimeException
8caa0 28 27 55 6e 61 62 6c 65 20 74 6f 20 6c 61 75 6e 63 68 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 ('Unable.to.launch.a.new.process
8cac0 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 .');.}.$this->status.=.self::STA
8cae0 54 55 53 5f 53 54 41 52 54 45 44 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 69 TUS_STARTED;..foreach.($this->pi
8cb00 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f 62 6c 6f 63 6b pes.as.$pipe).{.stream_set_block
8cb20 69 6e 67 28 24 70 69 70 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 69 66 20 28 24 74 68 69 73 ing($pipe,.false);.}...if.($this
8cb40 2d 3e 74 74 79 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 3a 53 ->tty).{.$this->status.=.self::S
8cb60 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 TATUS_TERMINATED;.return;.}..if.
8cb80 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 0a 66 63 6c 6f 73 65 (null.===.$this->stdin).{.fclose
8cba0 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 24 74 68 69 73 2d 3e ($this->pipes[0]);.unset($this->
8cbc0 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 72 69 74 65 50 69 70 pipes[0]);..return;.}..$writePip
8cbe0 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 5d 29 3b 0a 75 6e 73 es.=.array($this->pipes[0]);.uns
8cc00 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 69 6e 4c 65 6e 20 3d et($this->pipes[0]);.$stdinLen.=
8cc20 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 74 64 69 6e 4f 66 66 .strlen($this->stdin);.$stdinOff
8cc40 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 70 65 73 29 20 7b 0a set.=.0;..while.($writePipes).{.
8cc60 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 4f 4e if.(defined('PHP_WINDOWS_VERSION
8cc80 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 73 46 69 6c 65 48 61 _BUILD')).{.$this->processFileHa
8cca0 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 20 24 74 68 69 73 2d ndles($callback);.}..$r.=.$this-
8ccc0 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 0a 24 65 20 3d 20 6e >pipes;.$w.=.$writePipes;.$e.=.n
8cce0 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 2c 20 24 77 ull;..$n.=.@stream_select($r,.$w
8cd00 2c 20 24 65 2c 20 30 2c 20 63 65 69 6c 28 73 74 61 74 69 63 3a 3a 54 49 4d 45 4f 55 54 5f 50 52 ,.$e,.0,.ceil(static::TIMEOUT_PR
8cd20 45 43 49 53 49 4f 4e 20 2a 20 31 45 36 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 ECISION.*.1E6));..if.(false.===.
8cd40 24 6e 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6e 20 3d 3d 3d 20 30 29 20 7b 0a 70 $n).{.break;.}.if.($n.===.0).{.p
8cd60 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 73 73 29 3b 0a 0a roc_terminate($this->process);..
8cd80 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 throw.new.RuntimeException('The.
8cda0 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 69 66 20 28 24 77 29 process.timed.out.');.}..if.($w)
8cdc0 20 7b 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 77 72 69 74 65 28 24 77 72 69 74 65 50 69 70 65 73 .{.$written.=.fwrite($writePipes
8cde0 5b 30 5d 2c 20 28 62 69 6e 61 72 79 29 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 73 74 64 69 [0],.(binary).substr($this->stdi
8ce00 6e 2c 20 24 73 74 64 69 6e 4f 66 66 73 65 74 29 2c 20 38 31 39 32 29 3b 0a 69 66 20 28 66 61 6c n,.$stdinOffset),.8192);.if.(fal
8ce20 73 65 20 21 3d 3d 20 24 77 72 69 74 74 65 6e 29 20 7b 0a 24 73 74 64 69 6e 4f 66 66 73 65 74 20 se.!==.$written).{.$stdinOffset.
8ce40 2b 3d 20 24 77 72 69 74 74 65 6e 3b 0a 7d 0a 69 66 20 28 24 73 74 64 69 6e 4f 66 66 73 65 74 20 +=.$written;.}.if.($stdinOffset.
8ce60 3e 3d 20 24 73 74 64 69 6e 4c 65 6e 29 20 7b 0a 66 63 6c 6f 73 65 28 24 77 72 69 74 65 50 69 70 >=.$stdinLen).{.fclose($writePip
8ce80 65 73 5b 30 5d 29 3b 0a 24 77 72 69 74 65 50 69 70 65 73 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a es[0]);.$writePipes.=.null;.}.}.
8cea0 0a 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 .foreach.($r.as.$pipe).{.$type.=
8cec0 20 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 .array_search($pipe,.$this->pipe
8cee0 73 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 s);.$data.=.fread($pipe,.8192);.
8cf00 69 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 if.(strlen($data).>.0).{.call_us
8cf20 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.?.
8cf40 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);.}
8cf60 0a 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 .if.(false.===.$data.||.feof($pi
8cf80 70 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 pe)).{.fclose($pipe);.unset($thi
8cfa0 73 2d 3e 70 69 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 68 s->pipes[$type]);.}.}..$this->ch
8cfc0 65 63 6b 54 69 6d 65 6f 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 eckTimeout();.}..$this->updateSt
8cfe0 61 74 75 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 atus();.}.................public
8d000 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 .function.restart($callback.=.nu
8d020 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a ll).{.if.($this->isRunning()).{.
8d040 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 72 6f 63 throw.new.RuntimeException('Proc
8d060 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 24 70 72 ess.is.already.running');.}..$pr
8d080 6f 63 65 73 73 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 73 ocess.=.clone.$this;.$process->s
8d0a0 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 tart($callback);..return.$proces
8d0c0 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 66 75 6e 63 74 s;.}................public.funct
8d0e0 69 6f 6e 20 77 61 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 ion.wait($callback.=.null).{.$th
8d100 69 73 2d 3e 75 70 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 is->updateStatus();.$callback.=.
8d120 24 74 68 69 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 $this->buildCallback($callback);
8d140 0a 77 68 69 6c 65 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 .while.($this->pipes.||.(defined
8d160 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 26 ('PHP_WINDOWS_VERSION_BUILD').&&
8d180 20 24 74 68 69 73 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 .$this->fileHandles)).{.if.(defi
8d1a0 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 29 ned('PHP_WINDOWS_VERSION_BUILD')
8d1c0 20 26 26 20 24 74 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 .&&.$this->fileHandles).{.$this-
8d1e0 3e 70 72 6f 63 65 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 >processFileHandles($callback,.!
8d200 24 74 68 69 73 2d 3e 70 69 70 65 73 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 69 6d $this->pipes);.}.$this->checkTim
8d220 65 6f 75 74 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 20 7b 0a 24 72 20 eout();..if.($this->pipes).{.$r.
8d240 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 20 3d 20 =.$this->pipes;.$w.=.null;.$e.=.
8d260 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 20 3d 20 40 73 74 72 null;....if.(false.===.$n.=.@str
8d280 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 30 2c 20 63 65 69 6c 28 73 eam_select($r,.$w,.$e,.0,.ceil(s
8d2a0 74 61 74 69 63 3a 3a 54 49 4d 45 4f 55 54 5f 50 52 45 43 49 53 49 4f 4e 20 2a 20 31 45 36 29 29 tatic::TIMEOUT_PRECISION.*.1E6))
8d2c0 29 20 7b 0a 24 6c 61 73 74 45 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 ).{.$lastError.=.error_get_last(
8d2e0 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 6c 61 73 74 45 72 72 6f 72 5b 27 6d 65 73 73 );....if.(isset($lastError['mess
8d300 61 67 65 27 5d 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6c 61 73 age']).&&.false.===.stripos($las
8d320 74 45 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 2c 20 27 69 6e 74 65 72 72 75 70 74 65 64 20 tError['message'],.'interrupted.
8d340 73 79 73 74 65 6d 20 63 61 6c 6c 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 system.call')).{.$this->pipes.=.
8d360 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 array();.}..continue;.}....if.(0
8d380 20 3d 3d 3d 20 24 6e 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 .===.$n).{.continue;.}..foreach.
8d3a0 28 24 72 20 61 73 20 24 70 69 70 65 29 20 7b 0a 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 73 65 ($r.as.$pipe).{.$type.=.array_se
8d3c0 61 72 63 68 28 24 70 69 70 65 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 29 3b 0a 24 64 61 74 61 arch($pipe,.$this->pipes);.$data
8d3e0 20 3d 20 66 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 39 32 29 3b 0a 0a 69 66 20 28 73 74 72 6c .=.fread($pipe,.8192);..if.(strl
8d400 65 6e 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 0a 20 69 66 20 28 33 20 3d 3d 20 24 74 79 70 en($data).>.0).{...if.(3.==.$typ
8d420 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 28 e).{.$this->fallbackExitcode.=.(
8d440 69 6e 74 29 20 24 64 61 74 61 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 int).$data;.}.else.{.call_user_f
8d460 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 65 6c 66 unc($callback,.$type.==.1.?.self
8d480 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 7d 0a 69 ::OUT.:.self::ERR,.$data);.}.}.i
8d4a0 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 65 f.(false.===.$data.||.feof($pipe
8d4c0 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 2d )).{.fclose($pipe);.unset($this-
8d4e0 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 75 >pipes[$type]);.}.}.}.}.$this->u
8d500 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 73 pdateStatus();.if.($this->proces
8d520 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 69 66 20 28 sInformation['signaled']).{.if.(
8d540 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 $this->isSigchildEnabled()).{.th
8d560 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 70 72 row.new.RuntimeException('The.pr
8d580 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 74 ocess.has.been.signaled.');.}..t
8d5a0 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 hrow.new.RuntimeException(sprint
8d5c0 66 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 6e 61 6c 65 64 f('The.process.has.been.signaled
8d5e0 20 77 69 74 68 20 73 69 67 6e 61 6c 20 22 25 73 22 2e 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 .with.signal."%s".',.$this->proc
8d600 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a essInformation['termsig']));.}..
8d620 24 74 69 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 $time.=.0;.while.($this->isRunni
8d640 6e 67 28 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 ng().&&.$time.<.1000000).{.$time
8d660 20 2b 3d 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 .+=.1000;.usleep(1000);.}..$exit
8d680 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 73 73 code.=.proc_close($this->process
8d6a0 29 3b 0a 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 );..if.($this->processInformatio
8d6c0 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 n['signaled']).{.if.($this->isSi
8d6e0 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e gchildEnabled()).{.throw.new.Run
8d700 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 timeException('The.process.has.b
8d720 65 65 6e 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 een.signaled.');.}..throw.new.Ru
8d740 6e 74 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 70 72 6f 63 ntimeException(sprintf('The.proc
8d760 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 6e 61 6c 65 64 20 77 69 74 68 20 73 69 67 6e 61 ess.has.been.signaled.with.signa
8d780 6c 20 22 25 73 22 2e 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 l."%s".',.$this->processInformat
8d7a0 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 78 69 74 ion['termsig']));.}..$this->exit
8d7c0 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
8d7e0 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-
8d800 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'];
8d820 0a 0a 69 66 20 28 2d 31 20 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 26 26 20 6e ..if.(-1.==.$this->exitcode.&&.n
8d840 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 29 ull.!==.$this->fallbackExitcode)
8d860 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 3e 66 61 6c 6c .{.$this->exitcode.=.$this->fall
8d880 62 61 63 6b 45 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 backExitcode;.}..return.$this->e
8d8a0 78 69 74 63 6f 64 65 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 xitcode;.}.........public.functi
8d8c0 6f 6e 20 67 65 74 50 69 64 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 on.getPid().{.if.($this->isSigch
8d8e0 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d ildEnabled()).{.throw.new.Runtim
8d900 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f eException('This.PHP.has.been.co
8d920 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 mpiled.with.--enable-sigchild..T
8d940 68 65 20 70 72 6f 63 65 73 73 20 69 64 65 6e 74 69 66 69 65 72 20 63 61 6e 20 6e 6f 74 20 62 65 he.process.identifier.can.not.be
8d960 20 72 65 74 72 69 65 76 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 .retrieved.');.}..$this->updateS
8d980 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e tatus();..return.$this->isRunnin
8d9a0 67 28 29 20 3f 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 g().?.$this->processInformation[
8d9c0 27 70 69 64 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 'pid'].:.null;.}............publ
8d9e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 29 0a 7b 0a 69 66 ic.function.signal($signal).{.if
8da00 20 28 21 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e .(!$this->isRunning()).{.throw.n
8da20 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 73 65 6e 64 20 ew.LogicException('Can.not.send.
8da40 73 69 67 6e 61 6c 20 6f 6e 20 61 20 6e 6f 6e 20 72 75 6e 6e 69 6e 67 20 70 72 6f 63 65 73 73 2e signal.on.a.non.running.process.
8da60 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 ');.}..if.($this->isSigchildEnab
8da80 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 led()).{.throw.new.RuntimeExcept
8daa0 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 ion('This.PHP.has.been.compiled.
8dac0 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 68 65 20 70 72 6f 63 with.--enable-sigchild..The.proc
8dae0 65 73 73 20 63 61 6e 20 6e 6f 74 20 62 65 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 69 ess.can.not.be.signaled.');.}..i
8db00 66 20 28 74 72 75 65 20 21 3d 3d 20 40 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 f.(true.!==.@proc_terminate($thi
8db20 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 73 69 67 6e 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 s->process,.$signal)).{.throw.ne
8db40 77 20 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 45 72 72 6f w.RuntimeException(sprintf('Erro
8db60 72 20 77 68 69 6c 65 20 73 65 6e 64 69 6e 67 20 73 69 67 6e 61 6c 20 60 25 64 60 2e 27 2c 20 24 r.while.sending.signal.`%d`.',.$
8db80 73 69 67 6e 61 6c 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a signal));.}..return.$this;.}....
8dba0 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 74 70 75 74 28 29 .....public.function.getOutput()
8dbc0 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 0a 72 65 74 75 72 .{.$this->updateOutput();..retur
8dbe0 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 0a 0a 70 75 62 6c n.$this->stdout;.}..........publ
8dc00 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 ic.function.getIncrementalOutput
8dc20 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b ().{.$data.=.$this->getOutput();
8dc40 0a 0a 24 6c 61 74 65 73 74 20 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 24 74 68 69 73 2d ..$latest.=.substr($data,.$this-
8dc60 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 29 3b 0a 24 74 68 69 73 >incrementalOutputOffset);.$this
8dc80 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c ->incrementalOutputOffset.=.strl
8dca0 65 6e 28 24 64 61 74 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a 0a en($data);..return.$latest;.}...
8dcc0 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 45 72 72 6f 72 4f 75 ......public.function.getErrorOu
8dce0 74 70 75 74 28 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 tput().{.$this->updateErrorOutpu
8dd00 74 28 29 3b 0a 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 t();..return.$this->stderr;.}...
8dd20 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 72 65 ........public.function.getIncre
8dd40 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 mentalErrorOutput().{.$data.=.$t
8dd60 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 24 6c 61 74 65 73 74 20 his->getErrorOutput();..$latest.
8dd80 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 =.substr($data,.$this->increment
8dda0 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 alErrorOutputOffset);.$this->inc
8ddc0 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c rementalErrorOutputOffset.=.strl
8dde0 65 6e 28 24 64 61 74 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a 0a en($data);..return.$latest;.}...
8de00 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 45 78 69 74 43 ........public.function.getExitC
8de20 6f 64 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 ode().{.if.($this->isSigchildEna
8de40 62 6c 65 64 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c bled().&&.!$this->enhanceSigchil
8de60 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 dCompatibility).{.throw.new.Runt
8de80 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 imeException('This.PHP.has.been.
8dea0 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e compiled.with.--enable-sigchild.
8dec0 20 59 6f 75 20 6d 75 73 74 20 75 73 65 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 .You.must.use.setEnhanceSigchild
8dee0 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 20 74 6f 20 75 73 65 20 74 68 69 73 20 6d 65 74 68 Compatibility().to.use.this.meth
8df00 6f 64 27 29 3b 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 od');.}..$this->updateStatus();.
8df20 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->exitcode;.}......
8df40 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 45 78 69 74 43 6f .......public.function.getExitCo
8df60 64 65 54 65 78 74 28 29 0a 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 deText().{.$exitcode.=.$this->ge
8df80 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a tExitCode();..return.isset(self:
8dfa0 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 29 20 3f 20 73 65 6c 66 3a 3a :$exitCodes[$exitcode]).?.self::
8dfc0 24 65 78 69 74 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e $exitCodes[$exitcode].:.'Unknown
8dfe0 20 65 72 72 6f 72 27 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 .error';.}.........public.functi
8e000 6f 6e 20 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 30 20 3d 3d 20 on.isSuccessful().{.return.0.==.
8e020 24 74 68 69 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a $this->getExitCode();.}.........
8e040 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 69 67 6e 61 ....public.function.hasBeenSigna
8e060 6c 65 64 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 led().{.if.($this->isSigchildEna
8e080 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 bled()).{.throw.new.RuntimeExcep
8e0a0 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 tion('This.PHP.has.been.compiled
8e0c0 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 .with.--enable-sigchild..Term.si
8e0e0 67 6e 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 27 29 3b 0a 7d 0a 0a gnal.can.not.be.retrieved');.}..
8e100 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 24 $this->updateStatus();..return.$
8e120 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 69 67 6e 61 6c this->processInformation['signal
8e140 65 64 27 5d 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 ed'];.}.............public.funct
8e160 69 6f 6e 20 67 65 74 54 65 72 6d 53 69 67 6e 61 6c 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d ion.getTermSignal().{.if.($this-
8e180 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 >isSigchildEnabled()).{.throw.ne
8e1a0 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 w.RuntimeException('This.PHP.has
8e1c0 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 .been.compiled.with.--enable-sig
8e1e0 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 child..Term.signal.can.not.be.re
8e200 74 72 69 65 76 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 trieved');.}..$this->updateStatu
8e220 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 6e 66 6f 72 s();..return.$this->processInfor
8e240 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 mation['termsig'];.}...........p
8e260 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 74 6f 70 70 65 64 28 29 0a ublic.function.hasBeenStopped().
8e280 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 6e {.$this->updateStatus();..return
8e2a0 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 6f 70 .$this->processInformation['stop
8e2c0 70 65 64 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 6e 63 74 69 ped'];.}...........public.functi
8e2e0 6f 6e 20 67 65 74 53 74 6f 70 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 on.getStopSignal().{.$this->upda
8e300 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 63 65 teStatus();..return.$this->proce
8e320 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a ssInformation['stopsig'];.}.....
8e340 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 75 6e 6e 69 6e 67 28 29 0a 7b 0a ..public.function.isRunning().{.
8e360 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 21 3d 3d 20 24 74 68 if.(self::STATUS_STARTED.!==.$th
8e380 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 is->status).{.return.false;.}..$
8e3a0 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 24 74 this->updateStatus();..return.$t
8e3c0 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 6e 6e 69 6e 67 his->processInformation['running
8e3e0 27 5d 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 69 73 53 74 '];.}.......public.function.isSt
8e400 61 72 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 21 arted().{.return.$this->status.!
8e420 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 =.self::STATUS_READY;.}.......pu
8e440 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 54 65 72 6d 69 6e 61 74 65 64 28 29 0a 7b 0a 24 blic.function.isTerminated().{.$
8e460 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 24 74 this->updateStatus();..return.$t
8e480 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d his->status.==.self::STATUS_TERM
8e4a0 49 4e 41 54 45 44 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 INATED;.}.........public.functio
8e4c0 6e 20 67 65 74 53 74 61 74 75 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 n.getStatus().{.$this->updateSta
8e4e0 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 3b 0a 7d 0a tus();..return.$this->status;.}.
8e500 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 74 6f 70 28 ...........public.function.stop(
8e520 24 74 69 6d 65 6f 75 74 20 3d 20 31 30 2c 20 24 73 69 67 6e 61 6c 20 3d 20 6e 75 6c 6c 29 0a 7b $timeout.=.10,.$signal.=.null).{
8e540 0a 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 20 3d 20 28 69 6e 74 29 20 24 74 69 6d 65 6f 75 74 2a .$timeoutMicro.=.(int).$timeout*
8e560 31 45 36 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 70 1E6;.if.($this->isRunning()).{.p
8e580 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 73 73 29 3b 0a 24 roc_terminate($this->process);.$
8e5a0 74 69 6d 65 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 31 20 3d 3d 20 24 74 68 69 73 2d 3e 69 73 52 time.=.0;.while.(1.==.$this->isR
8e5c0 75 6e 6e 69 6e 67 28 29 20 26 26 20 24 74 69 6d 65 20 3c 20 24 74 69 6d 65 6f 75 74 4d 69 63 72 unning().&&.$time.<.$timeoutMicr
8e5e0 6f 29 20 7b 0a 24 74 69 6d 65 20 2b 3d 20 31 30 30 30 3b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 o).{.$time.+=.1000;.usleep(1000)
8e600 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 26 26 20 21 ;.}..if.($this->isRunning().&&.!
8e620 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 69 66 $this->isSigchildEnabled()).{.if
8e640 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 73 69 67 6e 61 6c 20 7c 7c 20 64 65 66 69 6e 65 64 28 27 53 .(null.!==.$signal.||.defined('S
8e660 49 47 4b 49 4c 4c 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 69 67 6e 61 6c 28 24 73 69 67 6e 61 IGKILL')).{.$this->signal($signa
8e680 6c 20 3f 3a 20 53 49 47 4b 49 4c 4c 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 l.?:.SIGKILL);.}.}..foreach.($th
8e6a0 69 73 2d 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 is->pipes.as.$pipe).{.fclose($pi
8e6c0 70 65 29 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 pe);.}.$this->pipes.=.array();..
8e6e0 24 65 78 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 $exitcode.=.proc_close($this->pr
8e700 6f 63 65 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 ocess);.$this->exitcode.=.-1.===
8e720 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 65 78 69 74 .$this->processInformation['exit
8e740 63 6f 64 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 code'].?.$exitcode.:.$this->proc
8e760 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 0a 0a 69 66 20 essInformation['exitcode'];..if.
8e780 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 4f 4e 5f 42 55 (defined('PHP_WINDOWS_VERSION_BU
8e7a0 49 4c 44 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 ILD')).{.foreach.($this->fileHan
8e7c0 64 6c 65 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 dles.as.$fileHandle).{.fclose($f
8e7e0 69 6c 65 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 ileHandle);.}.$this->fileHandles
8e800 20 3d 20 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 .=.array();.}.}.$this->status.=.
8e820 73 65 6c 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 self::STATUS_TERMINATED;..return
8e840 20 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 70 75 62 6c 69 63 .$this->exitcode;.}.......public
8e860 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 .function.addOutput($line).{.$th
8e880 69 73 2d 3e 73 74 64 6f 75 74 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 is->stdout..=.$line;.}.......pub
8e8a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 6c 69 6e lic.function.addErrorOutput($lin
8e8c0 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a e).{.$this->stderr..=.$line;.}..
8e8e0 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 6d 61 6e 64 4c .....public.function.getCommandL
8e900 69 6e 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e ine().{.return.$this->commandlin
8e920 65 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 74 e;.}.........public.function.set
8e940 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 0a 7b 0a 24 74 68 69 CommandLine($commandline).{.$thi
8e960 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 6c 69 6e 65 3b 0a 0a s->commandline.=.$commandline;..
8e980 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e return.$this;.}.......public.fun
8e9a0 63 74 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 24 74 68 69 ction.getTimeout().{.return.$thi
8e9c0 73 2d 3e 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 s->timeout;.}.............public
8e9e0 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 65 6f 75 74 29 0a 7b .function.setTimeout($timeout).{
8ea00 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 0a 24 74 68 69 73 2d .if.(null.===.$timeout).{.$this-
8ea20 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 24 74 68 69 73 3b 0a >timeout.=.null;..return.$this;.
8ea40 7d 0a 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 66 6c 6f 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a }..$timeout.=.(float).$timeout;.
8ea60 0a 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 .if.($timeout.<.0).{.throw.new.I
8ea80 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 74 69 6d nvalidArgumentException('The.tim
8eaa0 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 74 eout.value.must.be.a.valid.posit
8eac0 69 76 65 20 69 6e 74 65 67 65 72 20 6f 72 20 66 6c 6f 61 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a ive.integer.or.float.number.');.
8eae0 7d 0a 0a 24 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 0a 72 }..$this->timeout.=.$timeout;..r
8eb00 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 eturn.$this;.}.........public.fu
8eb20 6e 63 74 69 6f 6e 20 73 65 74 54 74 79 28 24 74 74 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 74 79 nction.setTty($tty).{.$this->tty
8eb40 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 74 74 79 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .=.(Boolean).$tty;..return.$this
8eb60 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 69 73 54 74 79 28 ;.}.......public.function.isTty(
8eb80 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ).{.return.$this->tty;.}.......p
8eba0 75 62 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 ublic.function.getWorkingDirecto
8ebc0 72 79 28 29 0a 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 77 64 ry().{...if.(null.===.$this->cwd
8ebe0 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 67 65 74 63 77 64 28 29 20 3f 3a 20 6e 75 6c 6c 3b ).{.....return.getcwd().?:.null;
8ec00 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 77 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .}..return.$this->cwd;.}........
8ec20 0a 70 75 62 6c 69 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 .public.function.setWorkingDirec
8ec40 74 6f 72 79 28 24 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 tory($cwd).{.$this->cwd.=.$cwd;.
8ec60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$this;.}.......public.fu
8ec80 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 74 68 69 73 2d 3e nction.getEnv().{.return.$this->
8eca0 65 6e 76 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 env;.}.........public.function.s
8ecc0 65 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 etEnv(array.$env).{.$this->env.=
8ece0 20 24 65 6e 76 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 70 75 .$env;..return.$this;.}.......pu
8ed00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 64 69 6e 28 29 0a 7b 0a 72 65 74 75 72 blic.function.getStdin().{.retur
8ed20 6e 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.$this->stdin;.}.........public
8ed40 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 0a 24 74 68 .function.setStdin($stdin).{.$th
8ed60 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 is->stdin.=.$stdin;..return.$thi
8ed80 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 65 74 4f 70 s;.}.......public.function.getOp
8eda0 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b tions().{.return.$this->options;
8edc0 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 4f 70 .}.........public.function.setOp
8ede0 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 2d 3e 6f tions(array.$options).{.$this->o
8ee00 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ptions.=.$options;..return.$this
8ee20 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 65 74 45 ;.}.........public.function.getE
8ee40 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 28 29 0a 7b 0a 72 nhanceWindowsCompatibility().{.r
8ee60 65 74 75 72 6e 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 70 61 eturn.$this->enhanceWindowsCompa
8ee80 74 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tibility;.}.........public.funct
8eea0 69 6f 6e 20 73 65 74 45 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 ion.setEnhanceWindowsCompatibili
8eec0 74 79 28 24 65 6e 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e ty($enhance).{.$this->enhanceWin
8eee0 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 65 dowsCompatibility.=.(Boolean).$e
8ef00 6e 68 61 6e 63 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 70 nhance;..return.$this;.}.......p
8ef20 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 53 69 67 63 68 69 6c ublic.function.getEnhanceSigchil
8ef40 64 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 dCompatibility().{.return.$this-
8ef60 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 7d >enhanceSigchildCompatibility;.}
8ef80 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 65 74 .............public.function.set
8efa0 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 24 65 6e EnhanceSigchildCompatibility($en
8efc0 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 hance).{.$this->enhanceSigchildC
8efe0 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 65 6e 68 61 6e 63 ompatibility.=.(Boolean).$enhanc
8f000 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 70 75 62 e;..return.$this;.}..........pub
8f020 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 69 66 lic.function.checkTimeout().{.if
8f040 20 28 30 20 3c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 26 26 20 24 74 68 69 73 2d 3e 74 .(0.<.$this->timeout.&&.$this->t
8f060 69 6d 65 6f 75 74 20 3c 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 imeout.<.microtime(true).-.$this
8f080 2d 3e 73 74 61 72 74 74 69 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a ->starttime).{.$this->stop(0);..
8f0a0 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 throw.new.RuntimeException('The.
8f0c0 70 72 6f 63 65 73 73 20 74 69 6d 65 64 2d 6f 75 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a process.timed-out.');.}.}.......
8f0e0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 private.function.getDescriptors(
8f100 29 0a 7b 0a 0a 20 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 ).{.......if.(defined('PHP_WINDO
8f120 57 53 5f 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 66 69 6c WS_VERSION_BUILD')).{.$this->fil
8f140 65 48 61 6e 64 6c 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 eHandles.=.array(.self::STDOUT.=
8f160 3e 20 74 6d 70 66 69 6c 65 28 29 2c 0a 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 >.tmpfile(),.);.if.(false.===.$t
8f180 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 55 54 5d 29 20 his->fileHandles[self::STDOUT]).
8f1a0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 20 {.throw.new.RuntimeException('A.
8f1c0 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6f 70 65 6e temporary.file.could.not.be.open
8f1e0 65 64 20 74 6f 20 77 72 69 74 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 75 74 70 75 74 20 74 ed.to.write.the.process.output.t
8f200 6f 2c 20 76 65 72 69 66 79 20 74 68 61 74 20 79 6f 75 72 20 54 45 4d 50 20 65 6e 76 69 72 6f 6e o,.verify.that.your.TEMP.environ
8f220 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 69 73 20 77 72 69 74 61 62 6c 65 27 29 3b 0a 7d 0a 24 ment.variable.is.writable');.}.$
8f240 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a 3a 53 this->readBytes.=.array(.self::S
8f260 54 44 4f 55 54 20 3d 3e 20 30 2c 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 61 72 72 TDOUT.=>.0,.);..return.array(arr
8f280 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 ay('pipe',.'r'),.$this->fileHand
8f2a0 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 2c 20 61 72 72 61 79 28 27 70 69 70 65 27 2c les[self::STDOUT],.array('pipe',
8f2c0 20 27 77 27 29 29 3b 0a 7d 20 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 74 79 29 20 7b 0a 24 64 .'w'));.}...if.($this->tty).{.$d
8f2e0 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 66 69 6c 65 27 escriptors.=.array(.array('file'
8f300 2c 20 27 2f 64 65 76 2f 74 74 79 27 2c 20 27 72 27 29 2c 0a 61 72 72 61 79 28 27 66 69 6c 65 27 ,.'/dev/tty',.'r'),.array('file'
8f320 2c 20 27 2f 64 65 76 2f 74 74 79 27 2c 20 27 77 27 29 2c 0a 61 72 72 61 79 28 27 66 69 6c 65 27 ,.'/dev/tty',.'w'),.array('file'
8f340 2c 20 27 2f 64 65 76 2f 74 74 79 27 2c 20 27 77 27 29 2c 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ,.'/dev/tty',.'w'),.);.}.else.{.
8f360 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 $descriptors.=.array(.array('pip
8f380 65 27 2c 20 27 72 27 29 2c 20 0a 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 e',.'r'),...array('pipe',.'w'),.
8f3a0 0a 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 0a 20 29 3b 0a 7d 0a 0a 69 66 ..array('pipe',.'w'),...);.}..if
8f3c0 20 28 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 .($this->enhanceSigchildCompatib
8f3e0 69 6c 69 74 79 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 ility.&&.$this->isSigchildEnable
8f400 64 28 29 29 20 7b 0a 0a 20 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 d()).{...$descriptors.=.array_me
8f420 72 67 65 28 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 rge($descriptors,.array(array('p
8f440 69 70 65 27 2c 20 27 77 27 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e ipe',.'w')));..$this->commandlin
8f460 65 20 3d 20 27 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 29 20 33 3e e.=.'('.$this->commandline.').3>
8f480 2f 64 65 76 2f 6e 75 6c 6c 3b 20 63 6f 64 65 3d 24 3f 3b 20 65 63 68 6f 20 24 63 6f 64 65 20 3e /dev/null;.code=$?;.echo.$code.>
8f4a0 26 33 3b 20 65 78 69 74 20 24 63 6f 64 65 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 &3;.exit.$code';.}..return.$desc
8f4c0 72 69 70 74 6f 72 73 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 riptors;.}............protected.
8f4e0 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b function.buildCallback($callback
8f500 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 24 6f 75 74 20 3d 20 73 65 6c 66 3a 3a ).{.$that.=.$this;.$out.=.self::
8f520 4f 55 54 3b 0a 24 65 72 72 20 3d 20 73 65 6c 66 3a 3a 45 52 52 3b 0a 24 63 61 6c 6c 62 61 63 6b OUT;.$err.=.self::ERR;.$callback
8f540 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 64 61 74 61 29 20 75 73 65 20 28 .=.function.($type,.$data).use.(
8f560 24 74 68 61 74 2c 20 24 63 61 6c 6c 62 61 63 6b 2c 20 24 6f 75 74 2c 20 24 65 72 72 29 20 7b 0a $that,.$callback,.$out,.$err).{.
8f580 69 66 20 28 24 6f 75 74 20 3d 3d 20 24 74 79 70 65 29 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 4f if.($out.==.$type).{.$that->addO
8f5a0 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 61 74 2d 3e 61 64 utput($data);.}.else.{.$that->ad
8f5c0 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c dErrorOutput($data);.}..if.(null
8f5e0 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 .!==.$callback).{.call_user_func
8f600 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 3b 0a ($callback,.$type,.$data);.}.};.
8f620 0a 72 65 74 75 72 6e 20 24 63 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 .return.$callback;.}.....protect
8f640 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 53 74 61 74 75 73 28 29 0a 7b 0a 69 66 20 ed.function.updateStatus().{.if.
8f660 28 73 65 6c 66 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 (self::STATUS_STARTED.!==.$this-
8f680 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f >status).{.return;.}..$this->pro
8f6a0 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 70 72 6f 63 5f 67 65 74 5f 73 74 61 74 75 cessInformation.=.proc_get_statu
8f6c0 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 s($this->process);.if.(!$this->p
8f6e0 72 6f 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 29 20 7b 0a rocessInformation['running']).{.
8f700 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 $this->status.=.self::STATUS_TER
8f720 4d 49 4e 41 54 45 44 3b 0a 69 66 20 28 2d 31 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 MINATED;.if.(-1.!==.$this->proce
8f740 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 29 20 7b 0a 24 74 68 ssInformation['exitcode']).{.$th
8f760 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 is->exitcode.=.$this->processInf
8f780 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a ormation['exitcode'];.}.}.}.....
8f7a0 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 45 72 72 6f 72 4f 75 protected.function.updateErrorOu
8f7c0 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b tput().{.if.(isset($this->pipes[
8f7e0 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d 29 20 26 26 20 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 self::STDERR]).&&.is_resource($t
8f800 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d 29 29 20 7b 0a 24 74 68 his->pipes[self::STDERR])).{.$th
8f820 69 73 2d 3e 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f is->addErrorOutput(stream_get_co
8f840 6e 74 65 6e 74 73 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 ntents($this->pipes[self::STDERR
8f860 5d 29 29 3b 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 6f 6e 20 ]));.}.}.....protected.function.
8f880 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 64 28 27 50 48 updateOutput().{.if.(defined('PH
8f8a0 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 69 73 73 P_WINDOWS_VERSION_BUILD').&&.iss
8f8c0 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 3a 53 54 44 4f et($this->fileHandles[self::STDO
8f8e0 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 66 69 6c 65 48 UT]).&&.is_resource($this->fileH
8f900 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 65 65 6b 28 24 andles[self::STDOUT])).{.fseek($
8f920 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 55 54 5d 2c this->fileHandles[self::STDOUT],
8f940 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 4f 55 54 5d 29 .$this->readBytes[self::STDOUT])
8f960 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 65 74 5f 63 6f ;.$this->addOutput(stream_get_co
8f980 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 65 6c 66 3a 3a ntents($this->fileHandles[self::
8f9a0 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 24 74 68 69 73 STDOUT]));.}.elseif.(isset($this
8f9c0 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 73 5f 72 65 73 ->pipes[self::STDOUT]).&&.is_res
8f9e0 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 4f 55 54 5d ource($this->pipes[self::STDOUT]
8fa00 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 6d 5f 67 65 74 )).{.$this->addOutput(stream_get
8fa20 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 3a 3a 53 54 44 _contents($this->pipes[self::STD
8fa40 4f 55 54 5d 29 29 3b 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 OUT]));.}.}.......protected.func
8fa60 74 69 6f 6e 20 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 69 66 20 28 6e tion.isSigchildEnabled().{.if.(n
8fa80 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 29 20 7b 0a 72 65 74 75 72 ull.!==.self::$sigchild).{.retur
8faa0 6e 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 n.self::$sigchild;.}..ob_start()
8fac0 3b 0a 70 68 70 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 41 4c 29 3b 0a 0a 72 65 74 75 72 6e ;.phpinfo(INFO_GENERAL);..return
8fae0 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 .self::$sigchild.=.false.!==.str
8fb00 70 6f 73 28 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 69 pos(ob_get_clean(),.'--enable-si
8fb20 67 63 68 69 6c 64 27 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 gchild');.}........private.funct
8fb40 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 6c 62 61 63 6b ion.processFileHandles($callback
8fb60 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 65 29 0a 7b 0a ,.$closeEmptyHandles.=.false).{.
8fb80 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 6f 72 65 61 63 $fh.=.$this->fileHandles;.foreac
8fba0 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 64 6c 65 29 20 h.($fh.as.$type.=>.$fileHandle).
8fbc0 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 3e 72 65 61 64 {.fseek($fileHandle,.$this->read
8fbe0 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 64 28 24 66 69 Bytes[$type]);.$data.=.fread($fi
8fc00 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 28 24 64 61 74 leHandle,.8192);.if.(strlen($dat
8fc20 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 24 74 79 70 65 a).>.0).{.$this->readBytes[$type
8fc40 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 65 72 5f 66 75 ].+=.strlen($data);.call_user_fu
8fc60 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 65 6c 66 3a nc($callback,.$type.==.1.?.self:
8fc80 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 69 66 20 28 :OUT.:.self::ERR,.$data);.}.if.(
8fca0 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 6d 70 74 79 48 false.===.$data.||.($closeEmptyH
8fcc0 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 65 6f 66 28 24 andles.&&.''.===.$data.&&.feof($
8fce0 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 65 48 61 6e 64 fileHandle))).{.fclose($fileHand
8fd00 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 65 73 5b 24 74 le);.unset($this->fileHandles[$t
8fd20 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 0a 0a 0a 0a 6e ype]);.}.}.}.}.<?php...........n
8fd40 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 63 65 amespace.Symfony\Component\Proce
8fd60 73 73 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 72 6f 63 65 ss;..use.Symfony\Component\Proce
8fd80 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 ss\Exception\InvalidArgumentExce
8fda0 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 50 72 6f ption;.use.Symfony\Component\Pro
8fdc0 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 3b 0a 0a cess\Exception\LogicException;..
8fde0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 0a 7b 0a 70 72 69 76 .....class.ProcessBuilder.{.priv
8fe00 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 3b 0a 70 72 ate.$arguments;.private.$cwd;.pr
8fe20 69 76 61 74 65 20 24 65 6e 76 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 69 6e 3b 0a 70 72 69 76 ivate.$env;.private.$stdin;.priv
8fe40 61 74 65 20 24 74 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a ate.$timeout;.private.$options;.
8fe60 70 72 69 76 61 74 65 20 24 69 6e 68 65 72 69 74 45 6e 76 3b 0a 70 72 69 76 61 74 65 20 24 70 72 private.$inheritEnv;.private.$pr
8fe80 65 66 69 78 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 efix;..public.function.__constru
8fea0 63 74 28 61 72 72 61 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 ct(array.$arguments.=.array()).{
8fec0 0a 24 74 68 69 73 2d 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 .$this->arguments.=.$arguments;.
8fee0 0a 24 74 68 69 73 2d 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 .$this->timeout.=.60;.$this->opt
8ff00 69 6f 6e 73 20 3d 20 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 ions.=.array();.$this->env.=.arr
8ff20 61 79 28 29 3b 0a 24 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 ay();.$this->inheritEnv.=.true;.
8ff40 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 63 72 65 61 74 65 }..public.static.function.create
8ff60 28 61 72 72 61 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 72 (array.$arguments.=.array()).{.r
8ff80 65 74 75 72 6e 20 6e 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 eturn.new.static($arguments);.}.
8ffa0 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 28 24 61 72 67 ........public.function.add($arg
8ffc0 75 6d 65 6e 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 61 ument).{.$this->arguments[].=.$a
8ffe0 72 67 75 6d 65 6e 74 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 rgument;..return.$this;.}.......
90000 0a 0a 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 69 78 28 24 70 ....public.function.setPrefix($p
90020 72 65 66 69 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 20 3d 20 24 70 72 65 66 69 78 refix).{.$this->prefix.=.$prefix
90040 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 70 75 62 6c 69 63 20 ;..return.$this;.}.......public.
90060 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 61 72 72 61 79 20 24 61 72 67 function.setArguments(array.$arg
90080 75 6d 65 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 24 61 72 uments).{.$this->arguments.=.$ar
900a0 67 75 6d 65 6e 74 73 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 guments;..return.$this;.}..publi
900c0 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($
900e0 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 0a 72 65 74 75 72 cwd).{.$this->cwd.=.$cwd;..retur
90100 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 69 6e 68 65 n.$this;.}..public.function.inhe
90120 72 69 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 28 24 69 6e 68 65 72 69 74 ritEnvironmentVariables($inherit
90140 45 6e 76 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 Env.=.true).{.$this->inheritEnv.
90160 3d 20 24 69 6e 68 65 72 69 74 45 6e 76 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a =.$inheritEnv;..return.$this;.}.
90180 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 24 6e 61 6d 65 2c 20 24 .public.function.setEnv($name,.$
901a0 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 value).{.$this->env[$name].=.$va
901c0 6c 75 65 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 75 lue;..return.$this;.}..public.fu
901e0 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 73 74 64 69 6e 29 0a 7b 0a 24 74 68 69 73 2d nction.setInput($stdin).{.$this-
90200 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a >stdin.=.$stdin;..return.$this;.
90220 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 73 65 }.............public.function.se
90240 74 54 69 6d 65 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 tTimeout($timeout).{.if.(null.==
90260 3d 20 24 74 69 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 =.$timeout).{.$this->timeout.=.n
90280 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 24 74 69 6d 65 6f 75 74 20 ull;..return.$this;.}..$timeout.
902a0 3d 20 28 66 6c 6f 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 20 28 24 74 69 6d 65 6f 75 =.(float).$timeout;..if.($timeou
902c0 74 20 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 t.<.0).{.throw.new.InvalidArgume
902e0 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d ntException('The.timeout.value.m
90300 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 20 ust.be.a.valid.positive.integer.
90320 6f 72 20 66 6c 6f 61 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 69 or.float.number.');.}..$this->ti
90340 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 24 74 68 69 73 3b meout.=.$timeout;..return.$this;
90360 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 69 6f 6e 28 24 6e .}..public.function.setOption($n
90380 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 6f 6e 73 5b 24 6e ame,.$value).{.$this->options[$n
903a0 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 69 73 3b 0a 7d 0a ame].=.$value;..return.$this;.}.
903c0 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 73 28 29 0a 7b 0a .public.function.getProcess().{.
903e0 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 66 69 78 20 26 26 20 21 63 6f 75 6e 74 28 24 74 68 if.(!$this->prefix.&&.!count($th
90400 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 is->arguments)).{.throw.new.Logi
90420 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 61 64 64 28 29 20 63 6f 6d 6d 61 cException('You.must.add().comma
90440 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 67 65 74 50 nd.arguments.before.calling.getP
90460 72 6f 63 65 73 73 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 rocess().');.}..$options.=.$this
90480 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e ->options;..$arguments.=.$this->
904a0 70 72 65 66 69 78 20 3f 20 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 74 68 69 73 prefix.?.array_merge(array($this
904c0 2d 3e 70 72 65 66 69 78 29 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a 20 24 ->prefix),.$this->arguments).:.$
904e0 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 24 73 63 72 69 70 74 20 3d 20 69 6d 70 6c 6f this->arguments;.$script.=.implo
90500 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 61 72 72 61 79 28 5f 5f 4e 41 4d 45 53 50 de('.',.array_map(array(__NAMESP
90520 41 43 45 5f 5f 2e 27 5c 5c 50 72 6f 63 65 73 73 55 74 69 6c 73 27 2c 20 27 65 73 63 61 70 65 41 ACE__.'\\ProcessUtils',.'escapeA
90540 72 67 75 6d 65 6e 74 27 29 2c 20 24 61 72 67 75 6d 65 6e 74 73 29 29 3b 0a 0a 69 66 20 28 24 74 rgument'),.$arguments));..if.($t
90560 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 29 20 7b 0a 24 65 6e 76 20 3d 20 24 74 68 69 73 2d his->inheritEnv).{.$env.=.$this-
90580 3e 65 6e 76 20 3f 20 24 74 68 69 73 2d 3e 65 6e 76 20 2b 20 24 5f 45 4e 56 20 3a 20 6e 75 6c 6c >env.?.$this->env.+.$_ENV.:.null
905a0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 6e 76 20 3d 20 24 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a ;.}.else.{.$env.=.$this->env;.}.
905c0 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 65 73 73 28 24 73 63 72 69 70 74 2c 20 24 74 68 .return.new.Process($script,.$th
905e0 69 73 2d 3e 63 77 64 2c 20 24 65 6e 76 2c 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 2c 20 24 74 68 is->cwd,.$env,.$this->stdin,.$th
90600 69 73 2d 3e 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 is->timeout,.$options);.}.}.<?ph
90620 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
90640 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 mponent\Process;.........class.P
90660 72 6f 63 65 73 73 55 74 69 6c 73 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f rocessUtils.{....private.functio
90680 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c n.__construct().{.}.........publ
906a0 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 41 72 67 75 6d 65 6e ic.static.function.escapeArgumen
906c0 74 28 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 69 66 20 28 64 65 66 69 6e t($argument).{.........if.(defin
906e0 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 29 29 ed('PHP_WINDOWS_VERSION_BUILD'))
90700 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 .{.$escapedArgument.=.'';.foreac
90720 68 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f 28 5b 25 22 5d 29 2f 69 27 2c 20 24 61 72 67 75 6d h(preg_split('/([%"])/i',.$argum
90740 65 6e 74 2c 20 2d 31 2c 20 50 52 45 47 5f 53 50 4c 49 54 5f 4e 4f 5f 45 4d 50 54 59 20 7c 20 50 ent,.-1,.PREG_SPLIT_NO_EMPTY.|.P
90760 52 45 47 5f 53 50 4c 49 54 5f 44 45 4c 49 4d 5f 43 41 50 54 55 52 45 29 20 61 73 20 24 70 61 72 REG_SPLIT_DELIM_CAPTURE).as.$par
90780 74 29 20 7b 0a 69 66 20 28 27 22 27 20 3d 3d 20 24 70 61 72 74 29 20 7b 0a 24 65 73 63 61 70 65 t).{.if.('"'.==.$part).{.$escape
907a0 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 27 5c 5c 22 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 25 dArgument..=.'\\"';.}.elseif.('%
907c0 27 20 3d 3d 20 24 70 61 72 74 29 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e '.==.$part).{.$escapedArgument..
907e0 3d 20 27 5e 25 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e =.'^%';.}.else.{.$escapedArgumen
90800 74 20 2e 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 72 74 29 3b 0a 7d 0a 7d 0a t..=.escapeshellarg($part);.}.}.
90820 0a 72 65 74 75 72 6e 20 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 72 65 74 .return.$escapedArgument;.}..ret
90840 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d urn.escapeshellarg($argument);.}
90860 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 6d .}.<?php...........namespace.Sym
90880 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 65 70 74 69 6f 6e fony\Component\Process\Exception
908a0 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 ;.......interface.ExceptionInter
908c0 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
908e0 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
90900 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 eption;.......class.RuntimeExcep
90920 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 tion.extends.\RuntimeException.i
90940 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d mplements.ExceptionInterface.{.}
90960 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
90980 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a ny\Component\Process\Exception;.
909a0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e ......class.LogicException.exten
909c0 64 73 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 ds.\LogicException.implements.Ex
909e0 63 65 70 74 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 ceptionInterface.{.}.<?php......
90a00 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
90a20 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 \Process\Exception;..use.Symfony
90a40 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 0a 0a 0a \Component\Process\Process;.....
90a60 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 20 65 ..class.ProcessFailedException.e
90a80 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 xtends.RuntimeException.{.privat
90aa0 65 20 24 70 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 e.$process;..public.function.__c
90ac0 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 29 0a 7b 0a 69 66 20 onstruct(Process.$process).{.if.
90ae0 28 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 74 68 72 ($process->isSuccessful()).{.thr
90b00 6f 77 20 6e 65 77 20 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 ow.new.InvalidArgumentException(
90b20 27 45 78 70 65 63 74 65 64 20 61 20 66 61 69 6c 65 64 20 70 72 6f 63 65 73 73 2c 20 62 75 74 20 'Expected.a.failed.process,.but.
90b40 74 68 65 20 67 69 76 65 6e 20 70 72 6f 63 65 73 73 20 77 61 73 20 73 75 63 63 65 73 73 66 75 6c the.given.process.was.successful
90b60 2e 27 29 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 0a 73 70 72 .');.}..parent::__construct(.spr
90b80 69 6e 74 66 28 0a 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 22 25 73 22 20 66 61 69 6c 65 64 2e 27 intf(.'The.command."%s".failed.'
90ba0 2e 22 5c 6e 45 78 69 74 20 43 6f 64 65 3a 20 25 73 28 25 73 29 5c 6e 5c 6e 4f 75 74 70 75 74 3a ."\nExit.Code:.%s(%s)\n\nOutput:
90bc0 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 5c 6e 5c 6e 45 72 72 6f 72 20 \n================\n%s\n\nError.
90be0 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 22 2c 0a Output:\n================\n%s",.
90c00 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 2c 0a 24 70 72 6f $process->getCommandLine(),.$pro
90c20 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 cess->getExitCode(),.$process->g
90c40 65 74 45 78 69 74 43 6f 64 65 54 65 78 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f etExitCodeText(),.$process->getO
90c60 75 74 70 75 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 utput(),.$process->getErrorOutpu
90c80 74 28 29 0a 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 t().).);..$this->process.=.$proc
90ca0 65 73 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 ess;.}..public.function.getProce
90cc0 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 3b 0a 7d 0a ss().{.return.$this->process;.}.
90ce0 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
90d00 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 65 70 74 69 6f 6e 3b ony\Component\Process\Exception;
90d20 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 .......class.InvalidArgumentExce
90d40 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ption.extends.\InvalidArgumentEx
90d60 63 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 ception.implements.ExceptionInte
90d80 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 0a 6e 61 6d 65 73 70 rface.{.}.<?php...........namesp
90da0 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 0a ace.Symfony\Component\Process;..
90dc0 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 0a ......class.PhpExecutableFinder.
90de0 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 75 {.private.$executableFinder;..pu
90e00 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 74 blic.function.__construct().{.$t
90e20 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 63 his->executableFinder.=.new.Exec
90e40 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 66 utableFinder();.}.......public.f
90e60 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 27 unction.find().{...if.(defined('
90e80 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 27 PHP_BINARY').&&.PHP_BINARY.&&.('
90ea0 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 50 cli'.===.PHP_SAPI)).{.return.PHP
90ec0 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 50 _BINARY;.}..if.($php.=.getenv('P
90ee0 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 28 HP_PATH')).{.if.(!is_executable(
90f00 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 6e $php)).{.return.false;.}..return
90f20 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 50 .$php;.}..if.($php.=.getenv('PHP
90f40 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 74 _PEAR_PHP_BIN')).{.if.(is_execut
90f60 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 0a able($php)).{.return.$php;.}.}..
90f80 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 64 $dirs.=.array(PHP_BINDIR);.if.(d
90fa0 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 4c efined('PHP_WINDOWS_VERSION_BUIL
90fc0 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 5c D')).{.$dirs[].=.'C:\xampp\php\\
90fe0 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 69 ';.}..return.$this->executableFi
91000 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 3b nder->find('php',.false,.$dirs);
91020 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
91040 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
91060 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
91080 5c 48 65 6c 70 65 72 5c 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 \Helper\DescriptorHelper;.use.Sy
910a0 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 6e mfony\Component\Console\Input\In
910c0 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 6e 65 putArgument;.use.Symfony\Compone
910e0 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
91100 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
91120 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
91140 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 74 mponent\Console\Output\OutputInt
91160 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 20 erface;.......class.HelpCommand.
91180 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 24 63 6f 6d 6d 61 extends.Command.{.private.$comma
911a0 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 20 63 6f 6e 66 69 nd;.....protected.function.confi
911c0 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 64 61 74 69 6f 6e gure().{.$this->ignoreValidation
911e0 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 28 27 68 65 6c 70 Errors();..$this.->setName('help
91200 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 20 49 6e ').->setDefinition(array(.new.In
91220 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 2c 20 49 6e 70 75 putArgument('command_name',.Inpu
91240 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 63 6f 6d 6d 61 6e tArgument::OPTIONAL,.'The.comman
91260 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 74 4f 70 74 69 6f d.name',.'help'),.new.InputOptio
91280 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 3a 3a 56 41 4c 55 n('xml',.null,.InputOption::VALU
912a0 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 20 58 4d 4c 27 29 E_NONE,.'To.output.help.as.XML')
912c0 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 6e 75 6c 6c ,.new.InputOption('format',.null
912e0 2c 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 20 27 ,.InputOption::VALUE_REQUIRED,.'
91300 54 6f 20 6f 75 74 70 75 74 20 68 65 6c 70 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 27 To.output.help.in.other.formats'
91320 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 2c 20 6e 75 6c 6c 2c 20 ),.new.InputOption('raw',.null,.
91340 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 54 6f 20 6f 75 74 InputOption::VALUE_NONE,.'To.out
91360 70 75 74 20 72 61 77 20 63 6f 6d 6d 61 6e 64 20 68 65 6c 70 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 put.raw.command.help'),.)).->set
91380 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 Description('Displays.help.for.a
913a0 20 63 6f 6d 6d 61 6e 64 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 .command').->setHelp(<<<EOF.The.
913c0 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d <info>%command.name%</info>.comm
913e0 61 6e 64 20 64 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 67 69 76 65 6e 20 63 6f and.displays.help.for.a.given.co
91400 6d 6d 61 6e 64 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c mmand:....<info>php.%command.ful
91420 6c 5f 6e 61 6d 65 25 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 l_name%.list</info>..You.can.als
91440 6f 20 6f 75 74 70 75 74 20 74 68 65 20 68 65 6c 70 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 o.output.the.help.in.other.forma
91460 74 73 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d 61 ts.by.using.the.<comment>--forma
91480 74 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 70 68 70 t</comment>.option:....<info>php
914a0 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 6d .%command.full_name%.--format=xm
914c0 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 6c 69 l.list</info>..To.display.the.li
914e0 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2c 20 70 6c 65 61 73 65 st.of.available.commands,.please
91500 20 75 73 65 20 74 68 65 20 3c 69 6e 66 6f 3e 6c 69 73 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 .use.the.<info>list</info>.comma
91520 6e 64 2e 0a 45 4f 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 nd..EOF.).;.}.......public.funct
91540 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 6d 6d 61 6e 64 29 ion.setCommand(Command.$command)
91560 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 6e 64 3b 0a 7d 0a .{.$this->command.=.$command;.}.
91580 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 63 75 74 65 28 49 ....protected.function.execute(I
915a0 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
915c0 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 3d 3d 3d 20 24 74 rface.$output).{.if.(null.===.$t
915e0 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 6d 61 6e 64 20 3d his->command).{.$this->command.=
91600 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 66 69 6e 64 28 24 .$this->getApplication()->find($
91620 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 5f 6e 61 6d 65 input->getArgument('command_name
91640 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 6f 6e 28 27 78 '));.}..if.($input->getOption('x
91660 6d 6c 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 ml')).{.$input->setOption('forma
91680 74 27 2c 20 27 78 6d 6c 27 29 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 20 3d 20 6e 65 77 20 44 65 73 t',.'xml');.}..$helper.=.new.Des
916a0 63 72 69 70 74 6f 72 48 65 6c 70 65 72 28 29 3b 0a 24 68 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 criptorHelper();.$helper->descri
916c0 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 be($output,.$this->command,.$inp
916e0 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 2c 20 24 69 6e 70 75 74 2d ut->getOption('format'),.$input-
91700 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 >getOption('raw'));.$this->comma
91720 6e 64 20 3d 20 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 6e nd.=.null;.}.}.<?php...........n
91740 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 6f amespace.Symfony\Component\Conso
91760 6c 65 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 le\Command;..use.Symfony\Compone
91780 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 nt\Console\Descriptor\TextDescri
917a0 70 74 6f 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 6e 73 ptor;.use.Symfony\Component\Cons
917c0 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 ole\Descriptor\XmlDescriptor;.us
917e0 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
91800 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\InputDefinition;.use.Symfony\C
91820 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 4f 70 74 69 omponent\Console\Input\InputOpti
91840 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 6e 73 6f 6c on;.use.Symfony\Component\Consol
91860 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
91880 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
918a0 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
918c0 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 3b \Console\Output\OutputInterface;
918e0 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 41 .use.Symfony\Component\Console\A
91900 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 6e pplication;.use.Symfony\Componen
91920 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 0a 0a 0a 0a t\Console\Helper\HelperSet;.....
91940 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 ....class.Command.{.private.$app
91960 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 lication;.private.$name;.private
91980 20 24 61 6c 69 61 73 65 73 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a .$aliases;.private.$definition;.
919a0 70 72 69 76 61 74 65 20 24 68 65 6c 70 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 private.$help;.private.$descript
919c0 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 ion;.private.$ignoreValidationEr
919e0 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 rors;.private.$applicationDefini
91a00 74 69 6f 6e 4d 65 72 67 65 64 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e tionMerged;.private.$application
91a20 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 3b 0a 70 72 69 76 61 74 DefinitionMergedWithArgs;.privat
91a40 65 20 24 63 6f 64 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 e.$code;.private.$synopsis;.priv
91a60 61 74 65 20 24 68 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 ate.$helperSet;...........public
91a80 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 20 3d 20 6e 75 .function.__construct($name.=.nu
91aa0 6c 6c 29 0a 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 20 49 6e ll).{.$this->definition.=.new.In
91ac0 70 75 74 44 65 66 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 putDefinition();.$this->ignoreVa
91ae0 6c 69 64 61 74 69 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 lidationErrors.=.false;.$this->a
91b00 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 61 6c pplicationDefinitionMerged.=.fal
91b20 73 65 3b 0a 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 6f 6e se;.$this->applicationDefinition
91b40 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 MergedWithArgs.=.false;.$this->a
91b60 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 6c 20 21 3d 3d 20 liases.=.array();..if.(null.!==.
91b80 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 61 6d 65 29 3b 0a $name).{.$this->setName($name);.
91ba0 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 20 28 21 24 74 68 }..$this->configure();..if.(!$th
91bc0 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 69 63 45 78 63 65 is->name).{.throw.new.\LogicExce
91be0 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 6e 6e 6f 74 20 62 ption('The.command.name.cannot.b
91c00 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 69 63 20 66 75 6e e.empty.');.}.}.......public.fun
91c20 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 72 73 28 29 0a 7b ction.ignoreValidationErrors().{
91c40 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 72 6f 72 73 20 3d .$this->ignoreValidationErrors.=
91c60 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 6e 63 74 69 6f 6e .true;.}.........public.function
91c80 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 6e 20 24 61 70 70 .setApplication(Application.$app
91ca0 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 61 70 70 6c 69 63 lication.=.null).{.$this->applic
91cc0 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 24 61 70 70 6c 69 ation.=.$application;.if.($appli
91ce0 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 53 65 74 28 24 61 cation).{.$this->setHelperSet($a
91d00 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 29 3b 0a 7d 20 65 pplication->getHelperSet());.}.e
91d20 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 75 6c 6c 3b 0a 7d lse.{.$this->helperSet.=.null;.}
91d40 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 65 6c 70 .}.......public.function.setHelp
91d60 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 29 0a 7b 0a 24 74 erSet(HelperSet.$helperSet).{.$t
91d80 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 74 3b 0a 7d 0a 0a his->helperSet.=.$helperSet;.}..
91da0 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 6c 70 65 72 53 65 .....public.function.getHelperSe
91dc0 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 53 65 74 3b 0a 7d t().{.return.$this->helperSet;.}
91de0 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 70 70 6c .........public.function.getAppl
91e00 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 61 70 70 6c 69 63 ication().{.return.$this->applic
91e20 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 75 6e 63 74 69 6f ation;.}..........public.functio
91e40 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 65 3b 0a 7d 0a 0a n.isEnabled().{.return.true;.}..
91e60 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 69 67 75 72 65 28 ...protected.function.configure(
91e80 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 74 65 63 74 65 64 ).{.}..................protected
91ea0 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 65 .function.execute(InputInterface
91ec0 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 74 .$input,.OutputInterface.$output
91ee0 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 69 6f 6e 28 27 59 ).{.throw.new.\LogicException('Y
91f00 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 74 65 28 29 20 6d ou.must.override.the.execute().m
91f20 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 61 6e 64 20 63 6c ethod.in.the.concrete.command.cl
91f40 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 20 66 75 6e 63 74 ass.');.}........protected.funct
91f60 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 65 20 24 69 6e 70 ion.interact(InputInterface.$inp
91f80 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 0a 7d ut,.OutputInterface.$output).{.}
91fa0 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 69 6e ...........protected.function.in
91fc0 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 6e 70 75 74 2c 20 itialize(InputInterface.$input,.
91fe0 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 7d 0a 0a 0a 0a OutputInterface.$output).{.}....
92000 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 6e .................public.function
92020 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 4f 75 74 70 .run(InputInterface.$input,.Outp
92040 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 69 73 2d 3e utInterface.$output).{...$this->
92060 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 67 65 41 70 getSynopsis();....$this->mergeAp
92080 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 79 20 7b 0a plicationDefinition();....try.{.
920a0 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 6f 6e 29 3b $input->bind($this->definition);
920c0 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 21 .}.catch.(\Exception.$e).{.if.(!
920e0 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 73 29 20 7b $this->ignoreValidationErrors).{
92100 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 61 6c 69 7a .throw.$e;.}.}..$this->initializ
92120 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 70 75 74 2d e($input,.$output);..if.($input-
92140 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 6e 74 65 72 >isInteractive()).{.$this->inter
92160 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 70 75 74 2d act($input,.$output);.}..$input-
92180 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 65 29 20 7b >validate();..if.($this->code).{
921a0 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 74 .$statusCode.=.call_user_func($t
921c0 68 69 73 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 20 65 his->code,.$input,.$output);.}.e
921e0 6c 73 65 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 lse.{.$statusCode.=.$this->execu
92200 74 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 te($input,.$output);.}..return.i
92220 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 24 73 74 61 74 75 73 s_numeric($statusCode).?.$status
92240 43 6f 64 65 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 Code.:.0;.}..................pub
92260 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 64 65 28 24 63 6f 64 65 29 0a 7b 0a 69 66 lic.function.setCode($code).{.if
92280 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 6f 64 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e .(!is_callable($code)).{.throw.n
922a0 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 6e ew.\InvalidArgumentException('In
922c0 76 61 6c 69 64 20 63 61 6c 6c 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 6f 20 43 6f 6d 6d 61 valid.callable.provided.to.Comma
922e0 6e 64 3a 3a 73 65 74 43 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 64 65 20 3d nd::setCode.');.}..$this->code.=
92300 20 24 63 6f 64 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 .$code;..return.$this;.}........
92320 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f .public.function.mergeApplicatio
92340 6e 44 65 66 69 6e 69 74 69 6f 6e 28 24 6d 65 72 67 65 41 72 67 73 20 3d 20 74 72 75 65 29 0a 7b nDefinition($mergeArgs.=.true).{
92360 0a 69 66 20 28 6e 75 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 .if.(null.===.$this->application
92380 20 7c 7c 20 28 74 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e .||.(true.===.$this->application
923a0 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 26 26 20 28 24 74 68 69 73 2d 3e 61 70 70 6c DefinitionMerged.&&.($this->appl
923c0 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 20 icationDefinitionMergedWithArgs.
923e0 7c 7c 20 21 24 6d 65 72 67 65 41 72 67 73 29 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 ||.!$mergeArgs))).{.return;.}..i
92400 66 20 28 24 6d 65 72 67 65 41 72 67 73 29 20 7b 0a 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e f.($mergeArgs).{.$currentArgumen
92420 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 74 41 72 67 75 6d ts.=.$this->definition->getArgum
92440 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 3e 73 65 74 41 72 ents();.$this->definition->setAr
92460 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 2d 3e 67 65 74 44 guments($this->application->getD
92480 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 29 29 3b 0a 24 74 efinition()->getArguments());.$t
924a0 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 6e 74 73 28 24 63 his->definition->addArguments($c
924c0 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 69 urrentArguments);.}..$this->defi
924e0 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 70 6c 69 63 nition->addOptions($this->applic
92500 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 70 74 69 6f ation->getDefinition()->getOptio
92520 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 66 69 6e 69 ns());..$this->applicationDefini
92540 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 6d 65 72 67 65 41 72 67 tionMerged.=.true;.if.($mergeArg
92560 73 29 20 7b 0a 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 6f s).{.$this->applicationDefinitio
92580 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a nMergedWithArgs.=.true;.}.}.....
925a0 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 66 69 6e 69 74 ......public.function.setDefinit
925c0 69 6f 6e 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 ion($definition).{.if.($definiti
925e0 6f 6e 20 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 on.instanceof.InputDefinition).{
92600 0a 24 74 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 .$this->definition.=.$definition
92620 3b 0a 7d 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 ;.}.else.{.$this->definition->se
92640 74 44 65 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 tDefinition($definition);.}..$th
92660 69 73 2d 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 is->applicationDefinitionMerged.
92680 3d 20 66 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 =.false;..return.$this;.}.......
926a0 0a 0a 70 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 ..public.function.getDefinition(
926c0 29 0a 7b 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 ).{.return.$this->definition;.}.
926e0 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 4e 61 ...........public.function.getNa
92700 74 69 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 tiveDefinition().{.return.$this-
92720 3e 67 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 >getDefinition();.}.............
92740 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 6e 74 28 24 6e 61 .public.function.addArgument($na
92760 6d 65 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 me,.$mode.=.null,.$description.=
92780 20 27 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 .'',.$default.=.null).{.$this->d
927a0 65 66 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 efinition->addArgument(new.Input
927c0 41 72 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 Argument($name,.$mode,.$descript
927e0 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 69 73 3b 0a ion,.$default));..return.$this;.
92800 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 69 6f 6e 20 }...............public.function.
92820 61 64 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 addOption($name,.$shortcut.=.nul
92840 6c 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 l,.$mode.=.null,.$description.=.
92860 27 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 '',.$default.=.null).{.$this->de
92880 66 69 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 finition->addOption(new.InputOpt
928a0 69 6f 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 ion($name,.$shortcut,.$mode,.$de
928c0 73 63 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 scription,.$default));..return.$
928e0 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 70 75 62 6c 69 63 20 this;.}..................public.
92900 66 75 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 function.setName($name).{.$this-
92920 3e 76 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 >validateName($name);..$this->na
92940 6d 65 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 me.=.$name;..return.$this;.}....
92960 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 7b .....public.function.getName().{
92980 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 0a 0a 0a .return.$this->name;.}..........
929a0 0a 70 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 .public.function.setDescription(
929c0 24 64 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 $description).{.$this->descripti
929e0 6f 6e 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 on.=.$description;..return.$this
92a00 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 65 74 44 ;.}.........public.function.getD
92a20 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 73 escription().{.return.$this->des
92a40 63 72 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 cription;.}...........public.fun
92a60 63 74 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 ction.setHelp($help).{.$this->he
92a80 6c 70 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 lp.=.$help;..return.$this;.}....
92aa0 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 6c 70 28 29 0a 7b .....public.function.getHelp().{
92ac0 0a 72 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 .return.$this->help;.}........pu
92ae0 62 6c 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 blic.function.getProcessedHelp()
92b00 0a 7b 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 .{.$name.=.$this->name;..$placeh
92b20 6f 6c 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 olders.=.array(.'%command.name%'
92b40 2c 0a 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 ,.'%command.full_name%'.);.$repl
92b60 61 63 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 acements.=.array(.$name,.$_SERVE
92b80 52 5b 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 R['PHP_SELF'].'.'.$name.);..retu
92ba0 72 6e 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 rn.str_replace($placeholders,.$r
92bc0 65 70 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 eplacements,.$this->getHelp());.
92be0 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 74 41 }...........public.function.setA
92c00 6c 69 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 liases($aliases).{.foreach.($ali
92c20 61 73 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 ases.as.$alias).{.$this->validat
92c40 65 4e 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 eName($alias);.}..$this->aliases
92c60 20 3d 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 .=.$aliases;..return.$this;.}...
92c80 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 65 73 ......public.function.getAliases
92ca0 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 73 3b 0a 7d 0a 0a 0a ().{.return.$this->aliases;.}...
92cc0 0a 0a 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 ....public.function.getSynopsis(
92ce0 29 0a 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 ).{.if.(null.===.$this->synopsis
92d00 29 20 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 ).{.$this->synopsis.=.trim(sprin
92d20 74 66 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 tf('%s.%s',.$this->name,.$this->
92d40 64 65 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 definition->getSynopsis()));.}..
92d60 72 65 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 return.$this->synopsis;.}.......
92d80 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 6c 70 65 72 28 ......public.function.getHelper(
92da0 24 6e 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 $name).{.return.$this->helperSet
92dc0 2d 3e 67 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ->get($name);.}.........public.f
92de0 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d unction.asText().{.$descriptor.=
92e00 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 .new.TextDescriptor();..return.$
92e20 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 29 3b 0a 7d 0a 0a descriptor->describe($this);.}..
92e40 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 73 58 6d 6c 28 24 .........public.function.asXml($
92e60 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e asDom.=.false).{.$descriptor.=.n
92e80 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 ew.XmlDescriptor();..return.$des
92ea0 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 criptor->describe($this,.array('
92ec0 61 73 5f 64 6f 6d 27 20 3d 3e 20 24 61 73 44 6f 6d 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 as_dom'.=>.$asDom));.}..private.
92ee0 66 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 function.validateName($name).{.i
92f00 66 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 f.(!preg_match('/^[^\:]+(\:[^\:]
92f20 2b 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 +)*$/',.$name)).{.throw.new.\Inv
92f40 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 43 alidArgumentException(sprintf('C
92f60 6f 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 ommand.name."%s".is.invalid.',.$
92f80 6e 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 name));.}.}.}.<?php...........na
92fa0 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 6f 6c mespace.Symfony\Component\Consol
92fc0 65 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 e\Command;..use.Symfony\Componen
92fe0 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 t\Console\Helper\DescriptorHelpe
93000 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 6e 73 6f 6c 65 r;.use.Symfony\Component\Console
93020 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 6e \Input\InputArgument;.use.Symfon
93040 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 4f y\Component\Console\Input\InputO
93060 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 6e ption;.use.Symfony\Component\Con
93080 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
930a0 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 5c ymfony\Component\Console\Output\
930c0 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 6d OutputInterface;.use.Symfony\Com
930e0 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 66 69 6e 69 ponent\Console\Input\InputDefini
93100 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 64 20 65 78 tion;.......class.ListCommand.ex
93120 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 20 66 75 6e tends.Command.{....protected.fun
93140 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 73 65 74 4e ction.configure().{.$this.->setN
93160 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 24 74 68 69 ame('list').->setDefinition($thi
93180 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 44 65 73 63 s->createDefinition()).->setDesc
931a0 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 73 65 74 48 ription('Lists.commands').->setH
931c0 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 61 elp(<<<EOF.The.<info>%command.na
931e0 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 20 63 6f 6d me%</info>.command.lists.all.com
93200 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 2e 66 75 6c mands:....<info>php.%command.ful
93220 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 20 64 69 73 l_name%</info>..You.can.also.dis
93240 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 69 66 69 63 play.the.commands.for.a.specific
93260 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 6d 6d 61 6e .namespace:....<info>php.%comman
93280 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 75 20 63 61 d.full_name%.test</info>..You.ca
932a0 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 6e 20 69 6e n.also.output.the.information.in
932c0 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d .other.formats.by.using.the.<com
932e0 6d 65 6e 74 3e 2d 2d 66 6f 72 6d 61 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a ment>--format</comment>.option:.
93300 0a 20 20 3c 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 ...<info>php.%command.full_name%
93320 20 2d 2d 66 6f 72 6d 61 74 3d 78 6d 6c 3c 2f 69 6e 66 6f 3e 0a 0a 49 74 27 73 20 61 6c 73 6f 20 .--format=xml</info>..It's.also.
93340 70 6f 73 73 69 62 6c 65 20 74 6f 20 67 65 74 20 72 61 77 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d possible.to.get.raw.list.of.comm
93360 61 6e 64 73 20 28 75 73 65 66 75 6c 20 66 6f 72 20 65 6d 62 65 64 64 69 6e 67 20 63 6f 6d 6d 61 ands.(useful.for.embedding.comma
93380 6e 64 20 72 75 6e 6e 65 72 29 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e nd.runner):....<info>php.%comman
933a0 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 72 61 77 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 0a d.full_name%.--raw</info>.EOF.).
933c0 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 74 69 76 ;.}.....public.function.getNativ
933e0 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 63 72 eDefinition().{.return.$this->cr
93400 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 eateDefinition();.}.....protecte
93420 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
93440 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
93460 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 t).{.if.($input->getOption('xml'
93480 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c )).{.$input->setOption('format',
934a0 20 27 78 6d 6c 27 29 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 20 3d 20 6e 65 77 20 44 65 73 63 72 69 .'xml');.}..$helper.=.new.Descri
934c0 70 74 6f 72 48 65 6c 70 65 72 28 29 3b 0a 24 68 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 62 65 28 ptorHelper();.$helper->describe(
934e0 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 $output,.$this->getApplication()
93500 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 2c 20 24 ,.$input->getOption('format'),.$
93520 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a input->getOption('raw'));.}.....
93540 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 69 6e 69 74 69 6f private.function.createDefinitio
93560 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 6e 69 74 69 6f 6e n().{.return.new.InputDefinition
93580 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 27 6e 61 6d 65 73 (array(.new.InputArgument('names
935a0 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 4f 4e 41 4c 2c 20 pace',.InputArgument::OPTIONAL,.
935c0 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 20 49 6e 70 75 74 'The.namespace.name'),.new.Input
935e0 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 3a Option('xml',.null,.InputOption:
93600 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 6c 69 73 74 20 61 73 20 :VALUE_NONE,.'To.output.list.as.
93620 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 77 27 2c 20 6e 75 XML'),.new.InputOption('raw',.nu
93640 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 54 6f ll,.InputOption::VALUE_NONE,.'To
93660 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 2c 0a 6e 65 77 20 .output.raw.command.list'),.new.
93680 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 InputOption('format',.null,.Inpu
936a0 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 54 6f 20 6f 75 74 tOption::VALUE_REQUIRED,.'To.out
936c0 70 75 74 20 6c 69 73 74 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 27 29 2c 0a 29 29 3b put.list.in.other.formats'),.));
936e0 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
93700 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 73 74 65 72 3b ymfony\Component\Console\Tester;
93720 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\
93740 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
93760 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 3b 0a 75 73 65 nt\Console\Input\ArrayInput;.use
93780 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
937a0 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
937c0 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
937e0 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
93800 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 0a 0a 0a 0a 0a sole\Output\StreamOutput;.......
93820 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
93840 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
93860 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
93880 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
938a0 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
938c0 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;.}........
938e0 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
93900 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()).{.
93920 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
93940 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
93960 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
93980 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'
939a0 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
939c0 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
939e0 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['
93a00 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
93a20 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'
93a40 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
93a60 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
93a80 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']);.}.
93aa0 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(
93ac0 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);.}.
93ae0 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 69 73 70 6c ........public.function.getDispl
93b00 61 79 28 24 6e 6f 72 6d 61 6c 69 7a 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 72 65 77 69 6e 64 28 ay($normalize.=.false).{.rewind(
93b20 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 3b 0a 0a 24 64 $this->output->getStream());..$d
93b40 69 73 70 6c 61 79 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 isplay.=.stream_get_contents($th
93b60 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 0a 69 66 20 28 24 is->output->getStream());..if.($
93b80 6e 6f 72 6d 61 6c 69 7a 65 29 20 7b 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 5f 72 65 70 6c normalize).{.$display.=.str_repl
93ba0 61 63 65 28 50 48 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 24 64 69 73 70 6c 61 79 29 3b 0a 7d 0a ace(PHP_EOL,."\n",.$display);.}.
93bc0 0a 72 65 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .return.$display;.}.......public
93be0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 .function.getInput().{.return.$t
93c00 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 his->input;.}.......public.funct
93c20 69 6f 6e 20 67 65 74 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 ion.getOutput().{.return.$this->
93c40 6f 75 74 70 75 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 output;.}.}.<?php...........name
93c60 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 5c space.Symfony\Component\Console\
93c80 54 65 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 Tester;..use.Symfony\Component\C
93ca0 6f 6e 73 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 onsole\Command\Command;.use.Symf
93cc0 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 41 72 72 61 ony\Component\Console\Input\Arra
93ce0 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 65 6e 74 5c 43 6f yInput;.use.Symfony\Component\Co
93d00 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 0a 0a 0a 0a nsole\Output\StreamOutput;......
93d20 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 .class.CommandTester.{.private.$
93d40 63 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 command;.private.$input;.private
93d60 20 24 6f 75 74 70 75 74 3b 0a 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.
93d80 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a __construct(Command.$command).{.
93da0 24 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 $this->command.=.$command;.}....
93dc0 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 65 78 65 63 ............public.function.exec
93de0 75 74 65 28 61 72 72 61 79 20 24 69 6e 70 75 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 ute(array.$input,.array.$options
93e00 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 65 77 .=.array()).{.$this->input.=.new
93e20 20 41 72 72 61 79 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 .ArrayInput($input);.if.(isset($
93e40 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 options['interactive'])).{.$this
93e60 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 6f 70 74 69 6f 6e 73 ->input->setInteractive($options
93e80 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 ['interactive']);.}..$this->outp
93ea0 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 ut.=.new.StreamOutput(fopen('php
93ec0 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 28 69 73 ://memory',.'w',.false));.if.(is
93ee0 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 29 20 7b 0a 24 74 set($options['decorated'])).{.$t
93f00 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 6f 70 74 69 6f his->output->setDecorated($optio
93f20 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f ns['decorated']);.}.if.(isset($o
93f40 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f ptions['verbosity'])).{.$this->o
93f60 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 utput->setVerbosity($options['ve
93f80 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d rbosity']);.}..return.$this->com
93fa0 6d 61 6e 64 2d 3e 72 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 6f mand->run($this->input,.$this->o
93fc0 75 74 70 75 74 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 utput);.}.........public.functio
93fe0 6e 20 67 65 74 44 69 73 70 6c 61 79 28 24 6e 6f 72 6d 61 6c 69 7a 65 20 3d 20 66 61 6c 73 65 29 n.getDisplay($normalize.=.false)
94000 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 72 65 .{.rewind($this->output->getStre
94020 61 6d 28 29 29 3b 0a 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f am());..$display.=.stream_get_co
94040 6e 74 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 ntents($this->output->getStream(
94060 29 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 29 20 7b 0a 24 64 69 73 70 6c 61 79 20 ));..if.($normalize).{.$display.
94080 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 50 48 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 24 64 69 =.str_replace(PHP_EOL,."\n",.$di
940a0 73 70 6c 61 79 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 0a 0a 0a splay);.}..return.$display;.}...
940c0 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().{
940e0 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
94100 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
94120 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.....
94140 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
94160 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
94180 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
941a0 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
941c0 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.__
941e0 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
94200 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
94220 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.?:
94240 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
94260 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
94280 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
942a0 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
942c0 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
942e0 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
94300 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
94320 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
94340 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
94360 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
94380 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
943a0 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
943c0 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($
943e0 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.=>
94400 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
94420 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
94440 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
94460 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);..
94480 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
944a0 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('
944c0 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
944e0 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
94500 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
94520 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
94540 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
94560 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
94580 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
945a0 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
945c0 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
945e0 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
94600 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().{.
94620 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;.}.}.<?
94640 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\
94660 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;....
94680 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.
946a0 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
946c0 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
946e0 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
94700 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
94720 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'.
94740 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'.=
94760 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
94780 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
947a0 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'.=
947c0 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'.=>
947e0 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'.=>.
94800 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.
94820 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
94840 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
94860 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
94880 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
948a0 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
948c0 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
948e0 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.__
94900 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
94920 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
94940 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
94960 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($
94980 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
949a0 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(
949c0 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
949e0 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
94a00 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
94a20 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).{
94a40 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
94a60 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
94a80 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
94aa0 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
94ac0 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
94ae0 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
94b00 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.
94b20 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
94b40 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
94b60 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
94b80 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
94ba0 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];.}...........
94bc0 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
94be0 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
94c00 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;.
94c20 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::$
94c40 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
94c60 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
94c80 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
94ca0 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
94cc0 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
94ce0 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
94d00 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)).));.}
94d20 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
94d40 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]
94d60 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
94d80 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
94da0 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]
94dc0 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
94de0 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
94e00 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.
94e20 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(',.',
94e40 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
94e60 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
94e80 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
94ea0 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)).{
94ec0 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
94ee0 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];.}.}.....
94f00 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
94f20 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::$
94f40 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
94f60 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
94f80 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
94fa0 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)
94fc0 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_
94fe0 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))
95000 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
95020 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],.
95040 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.!==.$
95060 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
95080 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
950a0 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
950c0 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.($
950e0 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
95100 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
95120 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
95140 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
95160 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
95180 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
951a0 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
951c0 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
951e0 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
95200 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);.}.
95220 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 64 65 73 29 29 20 7b 0a 72 65 74 75 .if.(0.===.count($codes)).{.retu
95240 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5c 30 33 rn.$text;.}..return.sprintf("\03
95260 33 5b 25 73 6d 25 73 5c 30 33 33 5b 30 6d 22 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 2c 20 24 63 3[%sm%s\033[0m",.implode(';',.$c
95280 6f 64 65 73 29 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a odes),.$text);.}.}.<?php........
952a0 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
952c0 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 69 6e 74 65 72 66 onsole\Formatter;.........interf
952e0 61 63 65 20 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 ace.OutputFormatterStyleInterfac
95300 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 73 65 74 46 6f e.{........public.function.setFo
95320 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a reground($color.=.null);........
95340 0a 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 .public.function.setBackground($
95360 63 6f 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 color.=.null);.........public.fu
95380 6e 63 74 69 6f 6e 20 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 nction.setOption($option);......
953a0 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 28 24 6f 70 .public.function.unsetOption($op
953c0 74 69 6f 6e 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 73 65 74 tion);.......public.function.set
953e0 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a Options(array.$options);........
95400 0a 70 75 62 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 3b 0a 7d .public.function.apply($text);.}
95420 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
95440 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 3b 0a ny\Component\Console\Formatter;.
95460 0a 0a 0a 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 20 69 6d ........class.OutputFormatter.im
95480 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 plements.OutputFormatterInterfac
954a0 65 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 50 41 54 54 45 52 4e 20 3d 20 27 23 e.{....const.FORMAT_PATTERN.=.'#
954c0 28 5c 5c 5c 5c 3f 29 3c 28 2f 3f 29 28 5b 61 2d 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d 5d 2b 29 (\\\\?)<(/?)([a-z][a-z0-9_=;-]+)
954e0 3f 3e 28 28 3f 3a 20 5b 5e 3c 5c 5c 5c 5c 5d 2b 20 7c 20 28 3f 21 3c 28 3f 3a 2f 3f 5b 61 2d 7a ?>((?:.[^<\\\\]+.|.(?!<(?:/?[a-z
95500 5d 7c 2f 3e 29 29 2e 20 7c 20 2e 28 3f 3c 3d 5c 5c 5c 5c 3c 29 20 29 2a 29 23 69 73 78 27 3b 0a ]|/>))..|..(?<=\\\\<).)*)#isx';.
95520 0a 70 72 69 76 61 74 65 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 70 72 69 76 61 74 65 20 24 73 74 .private.$decorated;.private.$st
95540 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 53 74 yles.=.array();.private.$styleSt
95560 61 63 6b 3b 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 ack;.........public.static.funct
95580 69 6f 6e 20 65 73 63 61 70 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f ion.escape($text).{.return.preg_
955a0 72 65 70 6c 61 63 65 28 27 2f 28 5b 5e 5c 5c 5c 5c 5d 3f 29 3c 2f 69 73 27 2c 20 27 24 31 5c 5c replace('/([^\\\\]?)</is',.'$1\\
955c0 3c 27 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 <',.$text);.}..........public.fu
955e0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 63 6f 72 61 74 65 64 20 3d 20 nction.__construct($decorated.=.
95600 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b null,.array.$styles.=.array()).{
95620 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 64 .$this->decorated.=.(Boolean).$d
95640 65 63 6f 72 61 74 65 64 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 65 72 72 6f ecorated;..$this->setStyle('erro
95660 72 27 2c 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 27 77 68 r',.new.OutputFormatterStyle('wh
95680 69 74 65 27 2c 20 27 72 65 64 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 ite',.'red'));.$this->setStyle('
956a0 69 6e 66 6f 27 2c 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 info',.new.OutputFormatterStyle(
956c0 27 67 72 65 65 6e 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 63 6f 6d 6d 'green'));.$this->setStyle('comm
956e0 65 6e 74 27 2c 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 27 ent',.new.OutputFormatterStyle('
95700 79 65 6c 6c 6f 77 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 71 75 65 73 yellow'));.$this->setStyle('ques
95720 74 69 6f 6e 27 2c 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 tion',.new.OutputFormatterStyle(
95740 27 62 6c 61 63 6b 27 2c 20 27 63 79 61 6e 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 74 'black',.'cyan'));..foreach.($st
95760 79 6c 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 73 74 79 6c 65 29 20 7b 0a 24 74 68 69 73 yles.as.$name.=>.$style).{.$this
95780 2d 3e 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 24 74 ->setStyle($name,.$style);.}..$t
957a0 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d his->styleStack.=.new.OutputForm
957c0 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 atterStyleStack();.}.........pub
957e0 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 63 6f 72 lic.function.setDecorated($decor
95800 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 42 6f 6f 6c ated).{.$this->decorated.=.(Bool
95820 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ean).$decorated;.}.........publi
95840 63 20 66 75 6e 63 74 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 c.function.isDecorated().{.retur
95860 6e 20 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 n.$this->decorated;.}..........p
95880 75 62 6c 69 63 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 ublic.function.setStyle($name,.O
958a0 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 20 24 73 74 utputFormatterStyleInterface.$st
958c0 79 6c 65 29 0a 7b 0a 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 yle).{.$this->styles[strtolower(
958e0 24 6e 61 6d 65 29 5d 20 3d 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 $name)].=.$style;.}...........pu
95900 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a blic.function.hasStyle($name).{.
95920 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f return.isset($this->styles[strto
95940 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 lower($name)]);.}.............pu
95960 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a blic.function.getStyle($name).{.
95980 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 29 20 7b 0a 74 if.(!$this->hasStyle($name)).{.t
959a0 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
959c0 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 64 65 66 69 6e 65 64 20 73 74 79 6c 65 3a 20 25 73 27 on(sprintf('Undefined.style:.%s'
959e0 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c ,.$name));.}..return.$this->styl
95a00 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 0a 0a es[strtolower($name)];.}........
95a20 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 73 61 ...public.function.format($messa
95a40 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 63 61 ge).{.$message.=.preg_replace_ca
95a60 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 72 72 llback(self::FORMAT_PATTERN,.arr
95a80 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 73 73 ay($this,.'replaceStyle'),.$mess
95aa0 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 27 2c age);..return.str_replace('\\<',
95ac0 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 66 75 .'<',.$message);.}.....public.fu
95ae0 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 6e 20 nction.getStyleStack().{.return.
95b00 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 72 69 $this->styleStack;.}.........pri
95b20 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 74 63 vate.function.replaceStyle($matc
95b40 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 20 7b h).{...if.('\\'.===.$match[1]).{
95b60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 .return.$this->applyCurrentStyle
95b80 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 6d 61 74 63 ($match[0]);.}..if.(''.===.$matc
95ba0 68 5b 33 5d 29 20 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 32 5d 29 20 7b h[3]).{.if.('/'.===.$match[2]).{
95bc0 0a 0a 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 29 3b 0a 0a 72 65 ...$this->styleStack->pop();..re
95be0 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d turn.$this->applyCurrentStyle($m
95c00 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 74 68 69 73 atch[4]);.}....return.'<>'.$this
95c20 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 34 5d 29 3b 0a ->applyCurrentStyle($match[4]);.
95c40 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f }..if.(isset($this->styles[strto
95c60 6c 6f 77 65 72 28 24 6d 61 74 63 68 5b 33 5d 29 5d 29 29 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 lower($match[3])])).{.$style.=.$
95c80 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 5b 33 this->styles[strtolower($match[3
95ca0 5d 29 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 ])];.}.else.{.$style.=.$this->cr
95cc0 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 6d 61 74 63 68 5b 33 5d 29 3b 0a eateStyleFromString($match[3]);.
95ce0 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 .if.(false.===.$style).{.return.
95d00 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b $this->applyCurrentStyle($match[
95d20 30 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 32 5d 29 0]);.}.}..if.('/'.===.$match[2])
95d40 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 24 73 74 79 6c 65 .{.$this->styleStack->pop($style
95d60 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 );.}.else.{.$this->styleStack->p
95d80 75 73 68 28 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 ush($style);.}..return.$this->ap
95da0 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 34 5d 29 3b 0a 7d 0a 0a 0a plyCurrentStyle($match[4]);.}...
95dc0 0a 0a 0a 0a 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 53 74 79 ......private.function.createSty
95de0 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 70 72 65 leFromString($string).{.if.(!pre
95e00 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 28 5b 5e 3d 5d 2b 29 3d 28 5b 5e 3b 5d 2b 29 28 3b 7c g_match_all('/([^=]+)=([^;]+)(;|
95e20 24 29 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 72 69 6e 67 29 2c 20 24 6d 61 74 63 $)/',.strtolower($string),.$matc
95e40 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 hes,.PREG_SET_ORDER)).{.return.f
95e60 61 6c 73 65 3b 0a 7d 0a 0a 24 73 74 79 6c 65 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d alse;.}..$style.=.new.OutputForm
95e80 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 atterStyle();.foreach.($matches.
95ea0 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 6d 61 74 63 68 29 as.$match).{.array_shift($match)
95ec0 3b 0a 0a 69 66 20 28 27 66 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 ;..if.('fg'.==.$match[0]).{.$sty
95ee0 6c 65 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 le->setForeground($match[1]);.}.
95f00 65 6c 73 65 69 66 20 28 27 62 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 elseif.('bg'.==.$match[0]).{.$st
95f20 79 6c 65 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d yle->setBackground($match[1]);.}
95f40 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6d 61 74 63 68 .else.{.$style->setOption($match
95f60 5b 31 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a [1]);.}.}..return.$style;.}.....
95f80 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 43 75 72 72 65 6e ....private.function.applyCurren
95fa0 74 53 74 79 6c 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 tStyle($text).{.return.$this->is
95fc0 44 65 63 6f 72 61 74 65 64 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 74 65 78 74 29 20 3e 20 30 Decorated().&&.strlen($text).>.0
95fe0 20 3f 20 24 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 .?.$this->styleStack->getCurrent
96000 28 29 2d 3e 61 70 70 6c 79 28 24 74 65 78 74 29 20 3a 20 24 74 65 78 74 3b 0a 7d 0a 7d 0a 3c 3f ()->apply($text).:.$text;.}.}.<?
96020 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\
96040 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;....
96060 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e .....interface.OutputFormatterIn
96080 74 65 72 66 61 63 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 terface.{........public.function
960a0 20 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 0a 0a 0a 0a 0a .setDecorated($decorated);......
960c0 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 64 28 29 ...public.function.isDecorated()
960e0 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 65 74 53 74 ;..........public.function.setSt
96100 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 65 49 yle($name,.OutputFormatterStyleI
96120 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c nterface.$style);...........publ
96140 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a ic.function.hasStyle($name);....
96160 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 79 6c 65 28 .......public.function.getStyle(
96180 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 63 74 69 6f $name);...........public.functio
961a0 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a n.format($message);.}.<?php.....
961c0 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
961e0 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e t\Console;..use.Symfony\Componen
96200 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 t\Console\Descriptor\TextDescrip
96220 74 6f 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 6e 73 6f tor;.use.Symfony\Component\Conso
96240 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 le\Descriptor\XmlDescriptor;.use
96260 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
96280 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
962a0 70 6f 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 ponent\Console\Input\ArgvInput;.
962c0 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 6e use.Symfony\Component\Console\In
962e0 70 75 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 put\ArrayInput;.use.Symfony\Comp
96300 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 66 69 6e 69 74 onent\Console\Input\InputDefinit
96320 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 6e 73 6f ion;.use.Symfony\Component\Conso
96340 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 66 6f 6e le\Input\InputOption;.use.Symfon
96360 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 41 y\Component\Console\Input\InputA
96380 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 6e 65 6e 74 5c 43 rgument;.use.Symfony\Component\C
963a0 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
963c0 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 74 se.Symfony\Component\Console\Out
963e0 70 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 put\ConsoleOutput;.use.Symfony\C
96400 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 6f 6c 65 4f omponent\Console\Output\ConsoleO
96420 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 6d 70 utputInterface;.use.Symfony\Comp
96440 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 onent\Console\Command\Command;.u
96460 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
96480 6d 61 6e 64 5c 48 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f mand\HelpCommand;.use.Symfony\Co
964a0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 4c 69 73 74 43 6f 6d 6d mponent\Console\Command\ListComm
964c0 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 6e 73 6f and;.use.Symfony\Component\Conso
964e0 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 le\Helper\HelperSet;.use.Symfony
96500 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 46 6f 72 6d 61 74 \Component\Console\Helper\Format
96520 74 65 72 48 65 6c 70 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 terHelper;.use.Symfony\Component
96540 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 75 73 \Console\Helper\DialogHelper;.us
96560 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
96580 65 72 5c 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 er\ProgressHelper;.use.Symfony\C
965a0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 48 65 6c omponent\Console\Helper\TableHel
965c0 70 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 6e 73 6f per;.use.Symfony\Component\Conso
965e0 6c 65 5c 45 76 65 6e 74 5c 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 le\Event\ConsoleCommandEvent;.us
96600 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 45 76 65 6e e.Symfony\Component\Console\Even
96620 74 5c 43 6f 6e 73 6f 6c 65 46 6f 72 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 3b 0a 75 73 65 20 t\ConsoleForExceptionEvent;.use.
96640 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 45 76 65 6e 74 5c Symfony\Component\Console\Event\
96660 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f ConsoleTerminateEvent;.use.Symfo
96680 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 ny\Component\EventDispatcher\Eve
966a0 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ntDispatcher;...................
966c0 63 6c 61 73 73 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 class.Application.{.private.$com
966e0 6d 61 6e 64 73 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 mands;.private.$wantHelps.=.fals
96700 65 3b 0a 70 72 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 e;.private.$runningCommand;.priv
96720 61 74 65 20 24 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 ate.$name;.private.$version;.pri
96740 76 61 74 65 20 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 vate.$catchExceptions;.private.$
96760 61 75 74 6f 45 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 autoExit;.private.$definition;.p
96780 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 69 76 61 74 65 20 24 64 69 73 70 rivate.$helperSet;.private.$disp
967a0 61 74 63 68 65 72 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 atcher;..........public.function
967c0 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 4f 57 4e 27 2c 20 .__construct($name.=.'UNKNOWN',.
967e0 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 68 69 73 2d 3e 6e $version.=.'UNKNOWN').{.$this->n
96800 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 6e 20 3d 20 24 76 ame.=.$name;.$this->version.=.$v
96820 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 69 6f 6e 73 20 3d ersion;.$this->catchExceptions.=
96840 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 72 75 65 3b 0a 24 .true;.$this->autoExit.=.true;.$
96860 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 24 74 68 69 73 2d this->commands.=.array();.$this-
96880 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 61 75 6c 74 48 65 >helperSet.=.$this->getDefaultHe
968a0 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 6f 6e 20 3d 20 24 lperSet();.$this->definition.=.$
968c0 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 69 74 69 6f 6e 28 this->getDefaultInputDefinition(
968e0 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 61 75 6c 74 43 6f );..foreach.($this->getDefaultCo
96900 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 68 69 73 2d 3e 61 mmands().as.$command).{.$this->a
96920 64 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 dd($command);.}.}..public.functi
96940 6f 6e 20 73 65 74 44 69 73 70 61 74 63 68 65 72 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 on.setDispatcher(EventDispatcher
96960 20 24 64 69 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 .$dispatcher).{.$this->dispatche
96980 72 20 3d 20 24 64 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a r.=.$dispatcher;.}..............
969a0 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 74 65 72 66 61 public.function.run(InputInterfa
969c0 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 65 72 66 61 63 ce.$input.=.null,.OutputInterfac
969e0 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 6c 20 3d 3d 3d e.$output.=.null).{.if.(null.===
96a00 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 76 49 6e 70 75 .$input).{.$input.=.new.ArgvInpu
96a20 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 74 29 20 7b 0a t();.}..if.(null.===.$output).{.
96a40 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 28 29 3b 0a 7d $output.=.new.ConsoleOutput();.}
96a60 0a 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 64 6f 52 75 6e ..try.{.$exitCode.=.$this->doRun
96a80 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 68 20 28 5c 45 78 63 ($input,.$output);.}.catch.(\Exc
96aa0 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 63 61 74 63 68 45 78 eption.$e).{.if.(!$this->catchEx
96ac0 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 69 66 20 28 24 6f 75 ceptions).{.throw.$e;.}..if.($ou
96ae0 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 74 70 75 74 49 6e 74 tput.instanceof.ConsoleOutputInt
96b00 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 63 65 70 74 69 6f 6e erface).{.$this->renderException
96b20 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 70 75 74 28 29 29 3b ($e,.$output->getErrorOutput());
96b40 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 63 65 70 74 69 6f 6e .}.else.{.$this->renderException
96b60 28 24 65 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 65 2d ($e,.$output);.}.$exitCode.=.$e-
96b80 3e 67 65 74 43 6f 64 65 28 29 3b 0a 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 69 73 5f 6e 75 6d 65 >getCode();..$exitCode.=.is_nume
96ba0 72 69 63 28 24 65 78 69 74 43 6f 64 65 29 20 26 26 20 24 65 78 69 74 43 6f 64 65 20 3f 20 24 65 ric($exitCode).&&.$exitCode.?.$e
96bc0 78 69 74 43 6f 64 65 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 45 xitCode.:.1;.}..if.($this->autoE
96be0 78 69 74 29 20 7b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 20 3e 20 32 35 35 29 20 7b 0a 24 65 xit).{.if.($exitCode.>.255).{.$e
96c00 78 69 74 43 6f 64 65 20 3d 20 32 35 35 3b 0a 7d 0a 0a 20 65 78 69 74 28 24 65 78 69 74 43 6f 64 xitCode.=.255;.}...exit($exitCod
96c20 65 29 3b 0a 0a 20 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a e);...}..return.$exitCode;.}....
96c40 0a 0a 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 ......public.function.doRun(Inpu
96c60 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 61 tInterface.$input,.OutputInterfa
96c80 63 65 20 24 6f 75 74 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 ce.$output).{.$name.=.$this->get
96ca0 43 6f 6d 6d 61 6e 64 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 CommandName($input);..if.(true.=
96cc0 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 72 ==.$input->hasParameterOption(ar
96ce0 72 61 79 28 27 2d 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 ray('--ansi'))).{.$output->setDe
96d00 63 6f 72 61 74 65 64 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 corated(true);.}.elseif.(true.==
96d20 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
96d40 61 79 28 27 2d 2d 6e 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 ay('--no-ansi'))).{.$output->set
96d60 44 65 63 6f 72 61 74 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 Decorated(false);.}..if.(true.==
96d80 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
96da0 61 79 28 27 2d 2d 68 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 ay('--help',.'-h'))).{.if.(!$nam
96dc0 65 29 20 7b 0a 24 6e 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 e).{.$name.=.'help';.$input.=.ne
96de0 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 20 w.ArrayInput(array('command'.=>.
96e00 27 68 65 6c 70 27 29 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 'help'));.}.else.{.$this->wantHe
96e20 6c 70 73 20 3d 20 74 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 lps.=.true;.}.}..if.(true.===.$i
96e40 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 61 79 28 27 nput->hasParameterOption(array('
96e60 2d 2d 6e 6f 2d 69 6e 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 --no-interaction',.'-n'))).{.$in
96e80 70 75 74 2d 3e 73 65 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 put->setInteractive(false);.}..i
96ea0 66 20 28 66 75 6e 63 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 f.(function_exists('posix_isatty
96ec0 27 29 20 26 26 20 24 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 ').&&.$this->getHelperSet()->has
96ee0 28 27 64 69 61 6c 6f 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 ('dialog')).{.$inputStream.=.$th
96f00 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 6f 67 27 is->getHelperSet()->get('dialog'
96f20 29 2d 3e 67 65 74 49 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 )->getInputStream();.if.(!posix_
96f40 69 73 61 74 74 79 28 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 isatty($inputStream)).{.$input->
96f60 73 65 74 49 6e 74 65 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 setInteractive(false);.}.}..if.(
96f80 74 72 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 true.===.$input->hasParameterOpt
96fa0 69 6f 6e 28 61 72 72 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 ion(array('--quiet',.'-q'))).{.$
96fc0 6f 75 74 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 output->setVerbosity(OutputInter
96fe0 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 29 3b 0a 7d 20 65 6c 73 65 20 7b face::VERBOSITY_QUIET);.}.else.{
97000 0a 69 66 20 28 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 .if.($input->hasParameterOption(
97020 27 2d 76 76 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f '-vvv').||.$input->hasParameterO
97040 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 3d 33 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e ption('--verbose=3').||.$input->
97060 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 getParameterOption('--verbose').
97080 3d 3d 3d 20 33 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f ===.3).{.$output->setVerbosity(O
970a0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 29 utputInterface::VERBOSITY_DEBUG)
970c0 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 ;.}.elseif.($input->hasParameter
970e0 4f 70 74 69 6f 6e 28 27 2d 76 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 Option('-vv').||.$input->hasPara
97100 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 3d 32 27 29 20 7c 7c 20 24 69 meterOption('--verbose=2').||.$i
97120 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 nput->getParameterOption('--verb
97140 6f 73 65 27 29 20 3d 3d 3d 20 32 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f ose').===.2).{.$output->setVerbo
97160 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f sity(OutputInterface::VERBOSITY_
97180 56 45 52 59 5f 56 45 52 42 4f 53 45 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d VERY_VERBOSE);.}.elseif.($input-
971a0 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 76 27 29 20 7c 7c 20 24 69 6e >hasParameterOption('-v').||.$in
971c0 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f put->hasParameterOption('--verbo
971e0 73 65 3d 31 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 se=1').||.$input->hasParameterOp
97200 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 tion('--verbose').||.$input->get
97220 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 29 20 7b 0a ParameterOption('--verbose')).{.
97240 24 6f 75 74 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 $output->setVerbosity(OutputInte
97260 72 66 61 63 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 7d 0a 0a rface::VERBOSITY_VERBOSE);.}.}..
97280 69 66 20 28 74 72 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 if.(true.===.$input->hasParamete
972a0 72 4f 70 74 69 6f 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 rOption(array('--version',.'-V')
972c0 29 29 20 7b 0a 24 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 )).{.$output->writeln($this->get
972e0 4c 6f 6e 67 56 65 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 LongVersion());..return.0;.}..if
97300 20 28 21 24 6e 61 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 .(!$name).{.$name.=.'list';.$inp
97320 75 74 20 3d 20 6e 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 ut.=.new.ArrayInput(array('comma
97340 6e 64 27 20 3d 3e 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 nd'.=>.'list'));.}....$command.=
97360 20 24 74 68 69 73 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 .$this->find($name);..$this->run
97380 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 24 65 78 69 74 43 6f 64 ningCommand.=.$command;.$exitCod
973a0 65 20 3d 20 24 74 68 69 73 2d 3e 64 6f 52 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 e.=.$this->doRunCommand($command
973c0 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 ,.$input,.$output);.$this->runni
973e0 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6d ngCommand.=.null;..return.is_num
97400 65 72 69 63 28 24 65 78 69 74 43 6f 64 65 29 20 3f 20 24 65 78 69 74 43 6f 64 65 20 3a 20 30 3b eric($exitCode).?.$exitCode.:.0;
97420 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 48 65 .}.........public.function.setHe
97440 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 29 0a 7b 0a lperSet(HelperSet.$helperSet).{.
97460 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 74 3b 0a 7d $this->helperSet.=.$helperSet;.}
97480 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 48 65 6c 70 .........public.function.getHelp
974a0 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 53 65 erSet().{.return.$this->helperSe
974c0 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 73 65 74 t;.}.........public.function.set
974e0 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 Definition(InputDefinition.$defi
97500 6e 69 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 nition).{.$this->definition.=.$d
97520 65 66 69 6e 69 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 efinition;.}.......public.functi
97540 6f 6e 20 67 65 74 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 on.getDefinition().{.return.$thi
97560 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s->definition;.}.......public.fu
97580 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 nction.getHelp().{.$messages.=.a
975a0 72 72 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 2c 0a 27 rray(.$this->getLongVersion(),.'
975c0 27 2c 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 ',.'<comment>Usage:</comment>',.
975e0 27 20 20 5b 6f 70 74 69 6f 6e 73 5d 20 63 6f 6d 6d 61 6e 64 20 5b 61 72 67 75 6d 65 6e 74 73 5d '..[options].command.[arguments]
97600 27 2c 0a 27 27 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 ',.'',.'<comment>Options:</comme
97620 6e 74 3e 27 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 44 65 66 nt>',.);..foreach.($this->getDef
97640 69 6e 69 74 69 6f 6e 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 inition()->getOptions().as.$opti
97660 6f 6e 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 27 20 20 25 on).{.$messages[].=.sprintf('..%
97680 2d 32 39 73 20 25 73 20 25 73 27 2c 0a 27 3c 69 6e 66 6f 3e 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d -29s.%s.%s',.'<info>--'.$option-
976a0 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3c 2f 69 6e 66 6f 3e 27 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 >getName().'</info>',.$option->g
976c0 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 3c 69 6e 66 6f 3e 2d 27 2e 24 6f 70 74 69 6f 6e etShortcut().?.'<info>-'.$option
976e0 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2e 27 3c 2f 69 6e 66 6f 3e 27 20 3a 20 27 20 20 27 ->getShortcut().'</info>'.:.'..'
97700 2c 0a 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 0a 29 3b 0a 7d ,.$option->getDescription().);.}
97720 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 6d 65 73 73 61 ..return.implode(PHP_EOL,.$messa
97740 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.
97760 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b 0a 24 setCatchExceptions($boolean).{.$
97780 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d 20 28 42 6f 6f 6c 65 61 6e this->catchExceptions.=.(Boolean
977a0 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 6c 69 63 20 66 75 6e ).$boolean;.}.........public.fun
977c0 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 45 78 69 74 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b 0a 24 74 ction.setAutoExit($boolean).{.$t
977e0 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 62 6f 6f 6c 65 his->autoExit.=.(Boolean).$boole
97800 61 6e 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 65 an;.}.........public.function.ge
97820 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 0a tName().{.return.$this->name;.}.
97840 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 4e 61 6d 65 28 ........public.function.setName(
97860 24 6e 61 6d 65 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 7d 0a $name).{.$this->name.=.$name;.}.
97880 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 56 65 72 73 69 ........public.function.getVersi
978a0 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a on().{.return.$this->version;.}.
978c0 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 56 65 72 73 69 ........public.function.setVersi
978e0 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 on($version).{.$this->version.=.
97900 24 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 6e 63 74 $version;.}.........public.funct
97920 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 69 66 20 28 27 55 4e 4b 4e ion.getLongVersion().{.if.('UNKN
97940 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 27 55 4e OWN'.!==.$this->getName().&&.'UN
97960 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 KNOWN'.!==.$this->getVersion()).
97980 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f {.return.sprintf('<info>%s</info
979a0 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 >.version.<comment>%s</comment>'
979c0 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 56 65 ,.$this->getName(),.$this->getVe
979e0 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 3c 69 6e 66 6f 3e 43 6f 6e 73 6f rsion());.}..return.'<info>Conso
97a00 6c 65 20 54 6f 6f 6c 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 le.Tool</info>';.}...........pub
97a20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 72 lic.function.register($name).{.r
97a40 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 28 24 6e 61 eturn.$this->add(new.Command($na
97a60 6d 65 29 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 me));.}.........public.function.
97a80 61 64 64 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 66 addCommands(array.$commands).{.f
97aa0 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b oreach.($commands.as.$command).{
97ac0 0a 24 74 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 .$this->add($command);.}.}......
97ae0 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 28 43 6f 6d 6d 61 .......public.function.add(Comma
97b00 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 6c nd.$command).{.$command->setAppl
97b20 69 63 61 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 2d 3e ication($this);..if.(!$command->
97b40 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 6c isEnabled()).{.$command->setAppl
97b60 69 63 61 74 69 6f 6e 28 6e 75 6c 6c 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 ication(null);..return;.}..$this
97b80 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 ->commands[$command->getName()].
97ba0 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e =.$command;..foreach.($command->
97bc0 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 74 68 69 73 2d getAliases().as.$alias).{.$this-
97be0 3e 63 6f 6d 6d 61 6e 64 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a >commands[$alias].=.$command;.}.
97c00 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 0a 0a 0a 0a .return.$command;.}.............
97c20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 public.function.get($name).{.if.
97c40 28 21 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 65 5d 29 29 (!isset($this->commands[$name]))
97c60 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
97c80 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 22 25 73 22 eption(sprintf('The.command."%s"
97ca0 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 0a 0a 24 .does.not.exist.',.$name));.}..$
97cc0 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d command.=.$this->commands[$name]
97ce0 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 29 20 7b 0a 24 74 68 69 73 ;..if.($this->wantHelps).{.$this
97d00 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 68 65 6c 70 43 6f 6d 6d 61 ->wantHelps.=.false;..$helpComma
97d20 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 27 68 65 6c 70 27 29 3b 0a 24 68 65 6c 70 43 6f nd.=.$this->get('help');.$helpCo
97d40 6d 6d 61 6e 64 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 0a 72 65 mmand->setCommand($command);..re
97d60 74 75 72 6e 20 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f turn.$helpCommand;.}..return.$co
97d80 6d 6d 61 6e 64 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 mmand;.}...........public.functi
97da0 6f 6e 20 68 61 73 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 on.has($name).{.return.isset($th
97dc0 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a is->commands[$name]);.}.........
97de0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 0a public.function.getNamespaces().
97e00 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 {.$namespaces.=.array();.foreach
97e20 20 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 .($this->commands.as.$command).{
97e40 0a 24 6e 61 6d 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 .$namespaces[].=.$this->extractN
97e60 61 6d 65 73 70 61 63 65 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a amespace($command->getName());..
97e80 66 6f 72 65 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 foreach.($command->getAliases().
97ea0 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 5d 20 3d 20 24 74 68 as.$alias).{.$namespaces[].=.$th
97ec0 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 61 6c 69 61 73 29 3b 0a 7d 0a is->extractNamespace($alias);.}.
97ee0 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 75 6e 69 }..return.array_values(array_uni
97f00 71 75 65 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6e 61 6d 65 73 70 61 63 65 73 29 29 29 3b que(array_filter($namespaces)));
97f20 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 66 69 6e .}...........public.function.fin
97f40 64 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 0a 7b 0a 24 61 6c 6c 4e 61 6d dNamespace($namespace).{.$allNam
97f60 65 73 70 61 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 espaces.=.$this->getNamespaces()
97f80 3b 0a 24 66 6f 75 6e 64 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 ;.$found.=.'';.foreach.(explode(
97fa0 27 3a 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 20 61 73 20 24 69 20 3d 3e 20 24 70 61 72 74 29 ':',.$namespace).as.$i.=>.$part)
97fc0 20 7b 0a 0a 20 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 .{...$namespaces.=.array();.fore
97fe0 61 63 68 20 28 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 61 73 20 24 6e 29 20 7b 0a 69 66 20 ach.($allNamespaces.as.$n).{.if.
98000 28 27 27 20 3d 3d 3d 20 24 66 6f 75 6e 64 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 (''.===.$found.||.0.===.strpos($
98020 6e 2c 20 24 66 6f 75 6e 64 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 24 6e 5d 20 3d 20 n,.$found)).{.$namespaces[$n].=.
98040 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 29 3b 0a 7d 0a 7d 0a 0a 24 61 62 62 72 65 76 73 20 explode(':',.$n);.}.}..$abbrevs.
98060 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 79 =.static::getAbbreviations(array
98080 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 69 6c 74 65 _unique(array_values(array_filte
980a0 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 65 20 28 24 r(array_map(function.($p).use.($
980c0 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 24 70 5b 24 i).{.return.isset($p[$i]).?.$p[$
980e0 69 5d 20 3a 20 27 27 3b 20 7d 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 29 29 29 29 29 3b 0a 0a 69 i].:.'';.},.$namespaces)))));..i
98100 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 29 29 20 7b 0a 24 6d f.(!isset($abbrevs[$part])).{.$m
98120 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 72 65 20 6e 6f 20 63 essage.=.sprintf('There.are.no.c
98140 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 73 22 20 6e 61 6d 65 ommands.defined.in.the."%s".name
98160 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 20 28 31 20 3c 3d 20 space.',.$namespace);..if.(1.<=.
98180 24 69 29 20 7b 0a 24 70 61 72 74 20 3d 20 24 66 6f 75 6e 64 2e 27 3a 27 2e 24 70 61 72 74 3b 0a $i).{.$part.=.$found.':'.$part;.
981a0 7d 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 }..if.($alternatives.=.$this->fi
981c0 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 4e 61 6d 65 73 70 61 63 65 28 24 70 61 72 74 2c 20 24 61 ndAlternativeNamespace($part,.$a
981e0 62 62 72 65 76 73 29 29 20 7b 0a 69 66 20 28 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 6c 74 65 72 bbrevs)).{.if.(1.==.count($alter
98200 6e 61 74 69 76 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 natives)).{.$message..=."\n\nDid
98220 20 79 6f 75 20 6d 65 61 6e 20 74 68 69 73 3f 5c 6e 20 20 20 20 22 3b 0a 7d 20 65 6c 73 65 20 7b .you.mean.this?\n....";.}.else.{
98240 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 20 6f .$message..=."\n\nDid.you.mean.o
98260 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 ne.of.these?\n....";.}..$message
98280 20 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 ..=.implode("\n....",.$alternati
982a0 76 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 ves);.}..throw.new.\InvalidArgum
982c0 65 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 0a 20 69 66 20 entException($message);.}....if.
982e0 28 69 6e 5f 61 72 72 61 79 28 24 70 61 72 74 2c 20 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d (in_array($part,.$abbrevs[$part]
98300 29 29 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d 20 3d 20 61 72 72 61 79 28 24 70 61 )).{.$abbrevs[$part].=.array($pa
98320 72 74 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 rt);.}..if.(count($abbrevs[$part
98340 5d 29 20 3e 20 31 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 ]).>.1).{.throw.new.\InvalidArgu
98360 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 6e 61 6d 65 73 mentException(sprintf('The.names
98380 70 61 63 65 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 2c 20 24 pace."%s".is.ambiguous.(%s).',.$
983a0 6e 61 6d 65 73 70 61 63 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 62 62 72 65 76 69 61 74 69 6f namespace,.$this->getAbbreviatio
983c0 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d 29 29 29 3b nSuggestions($abbrevs[$part])));
983e0 0a 7d 0a 0a 24 66 6f 75 6e 64 20 2e 3d 20 24 66 6f 75 6e 64 20 3f 20 27 3a 27 20 2e 20 24 61 62 .}..$found..=.$found.?.':'...$ab
98400 62 72 65 76 73 5b 24 70 61 72 74 5d 5b 30 5d 20 3a 20 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 brevs[$part][0].:.$abbrevs[$part
98420 5d 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 66 6f 75 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ][0];.}..return.$found;.}.......
98440 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 6e 64 28 24 6e .........public.function.find($n
98460 61 6d 65 29 0a 7b 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 ame).{...$namespace.=.'';.$searc
98480 68 4e 61 6d 65 20 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 hName.=.$name;.if.(false.!==.$po
984a0 73 20 3d 20 73 74 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 s.=.strrpos($name,.':')).{.$name
984c0 73 70 61 63 65 20 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 space.=.$this->findNamespace(sub
984e0 73 74 72 28 24 6e 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 str($name,.0,.$pos));.$searchNam
98500 65 20 3d 20 24 6e 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 e.=.$namespace.substr($name,.$po
98520 73 29 3b 0a 7d 0a 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 s);.}....$commands.=.array();.fo
98540 72 65 61 63 68 20 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 reach.($this->commands.as.$comma
98560 6e 64 29 20 7b 0a 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 24 74 68 69 nd).{.$extractedNamespace.=.$thi
98580 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 2d 3e 67 65 s->extractNamespace($command->ge
985a0 74 4e 61 6d 65 28 29 29 3b 0a 69 66 20 28 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 tName());.if.($extractedNamespac
985c0 65 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 0a 7c 7c 20 21 65 6d 70 74 79 28 24 6e 61 6d 65 e.===.$namespace.||.!empty($name
985e0 73 70 61 63 65 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 65 78 74 72 61 63 74 65 space).&&.0.===.strpos($extracte
98600 64 4e 61 6d 65 73 70 61 63 65 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 0a 29 20 7b 0a 24 63 6f 6d dNamespace,.$namespace).).{.$com
98620 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 65 28 29 3b 0a 7d mands[].=.$command->getName();.}
98640 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 41 62 62 72 65 76 .}..$abbrevs.=.static::getAbbrev
98660 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 61 6e 64 73 29 29 iations(array_unique($commands))
98680 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 63 68 4e 61 6d 65 ;.if.(isset($abbrevs[$searchName
986a0 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 24 73 65 61 72 63 ]).&&.1.==.count($abbrevs[$searc
986c0 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 65 74 28 24 61 62 hName])).{.return.$this->get($ab
986e0 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 0a 69 66 20 28 69 brevs[$searchName][0]);.}..if.(i
98700 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 29 20 26 26 20 69 sset($abbrevs[$searchName]).&&.i
98720 6e 5f 61 72 72 61 79 28 24 73 65 61 72 63 68 4e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 5b 24 73 n_array($searchName,.$abbrevs[$s
98740 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 65 74 earchName])).{.return.$this->get
98760 28 24 73 65 61 72 63 68 4e 61 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 62 62 ($searchName);.}..if.(isset($abb
98780 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 26 26 20 63 6f 75 6e 74 28 24 61 62 62 revs[$searchName]).&&.count($abb
987a0 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 3e 20 31 29 20 7b 0a 24 73 75 67 67 65 revs[$searchName]).>.1).{.$sugge
987c0 73 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 stions.=.$this->getAbbreviationS
987e0 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d uggestions($abbrevs[$searchName]
98800 29 3b 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 );..throw.new.\InvalidArgumentEx
98820 63 65 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 ception(sprintf('Command."%s".is
98840 20 61 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 73 75 67 67 65 .ambiguous.(%s).',.$name,.$sugge
98860 73 74 69 6f 6e 73 29 29 3b 0a 7d 0a 0a 0a 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 stions));.}....$aliases.=.array(
98880 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 73 20 24 );.foreach.($this->commands.as.$
988a0 63 6f 6d 6d 61 6e 64 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 command).{.foreach.($command->ge
988c0 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 65 78 74 72 61 63 74 tAliases().as.$alias).{.$extract
988e0 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 edNamespace.=.$this->extractName
98900 73 70 61 63 65 28 24 61 6c 69 61 73 29 3b 0a 69 66 20 28 24 65 78 74 72 61 63 74 65 64 4e 61 6d space($alias);.if.($extractedNam
98920 65 73 70 61 63 65 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 0a 7c 7c 20 21 65 6d 70 74 79 28 espace.===.$namespace.||.!empty(
98940 24 6e 61 6d 65 73 70 61 63 65 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 65 78 74 $namespace).&&.0.===.strpos($ext
98960 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 0a 29 20 7b ractedNamespace,.$namespace).).{
98980 0a 24 61 6c 69 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 .$aliases[].=.$alias;.}.}.}..$al
989a0 69 61 73 65 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 iases.=.static::getAbbreviations
989c0 28 61 72 72 61 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 (array_unique($aliases));.if.(!i
989e0 73 73 65 74 28 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 sset($aliases[$searchName])).{.$
98a00 6d 65 73 73 61 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 message.=.sprintf('Command."%s".
98a20 69 73 20 6e 6f 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 is.not.defined.',.$name);..if.($
98a40 61 6c 74 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 alternatives.=.$this->findAltern
98a60 61 74 69 76 65 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 ativeCommands($searchName,.$abbr
98a80 65 76 73 29 29 20 7b 0a 69 66 20 28 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 6c 74 65 72 6e 61 74 evs)).{.if.(1.==.count($alternat
98aa0 69 76 65 73 29 29 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 ives)).{.$message..=."\n\nDid.yo
98ac0 75 20 6d 65 61 6e 20 74 68 69 73 3f 5c 6e 20 20 20 20 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d u.mean.this?\n....";.}.else.{.$m
98ae0 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 65 20 essage..=."\n\nDid.you.mean.one.
98b00 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 of.these?\n....";.}.$message..=.
98b20 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)
98b40 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
98b60 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
98b80 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 7b 0a 74 ($aliases[$searchName]).>.1).{.t
98ba0 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
98bc0 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 6d 62 69 on(sprintf('Command."%s".is.ambi
98be0 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 65 74 41 guous.(%s).',.$name,.$this->getA
98c00 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 65 73 5b bbreviationSuggestions($aliases[
98c20 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 68 69 73 $searchName])));.}..return.$this
98c40 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 5d 29 3b ->get($aliases[$searchName][0]);
98c60 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 61 .}.............public.function.a
98c80 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 75 6c 6c ll($namespace.=.null).{.if.(null
98ca0 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 69 73 2d .===.$namespace).{.return.$this-
98cc0 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 61 79 28 >commands;.}..$commands.=.array(
98ce0 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 73 20 24 );.foreach.($this->commands.as.$
98d00 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 73 70 61 name.=>.$command).{.if.($namespa
98d20 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 65 28 24 ce.===.$this->extractNamespace($
98d40 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 2c 20 27 name,.substr_count($namespace,.'
98d60 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 3d 20 24 :').+.1)).{.$commands[$name].=.$
98d80 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 73 3b 0a command;.}.}..return.$commands;.
98da0 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 69 6f 6e }.........public.static.function
98dc0 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 61 62 62 .getAbbreviations($names).{.$abb
98de0 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 65 73 20 revs.=.array();.foreach.($names.
98e00 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 6e 28 24 as.$name).{.for.($len.=.strlen($
98e20 6e 61 6d 65 29 3b 20 24 6c 65 6e 20 3e 20 30 3b 20 2d 2d 24 6c 65 6e 29 20 7b 0a 24 61 62 62 72 name);.$len.>.0;.--$len).{.$abbr
98e40 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 6e 29 3b 0a 24 61 62 ev.=.substr($name,.0,.$len);.$ab
98e60 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 0a 72 brevs[$abbrev][].=.$name;.}.}..r
98e80 65 74 75 72 6e 20 24 61 62 62 72 65 76 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 eturn.$abbrevs;.}............pub
98ea0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 24 6e 61 6d 65 73 70 61 63 65 20 3d lic.function.asText($namespace.=
98ec0 20 6e 75 6c 6c 2c 20 24 72 61 77 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 .null,.$raw.=.false).{.$descript
98ee0 6f 72 20 3d 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 or.=.new.TextDescriptor();..retu
98f00 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 2c 20 rn.$descriptor->describe($this,.
98f20 61 72 72 61 79 28 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c array('namespace'.=>.$namespace,
98f40 20 27 72 61 77 5f 74 65 78 74 27 20 3d 3e 20 24 72 61 77 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .'raw_text'.=>.$raw));.}........
98f60 0a 0a 0a 0a 70 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 ....public.function.asXml($names
98f80 70 61 63 65 20 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 pace.=.null,.$asDom.=.false).{.$
98fa0 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 descriptor.=.new.XmlDescriptor()
98fc0 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 ;..return.$descriptor->describe(
98fe0 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 6e 61 6d $this,.array('namespace'.=>.$nam
99000 65 73 70 61 63 65 2c 20 27 61 73 5f 64 6f 6d 27 20 3d 3e 20 24 61 73 44 6f 6d 29 29 3b 0a 7d 0a espace,.'as_dom'.=>.$asDom));.}.
99020 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 6e 64 65 72 45 78 63 .......public.function.renderExc
99040 65 70 74 69 6f 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 eption($e,.$output).{.$strlen.=.
99060 66 75 6e 63 74 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 function.($string).{.if.(!functi
99080 6f 6e 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 on_exists('mb_strlen')).{.return
990a0 20 73 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 .strlen($string);.}..if.(false.=
990c0 3d 3d 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 ==.$encoding.=.mb_detect_encodin
990e0 67 28 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 g($string)).{.return.strlen($str
99100 69 6e 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 ing);.}..return.mb_strlen($strin
99120 67 2c 20 24 65 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 g,.$encoding);.};..do.{.$title.=
99140 20 73 70 72 69 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 .sprintf('..[%s]..',.get_class($
99160 65 29 29 3b 0a 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 e));.$len.=.$strlen($title);.$wi
99180 64 74 68 20 3d 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 dth.=.$this->getTerminalWidth().
991a0 3f 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 2d 20 31 20 ?.$this->getTerminalWidth().-.1.
991c0 3a 20 50 48 50 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 :.PHP_INT_MAX;.$lines.=.array();
991e0 0a 66 6f 72 65 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f 5c 72 3f 5c 6e 2f 27 2c 20 .foreach.(preg_split('/\r?\n/',.
99200 24 65 2d 3e 67 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 $e->getMessage()).as.$line).{.fo
99220 72 65 61 63 68 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 reach.(str_split($line,.$width.-
99240 20 34 29 20 61 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 .4).as.$line).{.$lines[].=.sprin
99260 74 66 28 27 20 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 tf('..%s..',.$line);.$len.=.max(
99280 24 73 74 72 6c 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 $strlen($line).+.4,.$len);.}.}..
992a0 24 6d 65 73 73 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 $messages.=.array(str_repeat('.'
992c0 2c 20 24 6c 65 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 ,.$len),.$title.str_repeat('.',.
992e0 6d 61 78 28 30 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 max(0,.$len.-.$strlen($title))))
99300 3b 0a 0a 66 6f 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 ;..foreach.($lines.as.$line).{.$
99320 6d 65 73 73 61 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 messages[].=.$line.str_repeat('.
99340 27 2c 20 24 6c 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 ',.$len.-.$strlen($line));.}..$m
99360 65 73 73 61 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 essages[].=.str_repeat('.',.$len
99380 29 3b 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 70 75 );..$output->writeln("");.$outpu
993a0 74 2d 3e 77 72 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 t->writeln("");.foreach.($messag
993c0 65 73 20 61 73 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 es.as.$message).{.$output->write
993e0 6c 6e 28 27 3c 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 ln('<error>'.$message.'</error>'
99400 29 3b 0a 7d 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 70 );.}.$output->writeln("");.$outp
99420 75 74 2d 3e 77 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 ut->writeln("");..if.(OutputInte
99440 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3c 3d 20 24 6f 75 74 rface::VERBOSITY_VERBOSE.<=.$out
99460 70 75 74 2d 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 put->getVerbosity()).{.$output->
99480 77 72 69 74 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 writeln('<comment>Exception.trac
994a0 65 3a 3c 2f 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 e:</comment>');....$trace.=.$e->
994c0 67 65 74 54 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 getTrace();.array_unshift($trace
994e0 2c 20 61 72 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 ,.array(.'function'.=>.'',.'file
99500 27 20 3d 3e 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 '.=>.$e->getFile().!=.null.?.$e-
99520 3e 67 65 74 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 >getFile().:.'n/a',.'line'.=>.$e
99540 2d 3e 67 65 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 ->getLine().!=.null.?.$e->getLin
99560 65 28 29 20 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 e().:.'n/a',.'args'.=>.array(),.
99580 29 29 3b 0a 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 ));..for.($i.=.0,.$count.=.count
995a0 28 24 74 72 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 ($trace);.$i.<.$count;.$i++).{.$
995c0 63 6c 61 73 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 class.=.isset($trace[$i]['class'
995e0 5d 29 20 3f 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 ]).?.$trace[$i]['class'].:.'';.$
99600 74 79 70 65 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 type.=.isset($trace[$i]['type'])
99620 20 3f 20 24 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 .?.$trace[$i]['type'].:.'';.$fun
99640 63 74 69 6f 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 ction.=.$trace[$i]['function'];.
99660 24 66 69 6c 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 $file.=.isset($trace[$i]['file']
99680 29 20 3f 20 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 ).?.$trace[$i]['file'].:.'n/a';.
996a0 24 6c 69 6e 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 $line.=.isset($trace[$i]['line']
996c0 29 20 3f 20 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 ).?.$trace[$i]['line'].:.'n/a';.
996e0 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 25 73 25 73 .$output->writeln(sprintf('.%s%s
99700 25 73 28 29 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 %s().at.<info>%s:%s</info>',.$cl
99720 61 73 73 2c 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 ass,.$type,.$function,.$file,.$l
99740 69 6e 65 29 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 ine));.}..$output->writeln("");.
99760 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 20 77 68 69 6c 65 20 $output->writeln("");.}.}.while.
99780 28 24 65 20 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 ($e.=.$e->getPrevious());..if.(n
997a0 75 6c 6c 20 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 ull.!==.$this->runningCommand).{
997c0 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 3c 69 6e 66 6f .$output->writeln(sprintf('<info
997e0 3e 25 73 3c 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 >%s</info>',.sprintf($this->runn
99800 69 6e 67 43 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 ingCommand->getSynopsis(),.$this
99820 2d 3e 67 65 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 ->getName())));.$output->writeln
99840 28 22 22 29 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 ("");.$output->writeln("");.}.}.
99860 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 54 65 72 6d ......protected.function.getTerm
99880 69 6e 61 6c 57 69 64 74 68 28 29 0a 7b 0a 24 64 69 6d 65 6e 73 69 6f 6e 73 20 3d 20 24 74 68 69 inalWidth().{.$dimensions.=.$thi
998a0 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 s->getTerminalDimensions();..ret
998c0 75 72 6e 20 24 64 69 6d 65 6e 73 69 6f 6e 73 5b 30 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 urn.$dimensions[0];.}.......prot
998e0 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 48 65 69 67 68 74 ected.function.getTerminalHeight
99900 28 29 0a 7b 0a 24 64 69 6d 65 6e 73 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 ().{.$dimensions.=.$this->getTer
99920 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 6d 65 minalDimensions();..return.$dime
99940 6e 73 69 6f 6e 73 5b 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 nsions[1];.}.......public.functi
99960 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 0a 7b 0a 69 66 20 on.getTerminalDimensions().{.if.
99980 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 4f 4e 5f 42 55 (defined('PHP_WINDOWS_VERSION_BU
999a0 49 4c 44 27 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 5c 64 ILD')).{...if.(preg_match('/^(\d
999c0 2b 29 78 5c 64 2b 20 5c 28 5c 64 2b 78 28 5c 64 2b 29 5c 29 24 2f 27 2c 20 74 72 69 6d 28 67 65 +)x\d+.\(\d+x(\d+)\)$/',.trim(ge
999e0 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 tenv('ANSICON')),.$matches)).{.r
99a00 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 28 eturn.array((int).$matches[1],.(
99a20 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 7d 0a 0a 20 69 66 20 28 70 72 65 67 5f int).$matches[2]);.}...if.(preg_
99a40 6d 61 74 63 68 28 27 2f 5e 28 5c 64 2b 29 78 28 5c 64 2b 29 24 2f 27 2c 20 24 74 68 69 73 2d 3e match('/^(\d+)x(\d+)$/',.$this->
99a60 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 getConsoleMode(),.$matches)).{.r
99a80 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 28 eturn.array((int).$matches[1],.(
99aa0 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 73 74 74 int).$matches[2]);.}.}..if.($stt
99ac0 79 53 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 yString.=.$this->getSttyColumns(
99ae0 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 72 6f 77 73 2e 28 5c 64 )).{...if.(preg_match('/rows.(\d
99b00 2b 29 3b 2e 63 6f 6c 75 6d 6e 73 2e 28 5c 64 2b 29 3b 2f 69 27 2c 20 24 73 74 74 79 53 74 72 69 +);.columns.(\d+);/i',.$sttyStri
99b20 6e 67 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 ng,.$matches)).{.return.array((i
99b40 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b nt).$matches[2],.(int).$matches[
99b60 31 5d 29 3b 0a 7d 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 3b 2e 28 5c 64 2b 1]);.}...if.(preg_match('/;.(\d+
99b80 29 2e 72 6f 77 73 3b 2e 28 5c 64 2b 29 2e 63 6f 6c 75 6d 6e 73 2f 69 27 2c 20 24 73 74 74 79 53 ).rows;.(\d+).columns/i',.$sttyS
99ba0 74 72 69 6e 67 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 tring,.$matches)).{.return.array
99bc0 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 ((int).$matches[2],.(int).$match
99be0 65 73 5b 31 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 75 6c 6c 2c 20 es[1]);.}.}..return.array(null,.
99c00 6e 75 6c 6c 29 3b 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 null);.}..............protected.
99c20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 function.doRunCommand(Command.$c
99c40 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f ommand,.InputInterface.$input,.O
99c60 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 69 66 20 28 6e 75 utputInterface.$output).{.if.(nu
99c80 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 29 20 7b 0a 72 65 74 75 ll.===.$this->dispatcher).{.retu
99ca0 72 6e 20 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 rn.$command->run($input,.$output
99cc0 29 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e );.}..$event.=.new.ConsoleComman
99ce0 64 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 dEvent($command,.$input,.$output
99d00 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 );.$this->dispatcher->dispatch(C
99d20 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 24 65 76 65 6e 74 29 3b 0a onsoleEvents::COMMAND,.$event);.
99d40 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e .try.{.$exitCode.=.$command->run
99d60 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 68 20 28 5c 45 78 63 ($input,.$output);.}.catch.(\Exc
99d80 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c eption.$e).{.$event.=.new.Consol
99da0 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 eTerminateEvent($command,.$input
99dc0 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 3b 0a 24 74 68 69 73 ,.$output,.$e->getCode());.$this
99de0 2d 3e 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 ->dispatcher->dispatch(ConsoleEv
99e00 65 6e 74 73 3a 3a 54 45 52 4d 49 4e 41 54 45 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 24 65 76 65 6e ents::TERMINATE,.$event);..$even
99e20 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 46 6f 72 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 t.=.new.ConsoleForExceptionEvent
99e40 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 2c 20 ($command,.$input,.$output,.$e,.
99e60 24 65 76 65 6e 74 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 $event->getExitCode());.$this->d
99e80 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 ispatcher->dispatch(ConsoleEvent
99ea0 73 3a 3a 45 58 43 45 50 54 49 4f 4e 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 74 68 72 6f 77 20 24 65 s::EXCEPTION,.$event);..throw.$e
99ec0 76 65 6e 74 2d 3e 67 65 74 45 78 63 65 70 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 vent->getException();.}..$event.
99ee0 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 28 24 63 6f 6d =.new.ConsoleTerminateEvent($com
99f00 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 43 6f 64 65 mand,.$input,.$output,.$exitCode
99f20 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 );.$this->dispatcher->dispatch(C
99f40 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 54 45 52 4d 49 4e 41 54 45 2c 20 24 65 76 65 6e 74 29 onsoleEvents::TERMINATE,.$event)
99f60 3b 0a 0a 72 65 74 75 72 6e 20 24 65 76 65 6e 74 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b ;..return.$event->getExitCode();
99f80 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 67 65 .}.........protected.function.ge
99fa0 74 43 6f 6d 6d 61 6e 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 tCommandName(InputInterface.$inp
99fc0 75 74 29 0a 7b 0a 72 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 ut).{.return.$input->getFirstArg
99fe0 75 6d 65 6e 74 28 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 ument();.}.......protected.funct
9a000 69 6f 6e 20 67 65 74 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 ion.getDefaultInputDefinition().
9a020 7b 0a 72 65 74 75 72 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 {.return.new.InputDefinition(arr
9a040 61 79 28 0a 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 27 2c ay(.new.InputArgument('command',
9a060 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 54 68 65 20 63 .InputArgument::REQUIRED,.'The.c
9a080 6f 6d 6d 61 6e 64 20 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 ommand.to.execute'),..new.InputO
9a0a0 70 74 69 6f 6e 28 27 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 ption('--help',.'-h',.InputOptio
9a0c0 6e 3a 3a 56 41 4c 55 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 n::VALUE_NONE,.'Display.this.hel
9a0e0 70 20 6d 65 73 73 61 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 p.message.'),.new.InputOption('-
9a100 2d 71 75 69 65 74 27 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 -quiet',.'-q',.InputOption::VALU
9a120 45 5f 4e 4f 4e 45 2c 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 E_NONE,.'Do.not.output.any.messa
9a140 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 76 65 72 62 6f 73 ge.'),.new.InputOption('--verbos
9a160 65 27 2c 20 27 2d 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 e',.'-v|vv|vvv',.InputOption::VA
9a180 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 6e 63 72 65 61 73 65 20 74 68 65 20 76 65 72 62 6f 73 69 74 LUE_NONE,.'Increase.the.verbosit
9a1a0 79 20 6f 66 20 6d 65 73 73 61 67 65 73 3a 20 31 20 66 6f 72 20 6e 6f 72 6d 61 6c 20 6f 75 74 70 y.of.messages:.1.for.normal.outp
9a1c0 75 74 2c 20 32 20 66 6f 72 20 6d 6f 72 65 20 76 65 72 62 6f 73 65 20 6f 75 74 70 75 74 20 61 6e ut,.2.for.more.verbose.output.an
9a1e0 64 20 33 20 66 6f 72 20 64 65 62 75 67 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e d.3.for.debug'),.new.InputOption
9a200 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a ('--version',.'-V',.InputOption:
9a220 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 68 69 73 20 61 70 70 6c 69 :VALUE_NONE,.'Display.this.appli
9a240 63 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 cation.version.'),.new.InputOpti
9a260 6f 6e 28 27 2d 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 on('--ansi',.'',.InputOption::VA
9a280 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 20 41 4e 53 49 20 6f 75 74 70 75 74 2e 27 29 2c LUE_NONE,.'Force.ANSI.output.'),
9a2a0 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 2c 20 27 27 .new.InputOption('--no-ansi',.''
9a2c0 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 61 ,.InputOption::VALUE_NONE,.'Disa
9a2e0 62 6c 65 20 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 ble.ANSI.output.'),.new.InputOpt
9a300 69 6f 6e 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 74 69 6f 6e 27 2c 20 27 2d 6e 27 2c 20 49 6e ion('--no-interaction',.'-n',.In
9a320 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 6f 20 6e 6f 74 20 61 putOption::VALUE_NONE,.'Do.not.a
9a340 73 6b 20 61 6e 79 20 69 6e 74 65 72 61 63 74 69 76 65 20 71 75 65 73 74 69 6f 6e 2e 27 29 2c 0a sk.any.interactive.question.'),.
9a360 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 6e 20 67 ));.}.......protected.function.g
9a380 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 etDefaultCommands().{.return.arr
9a3a0 61 79 28 6e 65 77 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 28 29 2c 20 6e 65 77 20 4c 69 73 74 43 6f ay(new.HelpCommand(),.new.ListCo
9a3c0 6d 6d 61 6e 64 28 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 mmand());.}.......protected.func
9a3e0 74 69 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 72 65 74 tion.getDefaultHelperSet().{.ret
9a400 75 72 6e 20 6e 65 77 20 48 65 6c 70 65 72 53 65 74 28 61 72 72 61 79 28 0a 6e 65 77 20 46 6f 72 urn.new.HelperSet(array(.new.For
9a420 6d 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 matterHelper(),.new.DialogHelper
9a440 28 29 2c 0a 6e 65 77 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 54 61 (),.new.ProgressHelper(),.new.Ta
9a460 62 6c 65 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 bleHelper(),.));.}.......private
9a480 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 0a 7b 0a 69 66 20 .function.getSttyColumns().{.if.
9a4a0 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 65 6e 27 29 29 20 (!function_exists('proc_open')).
9a4c0 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 65 63 20 3d 20 61 {.return;.}..$descriptorspec.=.a
9a4e0 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 27 29 2c 20 32 20 rray(1.=>.array('pipe',.'w'),.2.
9a500 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 72 6f 63 65 73 73 =>.array('pipe',.'w'));.$process
9a520 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 65 70 20 63 6f 6c .=.proc_open('stty.-a.|.grep.col
9a540 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 69 70 65 73 2c 20 umns',.$descriptorspec,.$pipes,.
9a560 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 73 5f 65 72 72 6f null,.null,.array('suppress_erro
9a580 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 75 72 63 65 28 24 rs'.=>.true));.if.(is_resource($
9a5a0 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 5f 67 65 74 5f 63 process)).{.$info.=.stream_get_c
9a5c0 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 28 24 70 69 70 65 ontents($pipes[1]);.fclose($pipe
9a5e0 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 70 72 6f 63 5f 63 s[1]);.fclose($pipes[2]);.proc_c
9a600 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 6e 66 6f 3b 0a 7d lose($process);..return.$info;.}
9a620 0a 7d 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 43 6f 6e .}.......private.function.getCon
9a640 73 6f 6c 65 4d 6f 64 65 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 soleMode().{.if.(!function_exist
9a660 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 64 65 s('proc_open')).{.return;.}..$de
9a680 73 63 72 69 70 74 6f 72 73 70 65 63 20 3d 20 61 72 72 61 79 28 31 20 3d 3e 20 61 72 72 61 79 28 scriptorspec.=.array(1.=>.array(
9a6a0 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 'pipe',.'w'),.2.=>.array('pipe',
9a6c0 20 27 77 27 29 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 27 6d 6f .'w'));.$process.=.proc_open('mo
9a6e0 64 65 20 43 4f 4e 27 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 2c 20 24 70 69 70 65 73 de.CON',.$descriptorspec,.$pipes
9a700 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 73 5f 65 72 ,.null,.null,.array('suppress_er
9a720 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 75 72 63 65 rors'.=>.true));.if.(is_resource
9a740 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 5f 67 65 74 ($process)).{.$info.=.stream_get
9a760 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 28 24 70 69 _contents($pipes[1]);.fclose($pi
9a780 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 70 72 6f 63 pes[1]);.fclose($pipes[2]);.proc
9a7a0 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 _close($process);..if.(preg_matc
9a7c0 68 28 27 2f 2d 2d 2d 2d 2d 2d 2d 2d 2b 5c 72 3f 5c 6e 2e 2b 3f 28 5c 64 2b 29 5c 72 3f 5c 6e 2e h('/--------+\r?\n.+?(\d+)\r?\n.
9a7e0 2b 3f 28 5c 64 2b 29 5c 72 3f 5c 6e 2f 27 2c 20 24 69 6e 66 6f 2c 20 24 6d 61 74 63 68 65 73 29 +?(\d+)\r?\n/',.$info,.$matches)
9a800 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 78 27 2e 24 6d 61 74 63 ).{.return.$matches[2].'x'.$matc
9a820 68 65 73 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 hes[1];.}.}.}.........private.fu
9a840 6e 63 74 69 6f 6e 20 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 nction.getAbbreviationSuggestion
9a860 73 28 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 s($abbrevs).{.return.sprintf('%s
9a880 2c 20 25 73 25 73 27 2c 20 24 61 62 62 72 65 76 73 5b 30 5d 2c 20 24 61 62 62 72 65 76 73 5b 31 ,.%s%s',.$abbrevs[0],.$abbrevs[1
9a8a0 5d 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 3e 20 32 20 3f 20 73 70 72 69 6e 74 66 ],.count($abbrevs).>.2.?.sprintf
9a8c0 28 27 20 61 6e 64 20 25 64 20 6d 6f 72 65 27 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 ('.and.%d.more',.count($abbrevs)
9a8e0 20 2d 20 32 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .-.2).:.'');.}............public
9a900 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 .function.extractNamespace($name
9a920 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 65 78 70 6c ,.$limit.=.null).{.$parts.=.expl
9a940 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 3b 0a 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 ode(':',.$name);.array_pop($part
9a960 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 3a 27 2c 20 6e 75 6c 6c 20 3d 3d s);..return.implode(':',.null.==
9a980 3d 20 24 6c 69 6d 69 74 20 3f 20 24 70 61 72 74 73 20 3a 20 61 72 72 61 79 5f 73 6c 69 63 65 28 =.$limit.?.$parts.:.array_slice(
9a9a0 24 70 61 72 74 73 2c 20 30 2c 20 24 6c 69 6d 69 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $parts,.0,.$limit));.}..........
9a9c0 70 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 private.function.findAlternative
9a9e0 43 6f 6d 6d 61 6e 64 73 28 24 6e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 0a 7b 0a 24 63 61 6c Commands($name,.$abbrevs).{.$cal
9aa00 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 28 24 69 74 65 6d 29 20 7b 0a 72 65 74 75 72 6e lback.=.function($item).{.return
9aa20 20 24 69 74 65 6d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 .$item->getName();.};..return.$t
9aa40 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 2c 20 24 74 68 his->findAlternatives($name,.$th
9aa60 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 2c 20 24 61 62 62 72 65 76 73 2c 20 24 63 61 6c 6c 62 61 63 is->commands,.$abbrevs,.$callbac
9aa80 6b 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 k);.}..........private.function.
9aaa0 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 findAlternativeNamespace($name,.
9aac0 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c $abbrevs).{.return.$this->findAl
9aae0 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 ternatives($name,.$this->getName
9ab00 73 70 61 63 65 73 28 29 2c 20 24 61 62 62 72 65 76 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a spaces(),.$abbrevs);.}..........
9ab20 0a 0a 0a 70 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 ...private.function.findAlternat
9ab40 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6c 6c 65 63 74 69 6f 6e 2c 20 24 61 62 62 72 65 76 ives($name,.$collection,.$abbrev
9ab60 73 2c 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 61 6c 74 65 72 6e 61 74 s,.$callback.=.null).{.$alternat
9ab80 69 76 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 63 6f 6c 6c 65 ives.=.array();..foreach.($colle
9aba0 63 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 ction.as.$item).{.if.(null.!==.$
9abc0 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 24 69 74 65 6d 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 callback).{.$item.=.call_user_fu
9abe0 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 69 74 65 6d 29 3b 0a 7d 0a 0a 24 6c 65 76 20 3d 20 nc($callback,.$item);.}..$lev.=.
9ac00 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d 65 2c 20 24 69 74 65 6d 29 3b 0a 69 66 20 28 24 levenshtein($name,.$item);.if.($
9ac20 6c 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 lev.<=.strlen($name)./.3.||.fals
9ac40 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 69 74 65 6d 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 61 e.!==.strpos($item,.$name)).{.$a
9ac60 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 20 3d 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 0a lternatives[$item].=.$lev;.}.}..
9ac80 69 66 20 28 21 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 if.(!$alternatives).{.foreach.($
9aca0 61 62 62 72 65 76 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 73 29 20 7b 0a 24 6c abbrevs.as.$key.=>.$values).{.$l
9acc0 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d 65 2c 20 24 6b 65 79 29 3b 0a 69 ev.=.levenshtein($name,.$key);.i
9ace0 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 f.($lev.<=.strlen($name)./.3.||.
9ad00 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6b 65 79 2c 20 24 6e 61 6d 65 29 29 20 7b false.!==.strpos($key,.$name)).{
9ad20 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 24 .foreach.($values.as.$value).{.$
9ad40 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 76 61 6c 75 65 5d 20 3d 20 24 6c 65 76 3b 0a 7d 0a 7d alternatives[$value].=.$lev;.}.}
9ad60 0a 7d 0a 7d 0a 0a 61 73 6f 72 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 0a 72 65 74 .}.}..asort($alternatives);..ret
9ad80 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d urn.array_keys($alternatives);.}
9ada0 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 6d .}.<?php...........namespace.Sym
9adc0 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 3b 0a 0a 0a fony\Component\Console\Input;...
9ade0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 0a 7b 0a 63 6f 6e 73 ......class.InputArgument.{.cons
9ae00 74 20 52 45 51 55 49 52 45 44 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 50 54 49 4f 4e 41 4c 20 3d t.REQUIRED.=.1;.const.OPTIONAL.=
9ae20 20 32 3b 0a 63 6f 6e 73 74 20 49 53 5f 41 52 52 41 59 20 3d 20 34 3b 0a 0a 70 72 69 76 61 74 65 .2;.const.IS_ARRAY.=.4;..private
9ae40 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 .$name;.private.$mode;.private.$
9ae60 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a default;.private.$description;..
9ae80 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 6f ............public.function.__co
9aea0 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 nstruct($name,.$mode.=.null,.$de
9aec0 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 scription.=.'',.$default.=.null)
9aee0 0a 7b 0a 69 66 20 28 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 .{.if.(null.===.$mode).{.$mode.=
9af00 20 73 65 6c 66 3a 3a 4f 50 54 49 4f 4e 41 4c 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 .self::OPTIONAL;.}.elseif.(!is_i
9af20 6e 74 28 24 6d 6f 64 65 29 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 37 20 7c 7c 20 24 6d 6f 64 65 20 nt($mode).||.$mode.>.7.||.$mode.
9af40 3c 20 31 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 <.1).{.throw.new.\InvalidArgumen
9af60 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 72 67 75 6d 65 6e 74 20 6d 6f 64 tException(sprintf('Argument.mod
9af80 65 20 22 25 73 22 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 e."%s".is.not.valid.',.$mode));.
9afa0 7d 0a 0a 24 74 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 6d }..$this->name.=.$name;.$this->m
9afc0 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 ode.=.$mode;.$this->description.
9afe0 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 =.$description;..$this->setDefau
9b000 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e lt($default);.}.......public.fun
9b020 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 24 74 68 69 73 2d 3e ction.getName().{.return.$this->
9b040 6e 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 69 73 name;.}.......public.function.is
9b060 52 65 71 75 69 72 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 52 45 51 55 49 52 Required().{.return.self::REQUIR
9b080 45 44 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e ED.===.(self::REQUIRED.&.$this->
9b0a0 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 69 mode);.}.......public.function.i
9b0c0 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 49 53 5f 41 52 52 41 59 sArray().{.return.self::IS_ARRAY
9b0e0 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f .===.(self::IS_ARRAY.&.$this->mo
9b100 64 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 de);.}.........public.function.s
9b120 65 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 etDefault($default.=.null).{.if.
9b140 28 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 (self::REQUIRED.===.$this->mode.
9b160 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 &&.null.!==.$default).{.throw.ne
9b180 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 w.\LogicException('Cannot.set.a.
9b1a0 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 65 78 63 65 70 74 20 66 6f 72 20 49 6e 70 75 74 41 72 default.value.except.for.InputAr
9b1c0 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 gument::OPTIONAL.mode.');.}..if.
9b1e0 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d ($this->isArray()).{.if.(null.==
9b200 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 =.$default).{.$default.=.array()
9b220 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 ;.}.elseif.(!is_array($default))
9b240 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 27 41 20 .{.throw.new.\LogicException('A.
9b260 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 61 72 67 75 6d default.value.for.an.array.argum
9b280 65 6e 74 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 ent.must.be.an.array.');.}.}..$t
9b2a0 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a his->default.=.$default;.}......
9b2c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a .public.function.getDefault().{.
9b2e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 return.$this->default;.}.......p
9b300 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 69 6f 6e 28 29 0a ublic.function.getDescription().
9b320 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 6e 3b 0a 7d 0a 7d {.return.$this->description;.}.}
9b340 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
9b360 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 0a ny\Component\Console\Input;.....
9b380 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 49 6e 70 75 74 20 69 6d 70 ........abstract.class.Input.imp
9b3a0 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 lements.InputInterface.{.protect
9b3c0 65 64 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f ed.$definition;.protected.$optio
9b3e0 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 6f 74 65 63 ns;.protected.$arguments;.protec
9b400 74 65 64 20 24 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 ted.$interactive.=.true;.......p
9b420 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
9b440 44 65 66 69 6e 69 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 Definition.$definition.=.null).{
9b460 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 .if.(null.===.$definition).{.$th
9b480 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e is->arguments.=.array();.$this->
9b4a0 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 options.=.array();.$this->defini
9b4c0 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 20 tion.=.new.InputDefinition();.}.
9b4e0 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b else.{.$this->bind($definition);
9b500 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 .$this->validate();.}.}.......pu
9b520 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 blic.function.bind(InputDefiniti
9b540 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e on.$definition).{.$this->argumen
9b560 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 ts.=.array();.$this->options.=.a
9b580 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 rray();.$this->definition.=.$def
9b5a0 69 6e 69 74 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a inition;..$this->parse();.}.....
9b5c0 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 70 61 72 73 abstract.protected.function.pars
9b5e0 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 76 61 6c 69 64 e();.......public.function.valid
9b600 61 74 65 28 29 0a 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e ate().{.if.(count($this->argumen
9b620 74 73 29 20 3c 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 ts).<.$this->definition->getArgu
9b640 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 6e 74 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 mentRequiredCount()).{.throw.new
9b660 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 74 20 65 6e 6f 75 67 68 20 61 .\RuntimeException('Not.enough.a
9b680 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rguments.');.}.}.......public.fu
9b6a0 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 20 nction.isInteractive().{.return.
9b6c0 24 74 68 69 73 2d 3e 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 $this->interactive;.}.......publ
9b6e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 ic.function.setInteractive($inte
9b700 72 61 63 74 69 76 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 ractive).{.$this->interactive.=.
9b720 28 42 6f 6f 6c 65 61 6e 29 20 24 69 6e 74 65 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a (Boolean).$interactive;.}.......
9b740 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 73 28 29 0a 7b public.function.getArguments().{
9b760 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 69 6e .return.array_merge($this->defin
9b780 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 ition->getArgumentDefaults(),.$t
9b7a0 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 his->arguments);.}...........pub
9b7c0 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 65 29 0a lic.function.getArgument($name).
9b7e0 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 41 72 67 {.if.(!$this->definition->hasArg
9b800 75 6d 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 ument($name)).{.throw.new.\Inval
9b820 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 68 65 idArgumentException(sprintf('The
9b840 20 22 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 ."%s".argument.does.not.exist.',
9b860 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d .$name));.}..return.isset($this-
9b880 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 61 72 67 75 >arguments[$name]).?.$this->argu
9b8a0 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e ments[$name].:.$this->definition
9b8c0 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 ->getArgument($name)->getDefault
9b8e0 28 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 6e 20 73 ();.}..........public.function.s
9b900 65 74 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 69 66 20 28 etArgument($name,.$value).{.if.(
9b920 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 65 6e 74 28 !$this->definition->hasArgument(
9b940 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
9b960 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".
9b980 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 6e 61 6d 65 argument.does.not.exist.',.$name
9b9a0 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 65 5d 20 3d ));.}..$this->arguments[$name].=
9b9c0 20 24 76 61 6c 75 65 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 .$value;.}.........public.functi
9b9e0 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 on.hasArgument($name).{.return.$
9ba00 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 24 6e this->definition->hasArgument($n
9ba20 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 69 6f 6e 20 67 65 ame);.}.......public.function.ge
9ba40 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 tOptions().{.return.array_merge(
9ba60 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 44 65 66 61 $this->definition->getOptionDefa
9ba80 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ults(),.$this->options);.}......
9baa0 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 74 69 6f 6e 28 24 .....public.function.getOption($
9bac0 6e 61 6d 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 6f 6e 2d 3e name).{.if.(!$this->definition->
9bae0 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 77 20 5c 49 hasOption($name)).{.throw.new.\I
9bb00 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 28 nvalidArgumentException(sprintf(
9bb20 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 69 73 74 2e 'The."%s".option.does.not.exist.
9bb40 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 ',.$name));.}..return.isset($thi
9bb60 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 6f 70 74 69 s->options[$name]).?.$this->opti
9bb80 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e ons[$name].:.$this->definition->
9bba0 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a getOption($name)->getDefault();.
9bbc0 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 4f 70 }..........public.function.setOp
9bbe0 74 69 6f 6e 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 tion($name,.$value).{.if.(!$this
9bc00 2d 3e 64 65 66 69 6e 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 ->definition->hasOption($name)).
9bc20 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
9bc40 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 6f 70 74 69 6f 6e 20 64 ption(sprintf('The."%s".option.d
9bc60 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
9bc80 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 3b 0a 7d 0a 0a is->options[$name].=.$value;.}..
9bca0 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 4f 70 74 69 6f 6e .......public.function.hasOption
9bcc0 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 6e 69 74 69 ($name).{.return.$this->definiti
9bce0 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a on->hasOption($name);.}.........
9bd00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 74 6f 6b public.function.escapeToken($tok
9bd20 65 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2d 5d en).{.return.preg_match('{^[\w-]
9bd40 2b 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 20 3f 20 24 74 6f 6b 65 6e 20 3a 20 65 73 63 61 70 65 73 +$}',.$token).?.$token.:.escapes
9bd60 68 65 6c 6c 61 72 67 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a hellarg($token);.}.}.<?php......
9bd80 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
9bda0 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 0a 0a 0a 63 6c 61 73 \Console\Input;.............clas
9bdc0 73 20 53 74 72 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 s.StringInput.extends.ArgvInput.
9bde0 7b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 53 54 52 49 4e 47 20 3d 20 27 28 5b 5e 5c 73 5d 2b 3f {.const.REGEX_STRING.=.'([^\s]+?
9be00 29 28 3f 3a 5c 73 7c 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 )(?:\s|(?<!\\\\)"|(?<!\\\\)\'|$)
9be20 27 3b 0a 63 6f 6e 73 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 ';.const.REGEX_QUOTED_STRING.=.'
9be40 28 3f 3a 22 28 5b 5e 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 (?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)
9be60 2a 29 22 7c 5c 27 28 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 *)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\
9be80 5c 5d 2a 29 2a 29 5c 27 29 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 \]*)*)\')';............public.fu
9bea0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 70 75 74 2c 20 49 6e 70 75 74 nction.__construct($input,.Input
9bec0 44 65 66 69 6e 69 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 Definition.$definition.=.null).{
9bee0 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 28 29 2c 20 6e 75 .parent::__construct(array(),.nu
9bf00 6c 6c 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 ll);..$this->setTokens($this->to
9bf20 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 kenize($input));..if.(null.!==.$
9bf40 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e definition).{.$this->bind($defin
9bf60 69 74 69 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 ition);.}.}...........private.fu
9bf80 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 74 6f 6b 65 6e nction.tokenize($input).{.$token
9bfa0 73 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 s.=.array();.$length.=.strlen($i
9bfc0 6e 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 nput);.$cursor.=.0;.while.($curs
9bfe0 6f 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 or.<.$length).{.if.(preg_match('
9c000 2f 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 /\s+/A',.$input,.$match,.null,.$
9c020 63 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 cursor)).{.}.elseif.(preg_match(
9c040 27 2f 28 5b 5e 3d 22 5c 27 5c 73 5d 2b 3f 29 28 3d 3f 29 28 27 2e 73 65 6c 66 3a 3a 52 45 47 45 '/([^="\'\s]+?)(=?)('.self::REGE
9c060 58 5f 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 X_QUOTED_STRING.'+)/A',.$input,.
9c080 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 74 6f 6b 65 6e $match,.null,.$cursor)).{.$token
9c0a0 73 5b 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 s[].=.$match[1].$match[2].stripc
9c0c0 73 6c 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 slashes(str_replace(array('"\'',
9c0e0 20 27 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 .'\'"',.'\'\'',.'""'),.'',.subst
9c100 72 28 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 r($match[3],.1,.strlen($match[3]
9c120 29 20 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 ).-.2)));.}.elseif.(preg_match('
9c140 2f 27 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 /'.self::REGEX_QUOTED_STRING.'/A
9c160 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 75 72 73 6f 72 ',.$input,.$match,.null,.$cursor
9c180 29 29 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 )).{.$tokens[].=.stripcslashes(s
9c1a0 75 62 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 ubstr($match[0],.1,.strlen($matc
9c1c0 68 5b 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 h[0]).-.2));.}.elseif.(preg_matc
9c1e0 68 28 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 h('/'.self::REGEX_STRING.'/A',.$
9c200 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 20 7b input,.$match,.null,.$cursor)).{
9c220 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 24 6d 61 74 63 .$tokens[].=.stripcslashes($matc
9c240 68 5b 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 h[1]);.}.else.{.....throw.new.\I
9c260 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 28 nvalidArgumentException(sprintf(
9c280 27 55 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 'Unable.to.parse.input.near."...
9c2a0 20 25 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 .%s...."',.substr($input,.$curso
9c2c0 72 2c 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 r,.10)));...}..$cursor.+=.strlen
9c2e0 28 24 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 ($match[0]);.}..return.$tokens;.
9c300 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
9c320 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 3b 0a 0a mfony\Component\Console\Input;..
9c340 0a 0a 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 .......class.InputOption.{.const
9c360 20 56 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 .VALUE_NONE.=.1;.const.VALUE_REQ
9c380 55 49 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 UIRED.=.2;.const.VALUE_OPTIONAL.
9c3a0 3d 20 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 =.4;.const.VALUE_IS_ARRAY.=.8;..
9c3c0 70 72 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 private.$name;.private.$shortcut
9c3e0 3b 0a 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 ;.private.$mode;.private.$defaul
9c400 74 3b 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 t;.private.$description;........
9c420 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
9c440 63 74 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 ct($name,.$shortcut.=.null,.$mod
9c460 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 24 64 65 e.=.null,.$description.=.'',.$de
9c480 66 61 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 fault.=.null).{.if.(0.===.strpos
9c4a0 28 24 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 ($name,.'--')).{.$name.=.substr(
9c4c0 24 6e 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 $name,.2);.}..if.(empty($name)).
9c4e0 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
9c500 70 74 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 ption('An.option.name.cannot.be.
9c520 65 6d 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 empty.');.}..if.(empty($shortcut
9c540 29 29 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 )).{.$shortcut.=.null;.}..if.(nu
9c560 6c 6c 20 21 3d 3d 20 24 73 68 6f 72 74 63 75 74 29 20 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 ll.!==.$shortcut).{.if.(is_array
9c580 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 69 6d 70 6c 6f ($shortcut)).{.$shortcut.=.implo
9c5a0 64 65 28 27 7c 27 2c 20 24 73 68 6f 72 74 63 75 74 29 3b 0a 7d 0a 24 73 68 6f 72 74 63 75 74 73 de('|',.$shortcut);.}.$shortcuts
9c5c0 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 28 5c 7c 29 2d 3f 7d 27 2c 20 6c 74 72 69 6d 28 .=.preg_split('{(\|)-?}',.ltrim(
9c5e0 24 73 68 6f 72 74 63 75 74 2c 20 27 2d 27 29 29 3b 0a 24 73 68 6f 72 74 63 75 74 73 20 3d 20 61 $shortcut,.'-'));.$shortcuts.=.a
9c600 72 72 61 79 5f 66 69 6c 74 65 72 28 24 73 68 6f 72 74 63 75 74 73 29 3b 0a 24 73 68 6f 72 74 63 rray_filter($shortcuts);.$shortc
9c620 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 73 68 6f 72 74 63 75 74 73 29 3b 0a 0a ut.=.implode('|',.$shortcuts);..
9c640 69 66 20 28 65 6d 70 74 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 if.(empty($shortcut)).{.throw.ne
9c660 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 41 6e 20 w.\InvalidArgumentException('An.
9c680 6f 70 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e option.shortcut.cannot.be.empty.
9c6a0 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 ');.}.}..if.(null.===.$mode).{.$
9c6c0 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 3b 0a 7d 20 65 6c 73 65 69 mode.=.self::VALUE_NONE;.}.elsei
9c6e0 66 20 28 21 69 73 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 31 35 20 f.(!is_int($mode).||.$mode.>.15.
9c700 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 20 5c 49 6e 76 61 6c ||.$mode.<.1).{.throw.new.\Inval
9c720 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 4f 70 74 idArgumentException(sprintf('Opt
9c740 69 6f 6e 20 6d 6f 64 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d ion.mode."%s".is.not.valid.',.$m
9c760 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 ode));.}..$this->name.=.$name;.$
9c780 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 20 3d 20 24 73 68 6f 72 74 63 75 74 3b 0a 24 74 68 69 this->shortcut.=.$shortcut;.$thi
9c7a0 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 s->mode.=.$mode;.$this->descript
9c7c0 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e ion.=.$description;..if.($this->
9c7e0 69 73 41 72 72 61 79 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 isArray().&&.!$this->acceptValue
9c800 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 72 67 75 6d 65 6e 74 ()).{.throw.new.\InvalidArgument
9c820 45 78 63 65 70 74 69 6f 6e 28 27 49 6d 70 6f 73 73 69 62 6c 65 20 74 6f 20 68 61 76 65 20 61 6e Exception('Impossible.to.have.an
9c840 20 6f 70 74 69 6f 6e 20 6d 6f 64 65 20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 69 66 20 74 .option.mode.VALUE_IS_ARRAY.if.t
9c860 68 65 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 he.option.does.not.accept.a.valu
9c880 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 e.');.}..$this->setDefault($defa
9c8a0 75 6c 74 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 65 ult);.}.......public.function.ge
9c8c0 74 53 68 6f 72 74 63 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 tShortcut().{.return.$this->shor
9c8e0 74 63 75 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 tcut;.}.......public.function.ge
9c900 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 0a tName().{.return.$this->name;.}.
9c920 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 56 61 6c 75 ......public.function.acceptValu
9c940 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 e().{.return.$this->isValueRequi
9c960 72 65 64 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 red().||.$this->isValueOptional(
9c980 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 69 73 56 61 6c );.}.......public.function.isVal
9c9a0 75 65 52 65 71 75 69 72 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 ueRequired().{.return.self::VALU
9c9c0 45 5f 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 E_REQUIRED.===.(self::VALUE_REQU
9c9e0 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 75 62 IRED.&.$this->mode);.}.......pub
9ca00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 7b lic.function.isValueOptional().{
9ca20 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 3d 3d .return.self::VALUE_OPTIONAL.===
9ca40 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 26 20 24 74 68 69 73 2d 3e .(self::VALUE_OPTIONAL.&.$this->
9ca60 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 69 mode);.}.......public.function.i
9ca80 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 sArray().{.return.self::VALUE_IS
9caa0 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 _ARRAY.===.(self::VALUE_IS_ARRAY
9cac0 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 75 62 6c 69 .&.$this->mode);.}.........publi
9cae0 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 6c 74 20 3d c.function.setDefault($default.=
9cb00 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 3d .null).{.if.(self::VALUE_NONE.==
9cb20 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 =.(self::VALUE_NONE.&.$this->mod
9cb40 65 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 e).&&.null.!==.$default).{.throw
9cb60 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 6e 6f 74 20 73 65 74 .new.\LogicException('Cannot.set
9cb80 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 77 68 65 6e 20 75 73 69 6e 67 20 49 6e 70 75 .a.default.value.when.using.Inpu
9cba0 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a tOption::VALUE_NONE.mode.');.}..
9cbc0 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c if.($this->isArray()).{.if.(null
9cbe0 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 .===.$default).{.$default.=.arra
9cc00 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c y();.}.elseif.(!is_array($defaul
9cc20 74 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 t)).{.throw.new.\LogicException(
9cc40 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 70 'A.default.value.for.an.array.op
9cc60 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 tion.must.be.an.array.');.}.}..$
9cc80 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c this->default.=.$this->acceptVal
9cca0 75 65 28 29 20 3f 20 24 64 65 66 61 75 6c 74 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a ue().?.$default.:.false;.}......
9ccc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a .public.function.getDefault().{.
9cce0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 return.$this->default;.}.......p
9cd00 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 69 6f 6e 28 29 0a ublic.function.getDescription().
9cd20 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 6e 3b 0a 7d 0a 0a {.return.$this->description;.}..
9cd40 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 49 6e 70 ......public.function.equals(Inp
9cd60 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 utOption.$option).{.return.$opti
9cd80 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 on->getName().===.$this->getName
9cda0 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3d 3d 3d ().&&.$option->getShortcut().===
9cdc0 20 24 74 68 69 73 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e .$this->getShortcut().&&.$option
9cde0 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 ->getDefault().===.$this->getDef
9ce00 61 75 6c 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3d 3d 3d ault().&&.$option->isArray().===
9ce20 20 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 .$this->isArray().&&.$option->is
9ce40 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c ValueRequired().===.$this->isVal
9ce60 75 65 52 65 71 75 69 72 65 64 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 ueRequired().&&.$option->isValue
9ce80 4f 70 74 69 6f 6e 61 6c 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 Optional().===.$this->isValueOpt
9cea0 69 6f 6e 61 6c 28 29 0a 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ional().;.}.}.<?php...........na
9cec0 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 6f 6c mespace.Symfony\Component\Consol
9cee0 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e\Input;........................
9cf00 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 67 76 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 .....class.ArgvInput.extends.Inp
9cf20 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 6f 6b 65 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 70 ut.{.private.$tokens;.private.$p
9cf40 61 72 73 65 64 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 arsed;..........public.function.
9cf60 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 61 72 67 76 20 3d 20 6e 75 6c 6c 2c 20 __construct(array.$argv.=.null,.
9cf80 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 20 3d 20 6e 75 InputDefinition.$definition.=.nu
9cfa0 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 72 67 76 29 20 7b 0a 24 61 72 67 ll).{.if.(null.===.$argv).{.$arg
9cfc0 76 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 3b 0a 7d 0a 0a 0a 20 61 72 72 61 79 v.=.$_SERVER['argv'];.}....array
9cfe0 5f 73 68 69 66 74 28 24 61 72 67 76 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 _shift($argv);..$this->tokens.=.
9d000 24 61 72 67 76 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 $argv;..parent::__construct($def
9d020 69 6e 69 74 69 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 inition);.}..protected.function.
9d040 73 65 74 54 6f 6b 65 6e 73 28 61 72 72 61 79 20 24 74 6f 6b 65 6e 73 29 0a 7b 0a 24 74 68 69 73 setTokens(array.$tokens).{.$this
9d060 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 74 6f 6b 65 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ->tokens.=.$tokens;.}.....protec
9d080 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 0a 7b 0a 24 70 61 72 73 65 4f 70 74 ted.function.parse().{.$parseOpt
9d0a0 69 6f 6e 73 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 20 3d 20 24 74 68 ions.=.true;.$this->parsed.=.$th
9d0c0 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 6f 6b is->tokens;.while.(null.!==.$tok
9d0e0 65 6e 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 en.=.array_shift($this->parsed))
9d100 20 7b 0a 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 27 20 3d 3d 20 24 74 .{.if.($parseOptions.&&.''.==.$t
9d120 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f oken).{.$this->parseArgument($to
9d140 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 ken);.}.elseif.($parseOptions.&&
9d160 20 27 2d 2d 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 .'--'.==.$token).{.$parseOptions
9d180 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e .=.false;.}.elseif.($parseOption
9d1a0 73 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 27 2d 2d 27 29 29 s.&&.0.===.strpos($token,.'--'))
9d1c0 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e .{.$this->parseLongOption($token
9d1e0 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d );.}.elseif.($parseOptions.&&.'-
9d200 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 '.===.$token[0]).{.$this->parseS
9d220 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 hortOption($token);.}.else.{.$th
9d240 69 73 2d 3e 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 7d 0a 7d is->parseArgument($token);.}.}.}
9d260 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 53 68 6f .......private.function.parseSho
9d280 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 rtOption($token).{.$name.=.subst
9d2a0 72 28 24 74 6f 6b 65 6e 2c 20 31 29 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 r($token,.1);..if.(strlen($name)
9d2c0 20 3e 20 31 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 .>.1).{.if.($this->definition->h
9d2e0 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 asShortcut($name[0]).&&.$this->d
9d300 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 72 74 63 75 74 28 efinition->getOptionForShortcut(
9d320 24 6e 61 6d 65 5b 30 5d 29 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 0a 20 24 74 $name[0])->acceptValue()).{...$t
9d340 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 5b 30 5d 2c 20 73 75 his->addShortOption($name[0],.su
9d360 62 73 74 72 28 24 6e 61 6d 65 2c 20 31 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d bstr($name,.1));.}.else.{.$this-
9d380 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 7d >parseShortOptionSet($name);.}.}
9d3a0 20 65 6c 73 65 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 24 6e .else.{.$this->addShortOption($n
9d3c0 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ame,.null);.}.}.........private.
9d3e0 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 function.parseShortOptionSet($na
9d400 6d 65 29 0a 7b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 20 me).{.$len.=.strlen($name);.for.
9d420 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 ($i.=.0;.$i.<.$len;.$i++).{.if.(
9d440 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 75 74 28 !$this->definition->hasShortcut(
9d460 24 6e 61 6d 65 5b 24 69 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 $name[$i])).{.throw.new.\Runtime
9d480 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 6f 70 74 Exception(sprintf('The."-%s".opt
9d4a0 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 5b 24 69 5d 29 ion.does.not.exist.',.$name[$i])
9d4c0 29 3b 0a 7d 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 );.}..$option.=.$this->definitio
9d4e0 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 n->getOptionForShortcut($name[$i
9d500 5d 29 3b 0a 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 ]);.if.($option->acceptValue()).
9d520 7b 0a 24 74 68 69 73 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 {.$this->addLongOption($option->
9d540 67 65 74 4e 61 6d 65 28 29 2c 20 24 69 20 3d 3d 3d 20 24 6c 65 6e 20 2d 20 31 20 3f 20 6e 75 6c getName(),.$i.===.$len.-.1.?.nul
9d560 6c 20 3a 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 69 20 2b 20 31 29 29 3b 0a 0a 62 72 65 l.:.substr($name,.$i.+.1));..bre
9d580 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f ak;.}.else.{.$this->addLongOptio
9d5a0 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d n($option->getName(),.true);.}.}
9d5c0 0a 7d 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 4c .}.......private.function.parseL
9d5e0 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 ongOption($token).{.$name.=.subs
9d600 74 72 28 24 74 6f 6b 65 6e 2c 20 32 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 tr($token,.2);..if.(false.!==.$p
9d620 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3d 27 29 29 20 7b 0a 24 74 68 69 73 os.=.strpos($name,.'=')).{.$this
9d640 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c ->addLongOption(substr($name,.0,
9d660 20 24 70 6f 73 29 2c 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 70 6f 73 20 2b 20 31 29 29 .$pos),.substr($name,.$pos.+.1))
9d680 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 ;.}.else.{.$this->addLongOption(
9d6a0 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 $name,.null);.}.}.........privat
9d6c0 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 e.function.parseArgument($token)
9d6e0 0a 7b 0a 24 63 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b .{.$c.=.count($this->arguments);
9d700 0a 0a 0a 20 69 66 20 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 ....if.($this->definition->hasAr
9d720 67 75 6d 65 6e 74 28 24 63 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 gument($c)).{.$arg.=.$this->defi
9d740 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 29 3b 0a 24 74 68 69 73 2d 3e nition->getArgument($c);.$this->
9d760 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 arguments[$arg->getName()].=.$ar
9d780 67 2d 3e 69 73 41 72 72 61 79 28 29 3f 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 29 20 3a 20 24 74 g->isArray()?.array($token).:.$t
9d7a0 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 oken;....}.elseif.($this->defini
9d7c0 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 20 26 26 20 24 74 68 tion->hasArgument($c.-.1).&&.$th
9d7e0 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 74 28 24 63 20 2d is->definition->getArgument($c.-
9d800 20 31 29 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e .1)->isArray()).{.$arg.=.$this->
9d820 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 3b definition->getArgument($c.-.1);
9d840 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 74 4e 61 6d 65 28 .$this->arguments[$arg->getName(
9d860 29 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 )][].=.$token;....}.else.{.throw
9d880 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e 79 .new.\RuntimeException('Too.many
9d8a0 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 .arguments.');.}.}..........priv
9d8c0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f ate.function.addShortOption($sho
9d8e0 72 74 63 75 74 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 rtcut,.$value).{.if.(!$this->def
9d900 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 inition->hasShortcut($shortcut))
9d920 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 73 .{.throw.new.\RuntimeException(s
9d940 70 72 69 6e 74 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 printf('The."-%s".option.does.no
9d960 74 20 65 78 69 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 t.exist.',.$shortcut));.}..$this
9d980 2d 3e 61 64 64 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 ->addLongOption($this->definitio
9d9a0 6e 2d 3e 67 65 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 n->getOptionForShortcut($shortcu
9d9c0 74 29 2d 3e 67 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 t)->getName(),.$value);.}.......
9d9e0 0a 0a 0a 70 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 ...private.function.addLongOptio
9da00 6e 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 n($name,.$value).{.if.(!$this->d
9da20 65 66 69 6e 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 efinition->hasOption($name)).{.t
9da40 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
9da60 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 6f 74 20 65 tf('The."--%s".option.does.not.e
9da80 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 3d 20 24 74 xist.',.$name));.}..$option.=.$t
9daa0 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 6e 61 6d 65 his->definition->getOption($name
9dac0 29 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 76 );....if.(false.===.$value).{.$v
9dae0 61 6c 75 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 alue.=.null;.}..if.(null.===.$va
9db00 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 20 26 26 lue.&&.$option->acceptValue().&&
9db20 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b 0a 0a 20 0a 20 24 6e 65 .count($this->parsed)).{.....$ne
9db40 78 74 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 3b xt.=.array_shift($this->parsed);
9db60 0a 69 66 20 28 69 73 73 65 74 28 24 6e 65 78 74 5b 30 5d 29 20 26 26 20 27 2d 27 20 21 3d 3d 20 .if.(isset($next[0]).&&.'-'.!==.
9db80 24 6e 65 78 74 5b 30 5d 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 6e 65 78 74 3b 0a 7d 20 65 6c $next[0]).{.$value.=.$next;.}.el
9dba0 73 65 69 66 20 28 65 6d 70 74 79 28 24 6e 65 78 74 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 27 seif.(empty($next)).{.$value.=.'
9dbc0 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d ';.}.else.{.array_unshift($this-
9dbe0 3e 70 61 72 73 65 64 2c 20 24 6e 65 78 74 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d >parsed,.$next);.}.}..if.(null.=
9dc00 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 ==.$value).{.if.($option->isValu
9dc20 65 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d eRequired()).{.throw.new.\Runtim
9dc40 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 2d 25 73 22 20 6f eException(sprintf('The."--%s".o
9dc60 70 74 69 6f 6e 20 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 ption.requires.a.value.',.$name)
9dc80 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b );.}..if.(!$option->isArray()).{
9dca0 0a 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 .$value.=.$option->isValueOption
9dcc0 61 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 al().?.$option->getDefault().:.t
9dce0 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 rue;.}.}..if.($option->isArray()
9dd00 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 76 ).{.$this->options[$name][].=.$v
9dd20 61 6c 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e alue;.}.else.{.$this->options[$n
9dd40 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ame].=.$value;.}.}.......public.
9dd60 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 0a 7b 0a 66 6f function.getFirstArgument().{.fo
9dd80 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 reach.($this->tokens.as.$token).
9dda0 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 {.if.($token.&&.'-'.===.$token[0
9ddc0 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b ]).{.continue;.}..return.$token;
9dde0 0a 7d 0a 7d 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 .}.}............public.function.
9de00 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 0a 7b 0a 24 76 hasParameterOption($values).{.$v
9de20 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 66 6f 72 65 61 63 alues.=.(array).$values;..foreac
9de40 68 20 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 24 76 29 20 7b 0a 69 66 20 28 69 6e h.($this->tokens.as.$v).{.if.(in
9de60 5f 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 _array($v,.$values)).{.return.tr
9de80 75 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 ue;.}.}..return.false;.}........
9dea0 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 6d 65 74 65 .....public.function.getParamete
9dec0 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 66 61 6c 73 rOption($values,.$default.=.fals
9dee0 65 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 e).{.$values.=.(array).$values;.
9df00 0a 24 74 6f 6b 65 6e 73 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 69 6c 65 20 .$tokens.=.$this->tokens;.while.
9df20 28 24 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 29 20 ($token.=.array_shift($tokens)).
9df40 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a {.foreach.($values.as.$value).{.
9df60 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 24 76 61 6c 75 65 29 if.(0.===.strpos($token,.$value)
9df80 29 20 7b 0a 69 66 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 ).{.if.(false.!==.$pos.=.strpos(
9dfa0 24 74 6f 6b 65 6e 2c 20 27 3d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 74 $token,.'=')).{.return.substr($t
9dfc0 6f 6b 65 6e 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 oken,.$pos.+.1);.}..return.array
9dfe0 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 _shift($tokens);.}.}.}..return.$
9e000 64 65 66 61 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 default;.}.......public.function
9e020 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 .__toString().{.$self.=.$this;.$
9e040 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 6f tokens.=.array_map(function.($to
9e060 6b 65 6e 29 20 75 73 65 20 28 24 73 65 6c 66 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 ken).use.($self).{.if.(preg_matc
9e080 68 28 27 7b 5e 28 2d 5b 5e 3d 5d 2b 3d 29 28 2e 2b 29 7d 27 2c 20 24 74 6f 6b 65 6e 2c 20 24 6d h('{^(-[^=]+=)(.+)}',.$token,.$m
9e0a0 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 24 73 65 6c atch)).{.return.$match[1]...$sel
9e0c0 66 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 6d 61 74 63 68 5b 32 5d 29 3b 0a 7d 0a 0a 69 66 f->escapeToken($match[2]);.}..if
9e0e0 20 28 24 74 6f 6b 65 6e 20 26 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 21 3d 3d 20 27 2d 27 29 20 7b .($token.&&.$token[0].!==.'-').{
9e100 0a 72 65 74 75 72 6e 20 24 73 65 6c 66 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 74 6f 6b 65 .return.$self->escapeToken($toke
9e120 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e n);.}..return.$token;.},.$this->
9e140 74 6f 6b 65 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 74 tokens);..return.implode('.',.$t
9e160 6f 6b 65 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 okens);.}.}.<?php...........name
9e180 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 5c space.Symfony\Component\Console\
9e1a0 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 70 75 74 49 6e 74 65 Input;.......interface.InputInte
9e1c0 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 67 65 74 rface.{......public.function.get
9e1e0 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c FirstArgument();............publ
9e200 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 70 74 69 6f 6e 28 24 ic.function.hasParameterOption($
9e220 76 61 6c 75 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 values);.............public.func
9e240 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 65 73 2c tion.getParameterOption($values,
9e260 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .$default.=.false);.......public
9e280 20 66 75 6e 63 74 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 .function.bind(InputDefinition.$
9e2a0 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 definition);.........public.func
9e2c0 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tion.validate();.......public.fu
9e2e0 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 nction.getArguments();.........p
9e300 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 65 ublic.function.getArgument($name
9e320 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 65 74 41 );..........public.function.setA
9e340 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a rgument($name,.$value);.........
9e360 70 75 62 6c 69 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 public.function.hasArgument($nam
9e380 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 67 65 74 4f 70 74 e);.......public.function.getOpt
9e3a0 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 74 69 6f 6e 20 ions();.........public.function.
9e3c0 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 getOption($name);..........publi
9e3e0 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 2c 20 24 76 61 6c c.function.setOption($name,.$val
9e400 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 69 6f 6e 20 68 61 73 ue);.........public.function.has
9e420 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 Option($name);.......public.func
9e440 74 69 6f 6e 20 69 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 tion.isInteractive();.......publ
9e460 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 ic.function.setInteractive($inte
9e480 72 61 63 74 69 76 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 ractive);.}.<?php...........name
9e4a0 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 5c space.Symfony\Component\Console\
9e4c0 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 41 72 72 61 79 49 6e Input;.............class.ArrayIn
9e4e0 70 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 70 61 72 put.extends.Input.{.private.$par
9e500 61 6d 65 74 65 72 73 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 ameters;..........public.functio
9e520 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 61 72 61 6d 65 74 65 72 73 2c n.__construct(array.$parameters,
9e540 20 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 20 3d 20 6e .InputDefinition.$definition.=.n
9e560 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 3d 20 24 70 61 72 61 ull).{.$this->parameters.=.$para
9e580 6d 65 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 64 65 meters;..parent::__construct($de
9e5a0 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 finition);.}.......public.functi
9e5c0 6f 6e 20 67 65 74 46 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 on.getFirstArgument().{.foreach.
9e5e0 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 ($this->parameters.as.$key.=>.$v
9e600 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6b 65 79 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 alue).{.if.($key.&&.'-'.===.$key
9e620 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 [0]).{.continue;.}..return.$valu
9e640 65 3b 0a 7d 0a 7d 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 e;.}.}............public.functio
9e660 6e 20 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 0a 7b 0a n.hasParameterOption($values).{.
9e680 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 66 6f 72 65 $values.=.(array).$values;..fore
9e6a0 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 20 3d 3e 20 ach.($this->parameters.as.$k.=>.
9e6c0 24 76 29 20 7b 0a 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6b 29 29 20 7b 0a 24 76 20 3d 20 24 6b $v).{.if.(!is_int($k)).{.$v.=.$k
9e6e0 3b 0a 7d 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 ;.}..if.(in_array($v,.$values)).
9e700 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 66 61 6c 73 65 {.return.true;.}.}..return.false
9e720 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 6e 20 ;.}.............public.function.
9e740 67 65 74 50 61 72 61 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 getParameterOption($values,.$def
9e760 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 ault.=.false).{.$values.=.(array
9e780 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 70 61 72 61 ).$values;..foreach.($this->para
9e7a0 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 69 73 5f 69 6e 74 meters.as.$k.=>.$v).{.if.(is_int
9e7c0 28 24 6b 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b ($k).&&.in_array($v,.$values)).{
9e7e0 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 6e 5f 61 72 72 61 79 .return.true;.}.elseif.(in_array
9e800 28 24 6b 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 3b 0a 7d 0a 7d 0a ($k,.$values)).{.return.$v;.}.}.
9e820 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .return.$default;.}.......public
9e840 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 24 70 61 72 61 6d 73 .function.__toString().{.$params
9e860 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 70 61 72 61 .=.array();.foreach.($this->para
9e880 6d 65 74 65 72 73 20 61 73 20 24 70 61 72 61 6d 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 meters.as.$param.=>.$val).{.if.(
9e8a0 24 70 61 72 61 6d 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 70 61 72 61 6d 5b 30 5d 29 20 7b 0a 24 $param.&&.'-'.===.$param[0]).{.$
9e8c0 70 61 72 61 6d 73 5b 5d 20 3d 20 24 70 61 72 61 6d 20 2e 20 28 27 27 20 21 3d 20 24 76 61 6c 20 params[].=.$param...(''.!=.$val.
9e8e0 3f 20 27 3d 27 2e 24 74 68 69 73 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 76 61 6c 29 20 3a ?.'='.$this->escapeToken($val).:
9e900 20 27 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 72 61 6d 73 5b 5d 20 3d 20 24 74 68 69 73 .'');.}.else.{.$params[].=.$this
9e920 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 76 61 6c 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e ->escapeToken($val);.}.}..return
9e940 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 70 61 72 61 6d 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 .implode('.',.$params);.}.....pr
9e960 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 0a 7b 0a 66 6f 72 65 61 otected.function.parse().{.forea
9e980 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 65 79 20 3d 3e ch.($this->parameters.as.$key.=>
9e9a0 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6b 65 79 .$value).{.if.(0.===.strpos($key
9e9c0 2c 20 27 2d 2d 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 ,.'--')).{.$this->addLongOption(
9e9e0 73 75 62 73 74 72 28 24 6b 65 79 2c 20 32 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 substr($key,.2),.$value);.}.else
9ea00 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 if.('-'.===.$key[0]).{.$this->ad
9ea20 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 31 29 2c 20 24 76 dShortOption(substr($key,.1),.$v
9ea40 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 alue);.}.else.{.$this->addArgume
9ea60 6e 74 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a nt($key,.$value);.}.}.}.........
9ea80 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e .private.function.addShortOption
9eaa0 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 ($shortcut,.$value).{.if.(!$this
9eac0 2d 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 73 68 6f 72 74 ->definition->hasShortcut($short
9eae0 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 75 6d 65 cut)).{.throw.new.\InvalidArgume
9eb00 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 22 20 6f ntException(sprintf('The."-%s".o
9eb20 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 75 ption.does.not.exist.',.$shortcu
9eb40 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 68 t));.}..$this->addLongOption($th
9eb60 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 72 is->definition->getOptionForShor
9eb80 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 6c tcut($shortcut)->getName(),.$val
9eba0 75 65 29 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 69 6f ue);.}...........private.functio
9ebc0 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).{
9ebe0 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
9ec00 6f 6e 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 on($name)).{.throw.new.\InvalidA
9ec20 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 2d rgumentException(sprintf('The."-
9ec40 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 2e 27 2c 20 24 6e -%s".option.does.not.exist.',.$n
9ec60 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e ame));.}..$option.=.$this->defin
9ec80 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 6e 75 ition->getOption($name);..if.(nu
9eca0 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 ll.===.$value).{.if.($option->is
9ecc0 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e ValueRequired()).{.throw.new.\In
9ece0 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('
9ed00 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 20 76 61 6c The."--%s".option.requires.a.val
9ed20 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 6f 70 74 69 ue.',.$name));.}..$value.=.$opti
9ed40 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 69 6f 6e 2d on->isValueOptional().?.$option-
9ed60 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 24 74 68 69 73 2d 3e >getDefault().:.true;.}..$this->
9ed80 6f 70 74 69 6f 6e 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 options[$name].=.$value;.}......
9eda0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 ....private.function.addArgument
9edc0 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
9ede0 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)).{.
9ee00 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
9ee20 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
9ee40 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
9ee60 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;.}
9ee80 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 6d .}.<?php...........namespace.Sym
9eea0 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 3b 0a 0a 75 fony\Component\Console\Input;..u
9eec0 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 44 65 73 se.Symfony\Component\Console\Des
9eee0 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 criptor\TextDescriptor;.use.Symf
9ef00 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 ony\Component\Console\Descriptor
9ef20 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 \XmlDescriptor;................c
9ef40 6c 61 73 73 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 lass.InputDefinition.{.private.$
9ef60 61 72 67 75 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 arguments;.private.$requiredCoun
9ef80 74 3b 0a 70 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 t;.private.$hasAnArrayArgument.=
9efa0 20 66 61 6c 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 .false;.private.$hasOptional;.pr
9efc0 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 73 68 6f 72 74 63 75 ivate.$options;.private.$shortcu
9efe0 74 73 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 5f 5f 63 6f ts;.........public.function.__co
9f000 6e 73 74 72 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 nstruct(array.$definition.=.arra
9f020 79 28 29 29 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 y()).{.$this->setDefinition($def
9f040 69 6e 69 74 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 inition);.}.........public.funct
9f060 69 6f 6e 20 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 ion.setDefinition(array.$definit
9f080 69 6f 6e 29 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 ion).{.$arguments.=.array();.$op
9f0a0 74 69 6f 6e 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 tions.=.array();.foreach.($defin
9f0c0 69 74 69 6f 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 ition.as.$item).{.if.($item.inst
9f0e0 61 6e 63 65 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 anceof.InputOption).{.$options[]
9f100 20 3d 20 24 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 .=.$item;.}.else.{.$arguments[].
9f120 3d 20 24 69 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 =.$item;.}.}..$this->setArgument
9f140 73 28 24 61 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 s($arguments);.$this->setOptions
9f160 28 24 6f 70 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 ($options);.}.........public.fun
9f180 63 74 69 6f 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 ction.setArguments($arguments.=.
9f1a0 61 72 72 61 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 array()).{.$this->arguments.=.ar
9f1c0 72 61 79 28 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 ray();.$this->requiredCount.=.0;
9f1e0 0a 24 74 68 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 .$this->hasOptional.=.false;.$th
9f200 69 73 2d 3e 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 is->hasAnArrayArgument.=.false;.
9f220 24 74 68 69 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 $this->addArguments($arguments);
9f240 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 61 64 64 41 72 .}.........public.function.addAr
9f260 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 79 28 29 29 0a 7b 0a guments($arguments.=.array()).{.
9f280 69 66 20 28 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 if.(null.!==.$arguments).{.forea
9f2a0 63 68 20 28 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 ch.($arguments.as.$argument).{.$
9f2c0 74 68 69 73 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 this->addArgument($argument);.}.
9f2e0 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 6e 20 61 64 }.}...........public.function.ad
9f300 64 41 72 67 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 dArgument(InputArgument.$argumen
9f320 74 29 0a 7b 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 t).{.if.(isset($this->arguments[
9f340 24 61 72 67 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 $argument->getName()])).{.throw.
9f360 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 28 27 41 6e 20 new.\LogicException(sprintf('An.
9f380 61 72 67 75 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 argument.with.name."%s".already.
9f3a0 65 78 69 73 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 exists.',.$argument->getName()))
9f3c0 3b 0a 7d 0a 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 ;.}..if.($this->hasAnArrayArgume
9f3e0 6e 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 6e 28 nt).{.throw.new.\LogicException(
9f400 27 43 61 6e 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 'Cannot.add.an.argument.after.an
9f420 20 61 72 72 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 .array.argument.');.}..if.($argu
9f440 6d 65 6e 74 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 ment->isRequired().&&.$this->has
9f460 4f 70 74 69 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 Optional).{.throw.new.\LogicExce
9f480 70 74 69 6f 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 ption('Cannot.add.a.required.arg
9f4a0 75 6d 65 6e 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 ument.after.an.optional.one.');.
9f4c0 7d 0a 0a 69 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 }..if.($argument->isArray()).{.$
9f4e0 74 68 69 73 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 this->hasAnArrayArgument.=.true;
9f500 0a 7d 0a 0a 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 .}..if.($argument->isRequired())
9f520 20 7b 0a 2b 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 .{.++$this->requiredCount;.}.els
9f540 65 20 7b 0a 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 e.{.$this->hasOptional.=.true;.}
9f560 0a 0a 24 74 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 ..$this->arguments[$argument->ge
9f580 74 4e 61 6d 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 tName()].=.$argument;.}.........
9f5a0 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 6e 74 28 ....public.function.getArgument(
9f5c0 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 $name).{.if.(!$this->hasArgument
9f5e0 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 72 67 ($name)).{.throw.new.\InvalidArg
9f600 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 25 73 22 umentException(sprintf('The."%s"
9f620 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 6e 61 6d .argument.does.not.exist.',.$nam
9f640 65 29 29 3b 0a 7d 0a 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 e));.}..$arguments.=.is_int($nam
9f660 65 29 20 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 e).?.array_values($this->argumen
9f680 74 73 29 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 ts).:.$this->arguments;..return.
9f6a0 24 61 72 67 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 $arguments[$name];.}...........p
9f6c0 75 62 6c 69 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 ublic.function.hasArgument($name
9f6e0 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 3f ).{.$arguments.=.is_int($name).?
9f700 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 20 .array_values($this->arguments).
9f720 3a 20 24 74 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 :.$this->arguments;..return.isse
9f740 74 28 24 61 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 t($arguments[$name]);.}.........
9f760 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 73 28 29 0a 7b public.function.getArguments().{
9f780 0a 72 65 74 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 .return.$this->arguments;.}.....
9f7a0 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 6e 74 43 6f 75 ..public.function.getArgumentCou
9f7c0 6e 74 28 29 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 nt().{.return.$this->hasAnArrayA
9f7e0 72 67 75 6d 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 rgument.?.PHP_INT_MAX.:.count($t
9f800 68 69 73 2d 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 his->arguments);.}.......public.
9f820 66 75 6e 63 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 function.getArgumentRequiredCoun
9f840 74 28 29 0a 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 t().{.return.$this->requiredCoun
9f860 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 41 72 t;.}.......public.function.getAr
9f880 67 75 6d 65 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 gumentDefaults().{.$values.=.arr
9f8a0 61 79 28 29 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 ay();.foreach.($this->arguments.
9f8c0 61 73 20 24 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 as.$argument).{.$values[$argumen
9f8e0 74 2d 3e 67 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 t->getName()].=.$argument->getDe
9f900 66 61 75 6c 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 fault();.}..return.$values;.}...
9f920 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 74 69 6f 6e 73 ......public.function.setOptions
9f940 28 24 6f 70 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 ($options.=.array()).{.$this->op
9f960 74 69 6f 6e 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 tions.=.array();.$this->shortcut
9f980 73 20 3d 20 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 s.=.array();.$this->addOptions($
9f9a0 6f 70 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 options);.}.........public.funct
9f9c0 69 6f 6e 20 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 ion.addOptions($options.=.array(
9f9e0 29 29 0a 7b 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 )).{.foreach.($options.as.$optio
9fa00 6e 29 20 7b 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 n).{.$this->addOption($option);.
9fa20 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 6e 20 61 64 }.}...........public.function.ad
9fa40 64 4f 70 74 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 dOption(InputOption.$option).{.i
9fa60 66 20 28 69 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 f.(isset($this->options[$option-
9fa80 3e 67 65 74 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 >getName()]).&&.!$option->equals
9faa0 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 4e 61 6d 65 ($this->options[$option->getName
9fac0 28 29 5d 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 ()])).{.throw.new.\LogicExceptio
9fae0 6e 28 73 70 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 n(sprintf('An.option.named."%s".
9fb00 61 6c 72 65 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 already.exists.',.$option->getNa
9fb20 6d 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 me()));.}..if.($option->getShort
9fb40 63 75 74 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 cut()).{.foreach.(explode('|',.$
9fb60 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 61 73 20 24 73 68 6f 72 74 option->getShortcut()).as.$short
9fb80 63 75 74 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 cut).{.if.(isset($this->shortcut
9fba0 73 5b 24 73 68 6f 72 74 63 75 74 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c s[$shortcut]).&&.!$option->equal
9fbc0 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 s($this->options[$this->shortcut
9fbe0 73 5b 24 73 68 6f 72 74 63 75 74 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 s[$shortcut]])).{.throw.new.\Log
9fc00 69 63 45 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 icException(sprintf('An.option.w
9fc20 69 74 68 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 ith.shortcut."%s".already.exists
9fc40 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f .',.$shortcut));.}.}.}..$this->o
9fc60 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 20 3d 20 24 6f 70 ptions[$option->getName()].=.$op
9fc80 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 74 63 75 74 28 29 tion;.if.($option->getShortcut()
9fca0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f ).{.foreach.(explode('|',.$optio
9fcc0 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 61 73 20 24 73 68 6f 72 74 63 75 74 29 20 n->getShortcut()).as.$shortcut).
9fce0 7b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 20 3d 20 {.$this->shortcuts[$shortcut].=.
9fd00 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a $option->getName();.}.}.}.......
9fd20 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 74 69 6f 6e 28 ......public.function.getOption(
9fd40 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 $name).{.if.(!$this->hasOption($
9fd60 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 6d name)).{.throw.new.\InvalidArgum
9fd80 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 2d 25 73 22 entException(sprintf('The."--%s"
9fda0 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 6e 61 6d 65 29 .option.does.not.exist.',.$name)
9fdc0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d );.}..return.$this->options[$nam
9fde0 65 5d 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 e];.}...........public.function.
9fe00 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 hasOption($name).{.return.isset(
9fe20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a $this->options[$name]);.}.......
9fe40 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 0a 7b ..public.function.getOptions().{
9fe60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .return.$this->options;.}.......
9fe80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e ..public.function.hasShortcut($n
9fea0 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 2d 3e 73 68 6f 72 74 ame).{.return.isset($this->short
9fec0 63 75 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 69 63 20 66 cuts[$name]);.}.........public.f
9fee0 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 unction.getOptionForShortcut($sh
9ff00 6f 72 74 63 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f ortcut).{.return.$this->getOptio
9ff20 6e 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 n($this->shortcutToName($shortcu
9ff40 74 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 67 65 74 t));.}.......public.function.get
9ff60 4f 70 74 69 6f 6e 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 OptionDefaults().{.$values.=.arr
9ff80 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 ay();.foreach.($this->options.as
9ffa0 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 .$option).{.$values[$option->get
9ffc0 4e 61 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b Name()].=.$option->getDefault();
9ffe0 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 0a 0a 0a 0a .}..return.$values;.}...........
a0000 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 private.function.shortcutToName(
a0020 24 73 68 6f 72 74 63 75 74 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 $shortcut).{.if.(!isset($this->s
a0040 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 hortcuts[$shortcut])).{.throw.ne
a0060 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
a0080 6e 74 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 ntf('The."-%s".option.does.not.e
a00a0 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 xist.',.$shortcut));.}..return.$
a00c0 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 3b 0a 7d 0a 0a 0a this->shortcuts[$shortcut];.}...
a00e0 0a 0a 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 ....public.function.getSynopsis(
a0100 29 0a 7b 0a 24 65 6c 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 ).{.$elements.=.array();.foreach
a0120 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 6f 70 74 69 6f 6e .($this->getOptions().as.$option
a0140 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 ).{.$shortcut.=.$option->getShor
a0160 74 63 75 74 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 2d 25 73 7c 27 2c 20 24 6f 70 74 69 6f 6e tcut().?.sprintf('-%s|',.$option
a0180 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 3b 0a 24 65 6c 65 6d 65 6e 74 73 ->getShortcut()).:.'';.$elements
a01a0 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 5b 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c [].=.sprintf('['.($option->isVal
a01c0 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 25 73 2d 2d 25 73 3d 22 2e 2e 2e 22 27 20 3a 20 ueRequired().?.'%s--%s="..."'.:.
a01e0 28 24 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 27 25 ($option->isValueOptional().?.'%
a0200 73 2d 2d 25 73 5b 3d 22 2e 2e 2e 22 5d 27 20 3a 20 27 25 73 2d 2d 25 73 27 29 29 2e 27 5d 27 2c s--%s[="..."]'.:.'%s--%s')).']',
a0220 20 24 73 68 6f 72 74 63 75 74 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b .$shortcut,.$option->getName());
a0240 0a 7d 0a 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 .}..foreach.($this->getArguments
a0260 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d ().as.$argument).{.$elements[].=
a0280 20 73 70 72 69 6e 74 66 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 .sprintf($argument->isRequired()
a02a0 20 3f 20 27 25 73 27 20 3a 20 27 5b 25 73 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 .?.'%s'.:.'[%s]',.$argument->get
a02c0 4e 61 6d 65 28 29 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 Name().($argument->isArray().?.'
a02e0 31 27 20 3a 20 27 27 29 29 3b 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 1'.:.''));..if.($argument->isArr
a0300 61 79 28 29 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 27 2e ay()).{.$elements[].=.sprintf('.
a0320 2e 2e 20 5b 25 73 4e 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 ...[%sN]',.$argument->getName())
a0340 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 65 6c 65 6d ;.}.}..return.implode('.',.$elem
a0360 65 6e 74 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 ents);.}.........public.function
a0380 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 54 65 .asText().{.$descriptor.=.new.Te
a03a0 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 xtDescriptor();..return.$descrip
a03c0 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a tor->describe($this);.}.........
a03e0 0a 0a 70 75 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 ..public.function.asXml($asDom.=
a0400 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 58 6d 6c 44 .false).{.$descriptor.=.new.XmlD
a0420 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 escriptor();..return.$descriptor
a0440 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 61 73 5f 64 6f 6d 27 ->describe($this,.array('as_dom'
a0460 20 3d 3e 20 24 61 73 44 6f 6d 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a .=>.$asDom));.}.}.<?php.........
a0480 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 6f ..namespace.Symfony\Component\Co
a04a0 6e 73 6f 6c 65 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 nsole;..use.Symfony\Component\Co
a04c0 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 43 nsole\Application;.use.Symfony\C
a04e0 6f 6d 70 6f 6e 65 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 omponent\Console\Input\StringInp
a0500 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 6f 6c ut;.use.Symfony\Component\Consol
a0520 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 65 20 53 79 6d 66 e\Output\ConsoleOutput;.use.Symf
a0540 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 42 75 69 ony\Component\Process\ProcessBui
a0560 6c 64 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 50 72 6f 63 lder;.use.Symfony\Component\Proc
a0580 65 73 73 5c 50 68 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 ess\PhpExecutableFinder;........
a05a0 0a 0a 0a 63 6c 61 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 ...class.Shell.{.private.$applic
a05c0 61 74 69 6f 6e 3b 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 ation;.private.$history;.private
a05e0 20 24 6f 75 74 70 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 .$output;.private.$hasReadline;.
a0600 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a private.$processIsolation;......
a0620 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(
a0640 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 Application.$application).{.$thi
a0660 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 20 3d 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 s->hasReadline.=.function_exists
a0680 28 27 72 65 61 64 6c 69 6e 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e ('readline');.$this->application
a06a0 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 20 .=.$application;.$this->history.
a06c0 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2e 27 2f 2e 68 69 73 74 6f 72 79 5f 27 2e 24 61 =.getenv('HOME').'/.history_'.$a
a06e0 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 pplication->getName();.$this->ou
a0700 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 29 3b 0a 24 74 68 69 tput.=.new.ConsoleOutput();.$thi
a0720 73 2d 3e 70 72 6f 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 s->processIsolation.=.false;.}..
a0740 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 24 74 68 69 73 ...public.function.run().{.$this
a0760 2d 3e 61 70 70 6c 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 ->application->setAutoExit(false
a0780 29 3b 0a 24 74 68 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 );.$this->application->setCatchE
a07a0 78 63 65 70 74 69 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 xceptions(true);..if.($this->has
a07c0 52 65 61 64 6c 69 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 Readline).{.readline_read_histor
a07e0 79 28 24 74 68 69 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 y($this->history);.readline_comp
a0800 6c 65 74 69 6f 6e 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 letion_function(array($this,.'au
a0820 74 6f 63 6f 6d 70 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 tocompleter'));.}..$this->output
a0840 2d 3e 77 72 69 74 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 ->writeln($this->getHeader());.$
a0860 70 68 70 20 3d 20 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 php.=.null;.if.($this->processIs
a0880 6f 6c 61 74 69 6f 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 olation).{.$finder.=.new.PhpExec
a08a0 75 74 61 62 6c 65 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 utableFinder();.$php.=.$finder->
a08c0 66 69 6e 64 28 29 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 find();.$this->output->writeln(<
a08e0 3c 3c 45 4f 46 0a 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 <<EOF.<info>Running.with.process
a0900 20 69 73 6f 6c 61 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 .isolation,.you.should.consider.
a0920 74 68 69 73 3a 3c 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 this:</info>...*.each.command.is
a0940 20 65 78 65 63 75 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 .executed.as.separate.process,..
a0960 20 2a 20 63 6f 6d 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 .*.commands.don't.support.intera
a0980 63 74 69 76 69 74 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 ctivity,.all.params.must.be.pass
a09a0 65 64 20 65 78 70 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 ed.explicitly,...*.commands.outp
a09c0 75 74 20 69 73 20 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 ut.is.not.colorized...EOF.);.}..
a09e0 77 68 69 6c 65 20 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 while.(true).{.$command.=.$this-
a0a00 3e 72 65 61 64 6c 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 >readline();..if.(false.===.$com
a0a20 6d 61 6e 64 29 20 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 mand).{.$this->output->writeln("
a0a40 5c 6e 22 29 3b 0a 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 \n");..break;.}..if.($this->hasR
a0a60 65 61 64 6c 69 6e 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 eadline).{.readline_add_history(
a0a80 24 63 6f 6d 6d 61 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 $command);.readline_write_histor
a0aa0 79 28 24 74 68 69 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 y($this->history);.}..if.($this-
a0ac0 3e 70 72 6f 63 65 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 >processIsolation).{.$pb.=.new.P
a0ae0 72 6f 63 65 73 73 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 rocessBuilder();..$process.=.$pb
a0b00 0a 2d 3e 61 64 64 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 .->add($php).->add($_SERVER['arg
a0b20 76 27 5d 5b 30 5d 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 v'][0]).->add($command).->inheri
a0b40 74 45 6e 76 69 72 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 tEnvironmentVariables(true).->ge
a0b60 74 50 72 6f 63 65 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 tProcess().;..$output.=.$this->o
a0b80 75 74 70 75 74 3b 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 utput;.$process->run(function($t
a0ba0 79 70 65 2c 20 24 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 ype,.$data).use.($output).{.$out
a0bc0 70 75 74 2d 3e 77 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 put->writeln($data);.});..$ret.=
a0be0 20 24 70 72 6f 63 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 .$process->getExitCode();.}.else
a0c00 20 7b 0a 24 72 65 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 .{.$ret.=.$this->application->ru
a0c20 6e 28 6e 65 77 20 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 n(new.StringInput($command),.$th
a0c40 69 73 2d 3e 6f 75 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 is->output);.}..if.(0.!==.$ret).
a0c60 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 73 70 72 69 6e 74 66 {.$this->output->writeln(sprintf
a0c80 28 27 3c 65 72 72 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 ('<error>The.command.terminated.
a0ca0 77 69 74 68 20 61 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 with.an.error.status.(%s)</error
a0cc0 3e 27 2c 20 24 72 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 >',.$ret));.}.}.}.......protecte
a0ce0 64 20 66 75 6e 63 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 d.function.getHeader().{.return.
a0d00 3c 3c 3c 45 4f 46 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 <<<EOF..Welcome.to.the.<info>{$t
a0d20 68 69 73 2d 3e 61 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 his->application->getName()}</in
a0d40 66 6f 3e 20 73 68 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 fo>.shell.(<comment>{$this->appl
a0d60 69 63 61 74 69 6f 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 ication->getVersion()}</comment>
a0d80 29 2e 0a 0a 41 74 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 )...At.the.prompt,.type.<comment
a0da0 3e 68 65 6c 70 3c 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 >help</comment>.for.some.help,.o
a0dc0 72 20 3c 63 6f 6d 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 r.<comment>list</comment>.to.get
a0de0 20 61 20 6c 69 73 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 .a.list.of.available.commands...
a0e00 54 6f 20 65 78 69 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 To.exit.the.shell,.type.<comment
a0e20 3e 5e 44 3c 2f 63 6f 6d 6d 65 6e 74 3e 2e 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f >^D</comment>...EOF;.}.......pro
a0e40 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 6d 70 74 28 29 0a 7b 0a 0a 20 tected.function.getPrompt().{...
a0e60 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 return.$this->output->getFormatt
a0e80 65 72 28 29 2d 3e 66 6f 72 6d 61 74 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d er()->format($this->application-
a0ea0 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 3e 20 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 >getName().'.>.');.}..protected.
a0ec0 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 72 6e 20 24 74 function.getOutput().{.return.$t
a0ee0 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 his->output;.}..protected.functi
a0f00 6f 6e 20 67 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 on.getApplication().{.return.$th
a0f20 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 is->application;.}.........priva
a0f40 74 65 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 te.function.autocompleter($text)
a0f60 0a 7b 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 .{.$info.=.readline_info();.$tex
a0f80 74 20 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 t.=.substr($info['line_buffer'],
a0fa0 20 30 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 .0,.$info['end']);..if.($info['p
a0fc0 6f 69 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 oint'].!==.$info['end']).{.retur
a0fe0 6e 20 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 n.true;.}....if.(false.===.strpo
a1000 73 28 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 s($text,.'.').||.!$text).{.retur
a1020 6e 20 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 n.array_keys($this->application-
a1040 3e 61 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 >all());.}....try.{.$command.=.$
a1060 74 68 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 this->application->find(substr($
a1080 74 65 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 text,.0,.strpos($text,.'.')));.}
a10a0 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 72 65 74 75 72 6e 20 .catch.(\Exception.$e).{.return.
a10c0 74 72 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 true;.}..$list.=.array('--help')
a10e0 3b 0a 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 ;.foreach.($command->getDefiniti
a1100 6f 6e 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 on()->getOptions().as.$option).{
a1120 0a 24 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 .$list[].=.'--'.$option->getName
a1140 28 29 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 ();.}..return.$list;.}.......pri
a1160 76 61 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 vate.function.readline().{.if.($
a1180 74 68 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 this->hasReadline).{.$line.=.rea
a11a0 64 6c 69 6e 65 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a 7d 20 65 6c 73 dline($this->getPrompt());.}.els
a11c0 65 20 7b 0a 24 74 68 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 e.{.$this->output->write($this->
a11e0 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 53 54 44 49 getPrompt());.$line.=.fgets(STDI
a1200 4e 2c 20 31 30 32 34 29 3b 0a 24 6c 69 6e 65 20 3d 20 28 21 24 6c 69 6e 65 20 26 26 20 73 74 72 N,.1024);.$line.=.(!$line.&&.str
a1220 6c 65 6e 28 24 6c 69 6e 65 29 20 3d 3d 20 30 29 20 3f 20 66 61 6c 73 65 20 3a 20 72 74 72 69 6d len($line).==.0).?.false.:.rtrim
a1240 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 ($line);.}..return.$line;.}..pub
a1260 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e lic.function.getProcessIsolation
a1280 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 ().{.return.$this->processIsolat
a12a0 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 63 65 ion;.}..public.function.setProce
a12c0 73 73 49 73 6f 6c 61 74 69 6f 6e 28 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 0a 7b ssIsolation($processIsolation).{
a12e0 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 28 42 6f 6f 6c .$this->processIsolation.=.(Bool
a1300 65 61 6e 29 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 ean).$processIsolation;..if.($th
a1320 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 26 26 20 21 63 6c 61 73 73 5f 65 is->processIsolation.&&.!class_e
a1340 78 69 73 74 73 28 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 xists('Symfony\\Component\\Proce
a1360 73 73 5c 5c 50 72 6f 63 65 73 73 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 ss\\Process')).{.throw.new.\Runt
a1380 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 69 73 6f 6c 61 74 65 20 imeException('Unable.to.isolate.
a13a0 70 72 6f 63 65 73 73 65 73 20 61 73 20 74 68 65 20 53 79 6d 66 6f 6e 79 20 50 72 6f 63 65 73 73 processes.as.the.Symfony.Process
a13c0 20 43 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 2e 27 29 3b 0a .Component.is.not.installed.');.
a13e0 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 65 73 70 61 63 65 20 }.}.}.<?php...........namespace.
a1400 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
a1420 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
a1440 5c 46 6f 72 6d 61 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 \Formatter\OutputFormatterInterf
a1460 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 73 6f ace;.use.Symfony\Component\Conso
a1480 6c 65 5c 46 6f 72 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 le\Formatter\OutputFormatter;...
a14a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 4f 75 74 70 75 ............abstract.class.Outpu
a14c0 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 t.implements.OutputInterface.{.p
a14e0 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d rivate.$verbosity;.private.$form
a1500 61 74 74 65 72 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 atter;...........public.function
a1520 20 5f 5f 63 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 .__construct($verbosity.=.self::
a1540 56 45 52 42 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 VERBOSITY_NORMAL,.$decorated.=.n
a1560 75 6c 6c 2c 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 ull,.OutputFormatterInterface.$f
a1580 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 ormatter.=.null).{.$this->verbos
a15a0 69 74 79 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 62 6f 73 69 74 79 20 3f 20 73 65 6c 66 ity.=.null.===.$verbosity.?.self
a15c0 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 72 62 6f 73 69 74 79 3b ::VERBOSITY_NORMAL.:.$verbosity;
a15e0 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 66 6f .$this->formatter.=.null.===.$fo
a1600 72 6d 61 74 74 65 72 20 3f 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 29 20 rmatter.?.new.OutputFormatter().
a1620 3a 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e :.$formatter;.$this->formatter->
a1640 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 63 6f 72 61 74 65 setDecorated((Boolean).$decorate
a1660 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 69 6f 6e 20 73 65 d);.}.........public.function.se
a1680 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 74 65 72 66 tFormatter(OutputFormatterInterf
a16a0 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 ace.$formatter).{.$this->formatt
a16c0 65 72 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 er.=.$formatter;.}.........publi
a16e0 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 0a 7b 0a 72 65 74 75 c.function.getFormatter().{.retu
a1700 72 6e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 rn.$this->formatter;.}.........p
a1720 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 63 ublic.function.setDecorated($dec
a1740 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 orated).{.$this->formatter->setD
a1760 65 63 6f 72 61 74 65 64 28 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 29 3b 0a ecorated((Boolean).$decorated);.
a1780 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 44 65 63 6f }.........public.function.isDeco
a17a0 72 61 74 65 64 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 rated().{.return.$this->formatte
a17c0 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c r->isDecorated();.}.........publ
a17e0 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 24 6c 65 76 65 6c 29 ic.function.setVerbosity($level)
a1800 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 28 69 6e 74 29 20 24 6c 65 76 .{.$this->verbosity.=.(int).$lev
a1820 65 6c 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 65 el;.}.........public.function.ge
a1840 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 tVerbosity().{.return.$this->ver
a1860 62 6f 73 69 74 79 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 bosity;.}..........public.functi
a1880 6f 6e 20 77 72 69 74 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 on.writeln($messages,.$type.=.0)
a18a0 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 74 72 75 65 2c .{.$this->write($messages,.true,
a18c0 20 24 74 79 70 65 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 .$type);.}.............public.fu
a18e0 6e 63 74 69 6f 6e 20 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 nction.write($messages,.$newline
a1900 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 30 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a .=.false,.$type.=.0).{.if.(self:
a1920 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 :VERBOSITY_QUIET.===.$this->verb
a1940 6f 73 69 74 79 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 osity).{.return;.}..$messages.=.
a1960 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 (array).$messages;..foreach.($me
a1980 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 ssages.as.$message).{.switch.($t
a19a0 79 70 65 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 ype).{.case.OutputInterface::OUT
a19c0 50 55 54 5f 4e 4f 52 4d 41 4c 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 66 6f PUT_NORMAL:.$message.=.$this->fo
a19e0 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 62 72 65 61 6b rmatter->format($message);.break
a1a00 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 ;.case.OutputInterface::OUTPUT_R
a1a20 41 57 3a 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 3a AW:.break;.case.OutputInterface:
a1a40 3a 4f 55 54 50 55 54 5f 50 4c 41 49 4e 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 69 70 5f :OUTPUT_PLAIN:.$message.=.strip_
a1a60 74 61 67 73 28 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 tags($this->formatter->format($m
a1a80 65 73 73 61 67 65 29 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 essage));.break;.default:.throw.
a1aa0 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 70 new.\InvalidArgumentException(sp
a1ac0 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 6f 75 74 70 75 74 20 74 79 70 65 20 67 69 76 65 6e rintf('Unknown.output.type.given
a1ae0 20 28 25 73 29 27 2c 20 24 74 79 70 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 6f 57 72 69 .(%s)',.$type));.}..$this->doWri
a1b00 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a te($message,.$newline);.}.}.....
a1b20 0a 0a 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 64 ...abstract.protected.function.d
a1b40 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 3b 0a 7d 0a 3c 3f oWrite($message,.$newline);.}.<?
a1b60 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\
a1b80 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 0a 0a 0a 0a 0a Component\Console\Output;.......
a1ba0 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 4f 75 74 ....class.NullOutput.extends.Out
a1bc0 70 75 74 0a 7b 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 put.{.......protected.function.d
a1be0 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 0a 7b 0a 7d 0a 7d oWrite($message,.$newline).{.}.}
a1c00 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
a1c20 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 3b 0a 0a 75 73 ny\Component\Console\Output;..us
a1c40 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
a1c60 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 0a 69 6e 74 65 72 ut\OutputInterface;........inter
a1c80 66 61 63 65 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 face.ConsoleOutputInterface.exte
a1ca0 6e 64 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 nds.OutputInterface.{....public.
a1cc0 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 70 75 62 6c function.getErrorOutput();..publ
a1ce0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 4f 75 74 70 75 ic.function.setErrorOutput(Outpu
a1d00 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a tInterface.$error);.}.<?php.....
a1d20 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
a1d40 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 79 5c 43 t\Console\Output;..use.Symfony\C
a1d60 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 70 75 omponent\Console\Formatter\Outpu
a1d80 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 0a 0a 0a tFormatterInterface;............
a1da0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 .....class.StreamOutput.extends.
a1dc0 4f 75 74 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 72 65 61 6d 3b 0a 0a 0a 0a 0a 0a 0a Output.{.private.$stream;.......
a1de0 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
a1e00 75 63 74 28 24 73 74 72 65 61 6d 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a uct($stream,.$verbosity.=.self::
a1e20 56 45 52 42 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 VERBOSITY_NORMAL,.$decorated.=.n
a1e40 75 6c 6c 2c 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 ull,.OutputFormatterInterface.$f
a1e60 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 ormatter.=.null).{.if.(!is_resou
a1e80 72 63 65 28 24 73 74 72 65 61 6d 29 20 7c 7c 20 27 73 74 72 65 61 6d 27 20 21 3d 3d 20 67 65 74 rce($stream).||.'stream'.!==.get
a1ea0 5f 72 65 73 6f 75 72 63 65 5f 74 79 70 65 28 24 73 74 72 65 61 6d 29 29 20 7b 0a 74 68 72 6f 77 _resource_type($stream)).{.throw
a1ec0 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('
a1ee0 54 68 65 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 63 6c 61 73 73 20 6e 65 65 64 73 20 61 20 73 The.StreamOutput.class.needs.a.s
a1f00 74 72 65 61 6d 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a tream.as.its.first.argument.');.
a1f20 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 0a 69 66 20 }..$this->stream.=.$stream;..if.
a1f40 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 7b 0a 24 64 65 63 6f 72 61 74 (null.===.$decorated).{.$decorat
a1f60 65 64 20 3d 20 24 74 68 69 73 2d 3e 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 3b 0a 7d ed.=.$this->hasColorSupport();.}
a1f80 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 ..parent::__construct($verbosity
a1fa0 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a ,.$decorated,.$formatter);.}....
a1fc0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 28 29 0a 7b ...public.function.getStream().{
a1fe0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .return.$this->stream;.}........
a2000 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 ..protected.function.doWrite($me
a2020 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d ssage,.$newline).{.if.(false.===
a2040 20 40 66 77 72 69 74 65 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 2c 20 24 6d 65 73 73 61 67 65 .@fwrite($this->stream,.$message
a2060 2e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 50 48 50 5f 45 4f 4c 20 3a 20 27 27 29 29 29 20 7b 0a 0a .($newline.?.PHP_EOL.:.''))).{..
a2080 20 0a 20 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 ...throw.new.\RuntimeException('
a20a0 55 6e 61 62 6c 65 20 74 6f 20 77 72 69 74 65 20 6f 75 74 70 75 74 2e 27 29 3b 0a 0a 20 7d 0a 0a Unable.to.write.output.');...}..
a20c0 66 66 6c 75 73 68 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a fflush($this->stream);.}........
a20e0 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 43 6f 6c 6f 72 53 ....protected.function.hasColorS
a2100 75 70 70 6f 72 74 28 29 0a 7b 0a 0a 20 69 66 20 28 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 upport().{...if.(DIRECTORY_SEPAR
a2120 41 54 4f 52 20 3d 3d 20 27 5c 5c 27 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d ATOR.==.'\\').{.return.false.!==
a2140 20 67 65 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 20 7c 7c 20 27 4f 4e 27 20 3d 3d 3d 20 67 .getenv('ANSICON').||.'ON'.===.g
a2160 65 74 65 6e 76 28 27 43 6f 6e 45 6d 75 41 4e 53 49 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 etenv('ConEmuANSI');.}..return.f
a2180 75 6e 63 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 unction_exists('posix_isatty').&
a21a0 26 20 40 70 6f 73 69 78 5f 69 73 61 74 74 79 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a &.@posix_isatty($this->stream);.
a21c0 0a 20 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.
a21e0 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
a2200 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
a2220 5c 46 6f 72 6d 61 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 \Formatter\OutputFormatterInterf
a2240 61 63 65 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 49 6e 74 ace;.........interface.OutputInt
a2260 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d erface.{.const.VERBOSITY_QUIET.=
a2280 20 30 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a .0;.const.VERBOSITY_NORMAL.=.1;.
a22a0 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3d 20 32 3b 0a 63 6f 6e const.VERBOSITY_VERBOSE.=.2;.con
a22c0 73 74 20 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 20 3d 20 33 3b 0a 63 st.VERBOSITY_VERY_VERBOSE.=.3;.c
a22e0 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 20 3d 20 34 3b 0a 0a 63 6f 6e 73 74 onst.VERBOSITY_DEBUG.=.4;..const
a2300 20 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 .OUTPUT_NORMAL.=.0;.const.OUTPUT
a2320 5f 52 41 57 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 50 4c 41 49 4e 20 3d 20 32 _RAW.=.1;.const.OUTPUT_PLAIN.=.2
a2340 3b 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 72 ;.............public.function.wr
a2360 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 66 61 6c 73 65 2c ite($messages,.$newline.=.false,
a2380 20 24 74 79 70 65 20 3d 20 30 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$type.=.0);..........public.fun
a23a0 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 24 74 79 70 65 20 3d ction.writeln($messages,.$type.=
a23c0 20 30 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 .0);.........public.function.set
a23e0 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 Verbosity($level);.........publi
a2400 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a c.function.getVerbosity();......
a2420 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 72 61 74 65 64 28 ...public.function.setDecorated(
a2440 24 64 65 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 $decorated);.........public.func
a2460 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 0a 70 75 62 6c tion.isDecorated();.........publ
a2480 69 63 20 66 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 ic.function.setFormatter(OutputF
a24a0 6f 72 6d 61 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 3b 0a 0a ormatterInterface.$formatter);..
a24c0 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 6f 72 6d 61 74 .......public.function.getFormat
a24e0 74 65 72 28 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 ter();.}.<?php...........namespa
a2500 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 75 74 ce.Symfony\Component\Console\Out
a2520 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 6e 73 put;..use.Symfony\Component\Cons
a2540 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 74 74 65 72 49 6e 74 ole\Formatter\OutputFormatterInt
a2560 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 6f erface;.use.Symfony\Component\Co
a2580 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 49 6e 74 65 72 66 nsole\Output\ConsoleOutputInterf
a25a0 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f ace;.................class.Conso
a25c0 6c 65 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 69 6d leOutput.extends.StreamOutput.im
a25e0 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a plements.ConsoleOutputInterface.
a2600 7b 0a 70 72 69 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 {.private.$stderr;............pu
a2620 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 76 65 72 62 6f blic.function.__construct($verbo
a2640 73 69 74 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 sity.=.self::VERBOSITY_NORMAL,.$
a2660 64 65 63 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 decorated.=.null,.OutputFormatte
a2680 72 49 6e 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 rInterface.$formatter.=.null).{.
a26a0 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 73 74 64 6f 75 74 27 3b 0a $outputStream.=.'php://stdout';.
a26c0 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 29 29 20 if.(!$this->hasStdoutSupport()).
a26e0 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 6f 75 74 70 75 74 27 {.$outputStream.=.'php://output'
a2700 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 66 6f 70 65 6e 28 24 ;.}..parent::__construct(fopen($
a2720 6f 75 74 70 75 74 53 74 72 65 61 6d 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 outputStream,.'w'),.$verbosity,.
a2740 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 24 74 68 69 73 2d $decorated,.$formatter);..$this-
a2760 3e 73 74 64 65 72 72 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e >stderr.=.new.StreamOutput(fopen
a2780 28 27 70 68 70 3a 2f 2f 73 74 64 65 72 72 27 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 ('php://stderr',.'w'),.$verbosit
a27a0 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 70 y,.$decorated,.$formatter);.}..p
a27c0 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 63 ublic.function.setDecorated($dec
a27e0 6f 72 61 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 orated).{.parent::setDecorated($
a2800 64 65 63 6f 72 61 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 44 65 decorated);.$this->stderr->setDe
a2820 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 corated($decorated);.}..public.f
a2840 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
a2860 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 70 61 72 65 tterInterface.$formatter).{.pare
a2880 6e 74 3a 3a 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 24 74 nt::setFormatter($formatter);.$t
a28a0 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 6d 61 his->stderr->setFormatter($forma
a28c0 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 74 56 65 72 tter);.}..public.function.setVer
a28e0 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 56 65 72 62 bosity($level).{.parent::setVerb
a2900 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 osity($level);.$this->stderr->se
a2920 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 tVerbosity($level);.}.....public
a2940 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 29 0a 7b 0a 72 65 74 .function.getErrorOutput().{.ret
a2960 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e urn.$this->stderr;.}..public.fun
a2980 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 4f 75 74 70 75 74 49 6e 74 65 72 ction.setErrorOutput(OutputInter
a29a0 66 61 63 65 20 24 65 72 72 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 24 face.$error).{.$this->stderr.=.$
a29c0 65 72 72 6f 72 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 error;.}............protected.fu
a29e0 6e 63 74 69 6f 6e 20 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 nction.hasStdoutSupport().{.retu
a2a00 72 6e 20 28 27 4f 53 34 30 30 27 20 21 3d 20 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 29 3b 0a rn.('OS400'.!=.php_uname('s'));.
a2a20 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
a2a40 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 mfony\Component\Console\Descript
a2a60 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 44 65 73 63 72 69 70 74 6f 72 49 6e or;.......interface.DescriptorIn
a2a80 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f terface.{.........public.functio
a2aa0 6e 20 64 65 73 63 72 69 62 65 28 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f n.describe($object,.array.$optio
a2ac0 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ns.=.array());.}.<?php..........
a2ae0 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
a2b00 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f sole\Descriptor;..use.Symfony\Co
a2b20 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 mponent\Console\Application;.use
a2b40 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
a2b60 6e 64 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 nd\Command;.use.Symfony\Componen
a2b80 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
a2ba0 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
a2bc0 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 79 6d 66 6f 6e 79 5c ut\InputDefinition;.use.Symfony\
a2be0 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 4f 70 74 Component\Console\Input\InputOpt
a2c00 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 20 ion;.......class.TextDescriptor.
a2c20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 extends.Descriptor.{....protecte
a2c40 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 d.function.describeInputArgument
a2c60 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 (InputArgument.$argument,.array.
a2c80 24 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 6e 75 6c 6c 20 21 $options.=.array()).{.if.(null.!
a2ca0 3d 3d 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 26 26 20 28 21 ==.$argument->getDefault().&&.(!
a2cc0 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 28 29 is_array($argument->getDefault()
a2ce0 29 20 7c 7c 20 63 6f 75 6e 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 ).||.count($argument->getDefault
a2d00 28 29 29 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d ()))).{.$default.=.sprintf('<com
a2d20 6d 65 6e 74 3e 20 28 64 65 66 61 75 6c 74 3a 20 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 ment>.(default:.%s)</comment>',.
a2d40 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 61 72 67 75 6d $this->formatDefaultValue($argum
a2d60 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 ent->getDefault()));.}.else.{.$d
a2d80 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 69 73 73 efault.=.'';.}..$nameWidth.=.iss
a2da0 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d 29 20 3f 20 24 6f 70 et($options['name_width']).?.$op
a2dc0 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d 20 3a 20 73 74 72 6c 65 6e 28 24 61 72 tions['name_width'].:.strlen($ar
a2de0 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 73 74 gument->getName());.$output.=.st
a2e00 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 r_replace("\n",."\n".str_repeat(
a2e20 27 20 27 2c 20 24 6e 61 6d 65 57 69 64 74 68 20 2b 20 32 29 2c 20 24 61 72 67 75 6d 65 6e 74 2d '.',.$nameWidth.+.2),.$argument-
a2e40 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 73 70 >getDescription());.$output.=.sp
a2e60 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 2d 24 7b 6e 61 6d 65 57 69 64 74 68 7d 73 3c 2f 69 rintf(".<info>%-${nameWidth}s</i
a2e80 6e 66 6f 3e 20 25 73 25 73 22 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 nfo>.%s%s",.$argument->getName()
a2ea0 2c 20 24 6f 75 74 70 75 74 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 ,.$output,.$default);..return.is
a2ec0 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f 70 set($options['raw_text']).&&.$op
a2ee0 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 24 tions['raw_text'].?.strip_tags($
a2f00 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 output).:.$output;.}.....protect
a2f20 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ed.function.describeInputOption(
a2f40 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 InputOption.$option,.array.$opti
a2f60 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 ons.=.array()).{.if.($option->ac
a2f80 63 65 70 74 56 61 6c 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 ceptValue().&&.null.!==.$option-
a2fa0 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 6f 70 74 >getDefault().&&.(!is_array($opt
a2fc0 69 6f 6e 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 6f 70 74 ion->getDefault()).||.count($opt
a2fe0 69 6f 6e 2d 3e 67 65 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 ion->getDefault()))).{.$default.
a3000 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 6c 74 3a 20 25 =.sprintf('<comment>.(default:.%
a3020 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 74 44 65 66 61 s)</comment>',.$this->formatDefa
a3040 75 6c 74 56 61 6c 75 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 ultValue($option->getDefault()))
a3060 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 0a 7d 0a 0a 24 6e 61 ;.}.else.{.$default.=.'';.}..$na
a3080 6d 65 57 69 64 74 68 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 meWidth.=.isset($options['name_w
a30a0 69 64 74 68 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d idth']).?.$options['name_width']
a30c0 20 3a 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 3b 0a 24 .:.strlen($option->getName());.$
a30e0 6e 61 6d 65 57 69 74 68 53 68 6f 72 74 63 75 74 57 69 64 74 68 20 3d 20 24 6e 61 6d 65 57 69 64 nameWithShortcutWidth.=.$nameWid
a3100 74 68 20 2d 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 th.-.strlen($option->getName()).
a3120 2d 20 32 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e -.2;..$output.=.sprintf(".<info>
a3140 25 73 3c 2f 69 6e 66 6f 3e 20 25 2d 24 7b 6e 61 6d 65 57 69 74 68 53 68 6f 72 74 63 75 74 57 69 %s</info>.%-${nameWithShortcutWi
a3160 64 74 68 7d 73 25 73 25 73 25 73 22 2c 0a 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e dth}s%s%s%s",.'--'.$option->getN
a3180 61 6d 65 28 29 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 ame(),.$option->getShortcut().?.
a31a0 73 70 72 69 6e 74 66 28 27 28 2d 25 73 29 20 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 sprintf('(-%s).',.$option->getSh
a31c0 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 2c 0a 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 ortcut()).:.'',.str_replace("\n"
a31e0 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6e 61 6d 65 57 69 64 74 ,."\n".str_repeat('.',.$nameWidt
a3200 68 20 2b 20 32 29 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 h.+.2),.$option->getDescription(
a3220 29 29 2c 0a 24 64 65 66 61 75 6c 74 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 )),.$default,.$option->isArray()
a3240 20 3f 20 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 6d 75 6c 74 69 70 6c 65 20 76 61 6c 75 65 73 20 61 .?.'<comment>.(multiple.values.a
a3260 6c 6c 6f 77 65 64 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 20 3a 20 27 27 0a 29 3b 0a 0a 72 65 74 75 llowed)</comment>'.:.''.);..retu
a3280 72 6e 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 rn.isset($options['raw_text']).&
a32a0 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 &.$options['raw_text'].?.strip_t
a32c0 61 67 73 28 24 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 70 72 ags($output).:.$output;.}.....pr
a32e0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 otected.function.describeInputDe
a3300 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 finition(InputDefinition.$defini
a3320 74 69 6f 6e 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 tion,.array.$options.=.array()).
a3340 7b 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 {.$nameWidth.=.0;.foreach.($defi
a3360 6e 69 74 69 6f 6e 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 nition->getOptions().as.$option)
a3380 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d .{.$nameLength.=.strlen($option-
a33a0 3e 67 65 74 4e 61 6d 65 28 29 29 20 2b 20 32 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 >getName()).+.2;.if.($option->ge
a33c0 74 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 3d 20 73 74 tShortcut()).{.$nameLength.+=.st
a33e0 72 6c 65 6e 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 2b 20 33 rlen($option->getShortcut()).+.3
a3400 3b 0a 7d 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 57 69 64 74 68 2c ;.}.$nameWidth.=.max($nameWidth,
a3420 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 24 64 65 66 69 6e .$nameLength);.}.foreach.($defin
a3440 69 74 69 6f 6e 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 ition->getArguments().as.$argume
a3460 6e 74 29 20 7b 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 57 69 64 74 nt).{.$nameWidth.=.max($nameWidt
a3480 68 2c 20 73 74 72 6c 65 6e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 h,.strlen($argument->getName()))
a34a0 3b 0a 7d 0a 2b 2b 24 6e 61 6d 65 57 69 64 74 68 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 ;.}.++$nameWidth;..$messages.=.a
a34c0 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 rray();..if.($definition->getArg
a34e0 75 6d 65 6e 74 73 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d uments()).{.$messages[].=.'<comm
a3500 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
a3520 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 ch.($definition->getArguments().
a3540 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 as.$argument).{.$messages[].=.$t
a3560 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 his->describeInputArgument($argu
a3580 6d 65 6e 74 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 5f 77 69 64 74 68 27 20 3d 3e 20 24 6e 61 6d ment,.array('name_width'.=>.$nam
a35a0 65 57 69 64 74 68 29 29 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 27 3b 0a 7d 0a eWidth));.}.$messages[].=.'';.}.
a35c0 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 .if.($definition->getOptions()).
a35e0 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 3e 4f 70 74 69 6f 6e {.$messages[].=.'<comment>Option
a3600 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 s:</comment>';.foreach.($definit
a3620 69 6f 6e 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 ion->getOptions().as.$option).{.
a3640 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 $messages[].=.$this->describeInp
a3660 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 5f 77 69 utOption($option,.array('name_wi
a3680 64 74 68 27 20 3d 3e 20 24 6e 61 6d 65 57 69 64 74 68 29 29 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 dth'.=>.$nameWidth));.}.$message
a36a0 73 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 s[].=.'';.}..$output.=.implode("
a36c0 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 \n",.$messages);..return.isset($
a36e0 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 options['raw_text']).&&.$options
a3700 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 24 6f 75 74 70 75 ['raw_text'].?.strip_tags($outpu
a3720 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 t).:.$output;.}.....protected.fu
a3740 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 nction.describeCommand(Command.$
a3760 63 6f 6d 6d 61 6e 64 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 command,.array.$options.=.array(
a3780 29 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 )).{.$command->getSynopsis();.$c
a37a0 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 ommand->mergeApplicationDefiniti
a37c0 6f 6e 28 66 61 6c 73 65 29 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 27 3c 63 on(false);.$messages.=.array('<c
a37e0 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 20 27 20 27 2e 24 63 omment>Usage:</comment>',.'.'.$c
a3800 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 27 27 29 3b 0a 0a 69 66 20 ommand->getSynopsis(),.'');..if.
a3820 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 7b 0a 24 6d 65 73 73 ($command->getAliases()).{.$mess
a3840 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 6d ages[].=.'<comment>Aliases:</com
a3860 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 63 6f 6d ment>.<info>'.implode(',.',.$com
a3880 6d 61 6e 64 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 mand->getAliases()).'</info>';.}
a38a0 0a 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 ..$messages[].=.$this->describeI
a38c0 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 nputDefinition($command->getNati
a38e0 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 3b 0a 0a 69 66 20 28 24 68 65 6c 70 20 3d 20 24 63 veDefinition());..if.($help.=.$c
a3900 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 20 7b 0a 24 6d ommand->getProcessedHelp()).{.$m
a3920 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 6f 6d essages[].=.'<comment>Help:</com
a3940 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 72 65 ment>';.$messages[].=.'.'.str_re
a3960 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 3b 0a place("\n",."\n.",.$help)."\n";.
a3980 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 }..$output.=.implode("\n",.$mess
a39a0 61 67 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 ages);..return.isset($options['r
a39c0 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 aw_text']).&&.$options['raw_text
a39e0 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 24 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 70 '].?.strip_tags($output).:.$outp
a3a00 75 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 64 65 73 ut;.}.....protected.function.des
a3a20 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 cribeApplication(Application.$ap
a3a40 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 plication,.array.$options.=.arra
a3a60 79 28 29 29 0a 7b 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 y()).{.$describedNamespace.=.iss
a3a80 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 et($options['namespace']).?.$opt
a3aa0 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 ions['namespace'].:.null;.$descr
a3ac0 69 70 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 iption.=.new.ApplicationDescript
a3ae0 69 6f 6e 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 ion($application,.$describedName
a3b00 73 70 61 63 65 29 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 space);.$messages.=.array();..if
a3b20 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 .(isset($options['raw_text']).&&
a3b40 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 7b 0a 24 77 69 64 74 68 20 .$options['raw_text']).{.$width.
a3b60 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 64 65 73 63 72 69 70 =.$this->getColumnWidth($descrip
a3b80 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 tion->getCommands());..foreach.(
a3ba0 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 $description->getCommands().as.$
a3bc0 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 72 69 6e 74 66 command).{.$messages[].=.sprintf
a3be0 28 22 25 2d 24 7b 77 69 64 74 68 7d 73 20 25 73 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 ("%-${width}s.%s",.$command->get
a3c00 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e Name(),.$command->getDescription
a3c20 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e ());.}.}.else.{.$width.=.$this->
a3c40 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 getColumnWidth($description->get
a3c60 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 61 70 70 Commands());..$messages[].=.$app
a3c80 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 6c 70 28 29 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d lication->getHelp();.$messages[]
a3ca0 20 3d 20 27 27 3b 0a 0a 69 66 20 28 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 .=.'';..if.($describedNamespace)
a3cc0 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 3c 63 6f 6d 6d 65 .{.$messages[].=.sprintf("<comme
a3ce0 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 74 68 65 20 5c 22 nt>Available.commands.for.the.\"
a3d00 25 73 5c 22 20 6e 61 6d 65 73 70 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 24 64 65 73 %s\".namespace:</comment>",.$des
a3d20 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 cribedNamespace);.}.else.{.$mess
a3d40 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d ages[].=.'<comment>Available.com
a3d60 6d 61 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 mands:</comment>';.}....foreach.
a3d80 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 20 61 ($description->getNamespaces().a
a3da0 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 21 24 64 65 73 63 72 69 62 65 64 4e s.$namespace).{.if.(!$describedN
a3dc0 61 6d 65 73 70 61 63 65 20 26 26 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 amespace.&&.ApplicationDescripti
a3de0 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 21 3d 3d 20 24 6e 61 6d 65 73 70 on::GLOBAL_NAMESPACE.!==.$namesp
a3e00 61 63 65 5b 27 69 64 27 5d 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d ace['id']).{.$messages[].=.'<com
a3e20 6d 65 6e 74 3e 27 2e 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 2e 27 3c 2f 63 6f 6d 6d 65 ment>'.$namespace['id'].'</comme
a3e40 6e 74 3e 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f nt>';.}..foreach.($namespace['co
a3e60 6d 6d 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d mmands'].as.$name).{.$messages[]
a3e80 20 3d 20 73 70 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 .=.sprintf("..<info>%-${width}s<
a3ea0 2f 69 6e 66 6f 3e 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2d /info>.%s",.$name,.$description-
a3ec0 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 >getCommand($name)->getDescripti
a3ee0 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 on());.}.}.}..$output.=.implode(
a3f00 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 "\n",.$messages);..return.isset(
a3f20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e $options['raw_text']).&&.$option
a3f40 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 24 6f 75 74 70 s['raw_text'].?.strip_tags($outp
a3f60 75 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ut).:.$output;.}.........private
a3f80 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 65 .function.formatDefaultValue($de
a3fa0 66 61 75 6c 74 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 fault).{.if.(version_compare(PHP
a3fc0 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 _VERSION,.'5.4',.'<')).{.return.
a3fe0 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 2f 27 2c 20 27 2f 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f str_replace('\/',.'/',.json_enco
a4000 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6a 73 6f 6e 5f 65 6e de($default));.}..return.json_en
a4020 63 6f 64 65 28 24 64 65 66 61 75 6c 74 2c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c code($default,.JSON_UNESCAPED_SL
a4040 41 53 48 45 53 20 7c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b ASHES.|.JSON_UNESCAPED_UNICODE);
a4060 0a 7d 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 43 6f 6c .}.......private.function.getCol
a4080 75 6d 6e 57 69 64 74 68 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 77 69 64 umnWidth(array.$commands).{.$wid
a40a0 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 th.=.0;.foreach.($commands.as.$c
a40c0 6f 6d 6d 61 6e 64 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 ommand).{.$width.=.strlen($comma
a40e0 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3e 20 24 77 69 64 74 68 20 3f 20 73 74 72 6c 65 6e nd->getName()).>.$width.?.strlen
a4100 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3a 20 24 77 69 64 74 68 3b 0a ($command->getName()).:.$width;.
a4120 7d 0a 0a 72 65 74 75 72 6e 20 24 77 69 64 74 68 20 2b 20 32 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a }..return.$width.+.2;.}.}.<?php.
a4140 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
a4160 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 onent\Console\Descriptor;..use.S
a4180 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 41 70 70 6c 69 63 61 ymfony\Component\Console\Applica
a41a0 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 6e 73 tion;.use.Symfony\Component\Cons
a41c0 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
a41e0 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
a4200 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
a4220 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 6e 3b 0a 75 73 65 nsole\Input\InputDefinition;.use
a4240 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
a4260 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 58 6d 6c 44 65 73 \InputOption;.......class.XmlDes
a4280 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a criptor.extends.Descriptor.{....
a42a0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 protected.function.describeInput
a42c0 41 72 67 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 Argument(InputArgument.$argument
a42e0 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 64 ,.array.$options.=.array()).{.$d
a4300 6f 6d 20 3d 20 6e 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 om.=.new.\DOMDocument('1.0',.'UT
a4320 46 2d 38 27 29 3b 0a 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 62 6a 65 63 F-8');..$dom->appendChild($objec
a4340 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 61 72 67 75 tXML.=.$dom->createElement('argu
a4360 6d 65 6e 74 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 ment'));.$objectXML->setAttribut
a4380 65 28 27 6e 61 6d 65 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b e('name',.$argument->getName());
a43a0 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 72 65 .$objectXML->setAttribute('is_re
a43c0 71 75 69 72 65 64 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 quired',.$argument->isRequired()
a43e0 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 .?.1.:.0);.$objectXML->setAttrib
a4400 75 74 65 28 27 69 73 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 ute('is_array',.$argument->isArr
a4420 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 70 65 6e ay().?.1.:.0);.$objectXML->appen
a4440 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 6d 2d 3e 63 dChild($descriptionXML.=.$dom->c
a4460 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 3b 0a 24 64 reateElement('description'));.$d
a4480 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 64 6f 6d 2d escriptionXML->appendChild($dom-
a44a0 3e 63 72 65 61 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 >createTextNode($argument->getDe
a44c0 73 63 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 70 65 scription()));..$objectXML->appe
a44e0 6e 64 43 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 ndChild($defaultsXML.=.$dom->cre
a4500 61 74 65 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 ateElement('defaults'));.$defaul
a4520 74 73 20 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 ts.=.is_array($argument->getDefa
a4540 75 6c 74 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 ult()).?.$argument->getDefault()
a4560 20 3a 20 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 .:.(is_bool($argument->getDefaul
a4580 74 28 29 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 t()).?.array(var_export($argumen
a45a0 74 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 28 24 61 72 67 75 t->getDefault(),.true)).:.($argu
a45c0 6d 65 6e 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 ment->getDefault().?.array($argu
a45e0 6d 65 6e 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 ment->getDefault()).:.array()));
a4600 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 74 29 .foreach.($defaults.as.$default)
a4620 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 64 65 .{.$defaultsXML->appendChild($de
a4640 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 28 27 faultXML.=.$dom->createElement('
a4660 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 64 43 default'));.$defaultXML->appendC
a4680 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 61 75 hild($dom->createTextNode($defau
a46a0 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 24 64 lt));.}..return.$this->output($d
a46c0 6f 6d 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 om,.$options);.}.....protected.f
a46e0 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 unction.describeInputOption(Inpu
a4700 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 tOption.$option,.array.$options.
a4720 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 =.array()).{.$dom.=.new.\DOMDocu
a4740 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 0a 24 64 6f 6d 2d 3e 61 70 70 ment('1.0',.'UTF-8');..$dom->app
a4760 65 6e 64 43 68 69 6c 64 28 24 6f 62 6a 65 63 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 endChild($objectXML.=.$dom->crea
a4780 74 65 45 6c 65 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c teElement('option'));.$objectXML
a47a0 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 27 2d 2d 27 2e 24 6f 70 74 ->setAttribute('name',.'--'.$opt
a47c0 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 ion->getName());.$pos.=.strpos($
a47e0 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2c 20 27 7c 27 29 3b 0a 69 66 20 option->getShortcut(),.'|');.if.
a4800 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 29 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 (false.!==.$pos).{.$objectXML->s
a4820 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 27 2c 20 27 2d 27 2e 73 75 62 73 etAttribute('shortcut',.'-'.subs
a4840 74 72 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2c 20 30 2c 20 24 70 tr($option->getShortcut(),.0,.$p
a4860 6f 73 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 os));.$objectXML->setAttribute('
a4880 73 68 6f 72 74 63 75 74 73 27 2c 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 2d 27 2c 20 65 78 shortcuts',.'-'.implode('|-',.ex
a48a0 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 plode('|',.$option->getShortcut(
a48c0 29 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 ))));.}.else.{.$objectXML->setAt
a48e0 74 72 69 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 tribute('shortcut',.$option->get
a4900 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f Shortcut().?.'-'.$option->getSho
a4920 72 74 63 75 74 28 29 20 3a 20 27 27 29 3b 0a 7d 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 rtcut().:.'');.}.$objectXML->set
a4940 41 74 74 72 69 62 75 74 65 28 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 2c 20 24 6f 70 74 69 6f Attribute('accept_value',.$optio
a4960 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 n->acceptValue().?.1.:.0);.$obje
a4980 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 76 61 6c 75 65 5f 72 65 ctXML->setAttribute('is_value_re
a49a0 71 75 69 72 65 64 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 quired',.$option->isValueRequire
a49c0 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 d().?.1.:.0);.$objectXML->setAtt
a49e0 72 69 62 75 74 65 28 27 69 73 5f 6d 75 6c 74 69 70 6c 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 69 ribute('is_multiple',.$option->i
a4a00 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 sArray().?.1.:.0);.$objectXML->a
a4a20 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
a4a40 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'))
a4a60 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($
a4a80 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 dom->createTextNode($option->get
a4aa0 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 Description()));..if.($option->a
a4ac0 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 cceptValue()).{.$defaults.=.is_a
a4ae0 72 72 61 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 6f rray($option->getDefault()).?.$o
a4b00 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 ption->getDefault().:.(is_bool($
a4b20 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 option->getDefault()).?.array(va
a4b40 72 5f 65 78 70 6f 72 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 r_export($option->getDefault(),.
a4b60 74 72 75 65 29 29 20 3a 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 true)).:.($option->getDefault().
a4b80 3f 20 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a ?.array($option->getDefault()).:
a4ba0 20 61 72 72 61 79 28 29 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 .array()));.$objectXML->appendCh
a4bc0 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 45 ild($defaultsXML.=.$dom->createE
a4be0 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 lement('defaults'));..if.(!empty
a4c00 28 24 64 65 66 61 75 6c 74 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 ($defaults)).{.foreach.($default
a4c20 73 20 61 73 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 s.as.$default).{.$defaultsXML->a
a4c40 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 ppendChild($defaultXML.=.$dom->c
a4c60 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 reateElement('default'));.$defau
a4c80 6c 74 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 74 65 54 ltXML->appendChild($dom->createT
a4ca0 65 78 74 4e 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 extNode($default));.}.}.}..retur
a4cc0 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 24 64 6f 6d 2c 20 24 6f 70 74 69 6f 6e 73 29 3b n.$this->output($dom,.$options);
a4ce0 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 64 65 73 63 72 69 .}.....protected.function.descri
a4d00 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f beInputDefinition(InputDefinitio
a4d20 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 n.$definition,.array.$options.=.
a4d40 61 72 72 61 79 28 29 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 array()).{.$dom.=.new.\DOMDocume
a4d60 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 nt('1.0',.'UTF-8');.$dom->append
a4d80 43 68 69 6c 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 Child($definitionXML.=.$dom->cre
a4da0 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 29 3b 0a 0a 24 64 65 66 ateElement('definition'));..$def
a4dc0 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 72 67 75 6d 65 6e initionXML->appendChild($argumen
a4de0 74 73 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 72 67 tsXML.=.$dom->createElement('arg
a4e00 75 6d 65 6e 74 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d uments'));.foreach.($definition-
a4e20 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 6e 74 29 20 7b 0a >getArguments().as.$argument).{.
a4e40 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 73 $this->appendDocument($arguments
a4e60 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e XML,.$this->describeInputArgumen
a4e80 74 28 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 28 27 61 73 5f 64 6f 6d 27 20 3d 3e 20 74 t($argument,.array('as_dom'.=>.t
a4ea0 72 75 65 29 29 29 3b 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 rue)));.}..$definitionXML->appen
a4ec0 64 43 68 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 dChild($optionsXML.=.$dom->creat
a4ee0 65 45 6c 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 eElement('options'));.foreach.($
a4f00 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 definition->getOptions().as.$opt
a4f20 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 6f 70 ion).{.$this->appendDocument($op
a4f40 74 69 6f 6e 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 tionsXML,.$this->describeInputOp
a4f60 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 28 27 61 73 5f 64 6f 6d 27 20 3d 3e 20 tion($option,.array('as_dom'.=>.
a4f80 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 true)));.}..return.$this->output
a4fa0 28 24 64 6f 6d 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ($dom,.$options);.}.....protecte
a4fc0 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 d.function.describeCommand(Comma
a4fe0 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 nd.$command,.array.$options.=.ar
a5000 72 61 79 28 29 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 ray()).{.$dom.=.new.\DOMDocument
a5020 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 ('1.0',.'UTF-8');.$dom->appendCh
a5040 69 6c 64 28 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 ild($commandXML.=.$dom->createEl
a5060 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 ement('command'));..$command->ge
a5080 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c tSynopsis();.$command->mergeAppl
a50a0 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 24 63 6f 6d 6d icationDefinition(false);..$comm
a50c0 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 63 6f 6d 6d andXML->setAttribute('id',.$comm
a50e0 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 and->getName());.$commandXML->se
a5100 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 tAttribute('name',.$command->get
a5120 4e 61 6d 65 28 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 Name());..$commandXML->appendChi
a5140 6c 64 28 24 75 73 61 67 65 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 ld($usageXML.=.$dom->createEleme
a5160 6e 74 28 27 75 73 61 67 65 27 29 29 3b 0a 24 75 73 61 67 65 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 nt('usage'));.$usageXML->appendC
a5180 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 73 70 72 69 6e 74 hild($dom->createTextNode(sprint
a51a0 66 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 27 27 29 29 29 f($command->getSynopsis(),.'')))
a51c0 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 6c 64 28 24 64 65 73 ;..$commandXML->appendChild($des
a51e0 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 45 6c 65 6d 65 6e criptionXML.=.$dom->createElemen
a5200 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 70 74 69 6f 6e 58 t('description'));.$descriptionX
a5220 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 74 65 54 65 78 74 ML->appendChild($dom->createText
a5240 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 63 Node(str_replace("\n",."\n.",.$c
a5260 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 29 3b 0a 0a 24 63 ommand->getDescription())));..$c
a5280 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 68 65 6c 70 58 4d 4c 20 ommandXML->appendChild($helpXML.
a52a0 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 68 65 6c 70 27 29 29 3b 0a =.$dom->createElement('help'));.
a52c0 24 68 65 6c 70 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 $helpXML->appendChild($dom->crea
a52e0 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e teTextNode(str_replace("\n",."\n
a5300 20 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 .",.$command->getProcessedHelp()
a5320 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 6c 64 28 24 )));..$commandXML->appendChild($
a5340 61 6c 69 61 73 65 73 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 aliasesXML.=.$dom->createElement
a5360 28 27 61 6c 69 61 73 65 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d ('aliases'));.foreach.($command-
a5380 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 61 6c 69 61 >getAliases().as.$alias).{.$alia
a53a0 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 58 4d 4c 20 3d 20 sesXML->appendChild($aliasXML.=.
a53c0 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 27 29 29 3b 0a 24 $dom->createElement('alias'));.$
a53e0 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 2d 3e 63 72 65 61 aliasXML->appendChild($dom->crea
a5400 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 65 66 69 6e 69 74 teTextNode($alias));.}..$definit
a5420 69 6f 6e 58 4d 4c 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 ionXML.=.$this->describeInputDef
a5440 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e inition($command->getNativeDefin
a5460 69 74 69 6f 6e 28 29 2c 20 61 72 72 61 79 28 27 61 73 5f 64 6f 6d 27 20 3d 3e 20 74 72 75 65 29 ition(),.array('as_dom'.=>.true)
a5480 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e );.$this->appendDocument($comman
a54a0 64 58 4d 4c 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 dXML,.$definitionXML->getElement
a54c0 73 42 79 54 61 67 4e 61 6d 65 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 2d 3e 69 74 65 6d 28 30 sByTagName('definition')->item(0
a54e0 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 24 64 6f 6d 2c 20 ));..return.$this->output($dom,.
a5500 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 $options);.}.....protected.funct
a5520 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 ion.describeApplication(Applicat
a5540 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 ion.$application,.array.$options
a5560 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 .=.array()).{.$dom.=.new.\DOMDoc
a5580 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 6d 2d 3e 61 70 70 ument('1.0',.'UTF-8');.$dom->app
a55a0 65 6e 64 43 68 69 6c 64 28 24 72 6f 6f 74 58 6d 6c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 endChild($rootXml.=.$dom->create
a55c0 45 6c 65 6d 65 6e 74 28 27 73 79 6d 66 6f 6e 79 27 29 29 3b 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 61 Element('symfony'));.$rootXml->a
a55e0 70 70 65 6e 64 43 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 ppendChild($commandsXML.=.$dom->
a5600 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 73 27 29 29 3b 0a 0a 24 64 65 createElement('commands'));..$de
a5620 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e scribedNamespace.=.isset($option
a5640 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 s['namespace']).?.$options['name
a5660 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 6e space'].:.null;.$description.=.n
a5680 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 6c 69 ew.ApplicationDescription($appli
a56a0 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 69 cation,.$describedNamespace);..i
a56c0 66 20 28 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 63 6f 6d 6d 61 f.($describedNamespace).{.$comma
a56e0 6e 64 73 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 73 70 61 63 65 27 ndsXML->setAttribute('namespace'
a5700 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 0a 0a 66 6f 72 65 61 ,.$describedNamespace);.}..forea
a5720 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 20 ch.($description->getCommands().
a5740 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 as.$command).{.$this->appendDocu
a5760 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 ment($commandsXML,.$this->descri
a5780 62 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 28 27 61 73 5f 64 6f beCommand($command,.array('as_do
a57a0 6d 27 20 3d 3e 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 64 65 73 63 72 69 62 65 m'.=>.true)));.}..if.(!$describe
a57c0 64 4e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 61 70 70 65 6e 64 43 68 dNamespace).{.$rootXml->appendCh
a57e0 69 6c 64 28 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 65 61 74 ild($namespacesXML.=.$dom->creat
a5800 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 73 27 29 29 3b 0a 0a 66 6f 72 65 61 63 eElement('namespaces'));..foreac
a5820 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 h.($description->getNamespaces()
a5840 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c .as.$namespace).{.$namespacesXML
a5860 2d 3e 61 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 ->appendChild($namespaceArrayXML
a5880 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 .=.$dom->createElement('namespac
a58a0 65 27 29 29 3b 0a 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 e'));.$namespaceArrayXML->setAtt
a58c0 72 69 62 75 74 65 28 27 69 64 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 3b 0a ribute('id',.$namespace['id']);.
a58e0 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d .foreach.($namespace['commands']
a5900 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d .as.$name).{.$namespaceArrayXML-
a5920 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 2d >appendChild($commandXML.=.$dom-
a5940 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 6d >createElement('command'));.$com
a5960 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 65 61 74 mandXML->appendChild($dom->creat
a5980 65 54 65 78 74 4e 6f 64 65 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e eTextNode($name));.}.}.}..return
a59a0 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 24 64 6f 6d 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a .$this->output($dom,.$options);.
a59c0 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 61 70 70 65 6e 64 }........private.function.append
a59e0 44 6f 63 75 6d 65 6e 74 28 5c 44 4f 4d 4e 6f 64 65 20 24 70 61 72 65 6e 74 4e 6f 64 65 2c 20 5c Document(\DOMNode.$parentNode,.\
a5a00 44 4f 4d 4e 6f 64 65 20 24 69 6d 70 6f 72 74 65 64 50 61 72 65 6e 74 29 0a 7b 0a 66 6f 72 65 61 DOMNode.$importedParent).{.forea
a5a20 63 68 20 28 24 69 6d 70 6f 72 74 65 64 50 61 72 65 6e 74 2d 3e 63 68 69 6c 64 4e 6f 64 65 73 20 ch.($importedParent->childNodes.
a5a40 61 73 20 24 63 68 69 6c 64 4e 6f 64 65 29 20 7b 0a 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 61 70 as.$childNode).{.$parentNode->ap
a5a60 70 65 6e 64 43 68 69 6c 64 28 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 6f 77 6e 65 72 44 6f 63 75 pendChild($parentNode->ownerDocu
a5a80 6d 65 6e 74 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 63 68 69 6c 64 4e 6f 64 65 2c 20 74 72 75 ment->importNode($childNode,.tru
a5aa0 65 29 29 3b 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 e));.}.}..........private.functi
a5ac0 6f 6e 20 6f 75 74 70 75 74 28 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 20 24 64 6f 6d 2c 20 61 72 72 on.output(\DOMDocument.$dom,.arr
a5ae0 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e ay.$options).{.if.(isset($option
a5b00 73 5b 27 61 73 5f 64 6f 6d 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 61 73 5f 64 6f 6d s['as_dom']).&&.$options['as_dom
a5b20 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 24 64 6f 6d 2d 3e 66 6f 72 6d ']).{.return.$dom;.}..$dom->form
a5b40 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 2d 3e 73 atOutput.=.true;..return.$dom->s
a5b60 61 76 65 58 4d 4c 28 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 aveXML();.}.}.<?php...........na
a5b80 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 6f 6c mespace.Symfony\Component\Consol
a5ba0 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f e\Descriptor;..use.Symfony\Compo
a5bc0 6e 65 6e 74 5c 43 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 nent\Console\Application;.use.Sy
a5be0 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 5c mfony\Component\Console\Command\
a5c00 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 43 Command;.use.Symfony\Component\C
a5c20 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 65 20 onsole\Input\InputArgument;.use.
a5c40 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\
a5c60 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d InputDefinition;.use.Symfony\Com
a5c80 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 6e ponent\Console\Input\InputOption
a5ca0 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 ;.......class.MarkdownDescriptor
a5cc0 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 .extends.Descriptor.{....protect
a5ce0 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e ed.function.describeInputArgumen
a5d00 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 2c 20 61 72 72 61 79 t(InputArgument.$argument,.array
a5d20 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 27 2a .$options.=.array()).{.return.'*
a5d40 2a 27 2e 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 2e 22 5c *'.$argument->getName().':**'."\
a5d60 6e 5c 6e 22 0a 2e 27 2a 20 4e 61 6d 65 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 n\n"..'*.Name:.'.($argument->get
a5d80 4e 61 6d 65 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 Name().?:.'<none>')."\n"..'*.Is.
a5da0 72 65 71 75 69 72 65 64 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 required:.'.($argument->isRequir
a5dc0 65 64 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 ed().?.'yes'.:.'no')."\n"..'*.Is
a5de0 20 61 72 72 61 79 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 .array:.'.($argument->isArray().
a5e00 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 69 70 ?.'yes'.:.'no')."\n"..'*.Descrip
a5e20 74 69 6f 6e 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 tion:.'.($argument->getDescripti
a5e40 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 66 61 75 on().?:.'<none>')."\n"..'*.Defau
a5e60 6c 74 3a 20 60 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 76 61 72 lt:.`'.str_replace("\n",.'',.var
a5e80 5f 65 78 70 6f 72 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c _export($argument->getDefault(),
a5ea0 20 74 72 75 65 29 29 2e 27 60 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e .true)).'`';.}.....protected.fun
a5ec0 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f ction.describeInputOption(InputO
a5ee0 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 ption.$option,.array.$options.=.
a5f00 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 27 2a 2a 27 2e 24 6f 70 74 69 6f 6e 2d 3e array()).{.return.'**'.$option->
a5f20 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 4e 61 6d 65 3a getName().':**'."\n\n"..'*.Name:
a5f40 20 60 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 60 27 2e 22 5c 6e .`--'.$option->getName().'`'."\n
a5f60 22 0a 2e 27 2a 20 53 68 6f 72 74 63 75 74 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 "..'*.Shortcut:.'.($option->getS
a5f80 68 6f 72 74 63 75 74 28 29 20 3f 20 27 60 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 2d 27 2c 20 65 hortcut().?.'`-'.implode('|-',.e
a5fa0 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 xplode('|',.$option->getShortcut
a5fc0 28 29 29 29 2e 27 60 27 20 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 41 63 ())).'`'.:.'<none>')."\n"..'*.Ac
a5fe0 63 65 70 74 20 76 61 6c 75 65 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 cept.value:.'.($option->acceptVa
a6000 6c 75 65 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 lue().?.'yes'.:.'no')."\n"..'*.I
a6020 73 20 76 61 6c 75 65 20 72 65 71 75 69 72 65 64 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 s.value.required:.'.($option->is
a6040 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e ValueRequired().?.'yes'.:.'no').
a6060 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 6d 75 6c 74 69 70 6c 65 3a 20 27 2e 28 24 6f 70 74 69 6f 6e "\n"..'*.Is.multiple:.'.($option
a6080 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 ->isArray().?.'yes'.:.'no')."\n"
a60a0 0a 2e 27 2a 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 ..'*.Description:.'.($option->ge
a60c0 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 tDescription().?:.'<none>')."\n"
a60e0 0a 2e 27 2a 20 44 65 66 61 75 6c 74 3a 20 60 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e ..'*.Default:.`'.str_replace("\n
a6100 22 2c 20 27 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 ",.'',.var_export($option->getDe
a6120 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 2e 27 60 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 fault(),.true)).'`';.}.....prote
a6140 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e cted.function.describeInputDefin
a6160 69 74 69 6f 6e 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 ition(InputDefinition.$definitio
a6180 6e 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 n,.array.$options.=.array()).{.$
a61a0 62 6c 6f 63 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 blocks.=.array();..if.(count($de
a61c0 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 20 3e 20 30 29 20 7b finition->getArguments()).>.0).{
a61e0 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 27 23 23 23 20 41 72 67 75 6d 65 6e 74 73 3a 27 3b 0a 66 .$blocks[].=.'###.Arguments:';.f
a6200 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 oreach.($definition->getArgument
a6220 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 s().as.$argument).{.$blocks[].=.
a6240 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 61 72 $this->describeInputArgument($ar
a6260 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 69 6e 69 74 gument);.}.}..if.(count($definit
a6280 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 3e 20 30 29 20 7b 0a 24 62 6c 6f 63 6b ion->getOptions()).>.0).{.$block
a62a0 73 5b 5d 20 3d 20 27 23 23 23 20 4f 70 74 69 6f 6e 73 3a 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 s[].=.'###.Options:';.foreach.($
a62c0 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 definition->getOptions().as.$opt
a62e0 69 6f 6e 29 20 7b 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 ion).{.$blocks[].=.$this->descri
a6300 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 beInputOption($option);.}.}..ret
a6320 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 5c 6e 22 2c 20 24 62 6c 6f 63 6b 73 29 3b 0a 7d 0a urn.implode("\n\n",.$blocks);.}.
a6340 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 ....protected.function.describeC
a6360 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 ommand(Command.$command,.array.$
a6380 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 options.=.array()).{.$command->g
a63a0 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 etSynopsis();.$command->mergeApp
a63c0 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 24 6d 61 72 licationDefinition(false);..$mar
a63e0 6b 64 6f 77 6e 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 5c 6e 22 kdown.=.$command->getName()."\n"
a6400 0a 2e 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e ..str_repeat('-',.strlen($comman
a6420 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 69 d->getName()))."\n\n"..'*.Descri
a6440 70 74 69 6f 6e 3a 20 27 2e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 ption:.'.($command->getDescripti
a6460 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 55 73 61 67 65 on().?:.'<none>')."\n"..'*.Usage
a6480 3a 20 60 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2e 27 60 27 :.`'.$command->getSynopsis().'`'
a64a0 2e 22 5c 6e 22 0a 2e 27 2a 20 41 6c 69 61 73 65 73 3a 20 27 2e 28 63 6f 75 6e 74 28 24 63 6f 6d ."\n"..'*.Aliases:.'.(count($com
a64c0 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 3f 20 27 60 27 2e 69 6d 70 6c 6f 64 mand->getAliases()).?.'`'.implod
a64e0 65 28 27 60 2c 20 60 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 e('`,.`',.$command->getAliases()
a6500 29 2e 27 60 27 20 3a 20 27 3c 6e 6f 6e 65 3e 27 29 3b 0a 0a 69 66 20 28 24 68 65 6c 70 20 3d 20 ).'`'.:.'<none>');..if.($help.=.
a6520 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 20 7b 0a $command->getProcessedHelp()).{.
a6540 24 6d 61 72 6b 64 6f 77 6e 20 2e 3d 20 22 5c 6e 5c 6e 22 2e 24 68 65 6c 70 3b 0a 7d 0a 0a 69 66 $markdown..=."\n\n".$help;.}..if
a6560 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 4d 61 72 6b 64 6f 77 6e 20 3d 20 24 74 68 69 73 2d 3e 64 .($definitionMarkdown.=.$this->d
a6580 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d escribeInputDefinition($command-
a65a0 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 29 20 7b 0a 24 6d 61 72 6b >getNativeDefinition())).{.$mark
a65c0 64 6f 77 6e 20 2e 3d 20 22 5c 6e 5c 6e 22 2e 24 64 65 66 69 6e 69 74 69 6f 6e 4d 61 72 6b 64 6f down..=."\n\n".$definitionMarkdo
a65e0 77 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 72 6b 64 6f 77 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 wn;.}..return.$markdown;.}.....p
a6600 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 rotected.function.describeApplic
a6620 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 ation(Application.$application,.
a6640 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 64 65 73 array.$options.=.array()).{.$des
a6660 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 cribedNamespace.=.isset($options
a6680 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 ['namespace']).?.$options['names
a66a0 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 6e 65 pace'].:.null;.$description.=.ne
a66c0 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 6c 69 63 w.ApplicationDescription($applic
a66e0 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 24 62 6c ation,.$describedNamespace);.$bl
a6700 6f 63 6b 73 20 3d 20 61 72 72 61 79 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 ocks.=.array($application->getNa
a6720 6d 65 28 29 2e 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 3d 27 2c 20 73 74 72 6c 65 6e me()."\n".str_repeat('=',.strlen
a6740 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 29 3b 0a 0a 66 6f ($application->getName())));..fo
a6760 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 reach.($description->getNamespac
a6780 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 41 70 70 6c 69 63 es().as.$namespace).{.if.(Applic
a67a0 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 ationDescription::GLOBAL_NAMESPA
a67c0 43 45 20 21 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 20 7b 0a 24 62 6c 6f 63 CE.!==.$namespace['id']).{.$bloc
a67e0 6b 73 5b 5d 20 3d 20 27 2a 2a 27 2e 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 2e 27 3a 2a ks[].=.'**'.$namespace['id'].':*
a6800 2a 27 3b 0a 7d 0a 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c *';.}..$blocks[].=.implode("\n",
a6820 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d .array_map(function.($commandNam
a6840 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 20 27 2e 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 7d e).{.return.'*.'.$commandName;.}
a6860 20 2c 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d 29 29 3b 0a 7d 0a 0a .,.$namespace['commands']));.}..
a6880 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e foreach.($description->getComman
a68a0 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 ds().as.$command).{.$blocks[].=.
a68c0 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 $this->describeCommand($command)
a68e0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 5c 6e 22 2c 20 24 62 6c 6f ;.}..return.implode("\n\n",.$blo
a6900 63 6b 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 70 cks);.}.}.<?php...........namesp
a6920 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 44 65 ace.Symfony\Component\Console\De
a6940 73 63 72 69 70 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 scriptor;..use.Symfony\Component
a6960 5c 43 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 \Console\Application;.use.Symfon
a6980 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 6f 6d 6d y\Component\Console\Command\Comm
a69a0 61 6e 64 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 and;.....class.ApplicationDescri
a69c0 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 3d ption.{.const.GLOBAL_NAMESPACE.=
a69e0 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 .'_global';.....private.$applica
a6a00 74 69 6f 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 0a 0a tion;.....private.$namespace;...
a6a20 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 63 65 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 ..private.$namespaces;.....priva
a6a40 74 65 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 te.$commands;.....private.$alias
a6a60 65 73 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 es;........public.function.__con
a6a80 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 69 6f 6e 2c struct(Application.$application,
a6aa0 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 .$namespace.=.null).{.$this->app
a6ac0 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 73 2d 3e lication.=.$application;.$this->
a6ae0 6e 61 6d 65 73 70 61 63 65 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 namespace.=.$namespace;.}.....pu
a6b00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 0a 7b 0a blic.function.getNamespaces().{.
a6b20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 29 20 if.(null.===.$this->namespaces).
a6b40 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 7d {.$this->inspectApplication();.}
a6b60 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 3b 0a 7d 0a 0a 0a ..return.$this->namespaces;.}...
a6b80 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 73 28 29 0a ..public.function.getCommands().
a6ba0 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 6d 61 6e 64 73 29 20 {.if.(null.===.$this->commands).
a6bc0 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 7d {.$this->inspectApplication();.}
a6be0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a ..return.$this->commands;.}.....
a6c00 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 6d 61 6e 64 28 24 ....public.function.getCommand($
a6c20 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 6d 6d 61 6e name).{.if.(!isset($this->comman
a6c40 64 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 6c 69 61 ds[$name]).&&.!isset($this->alia
a6c60 73 65 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 61 6c 69 ses[$name])).{.throw.new.\Invali
a6c80 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 6d 6d dArgumentException(sprintf('Comm
a6ca0 61 6e 64 20 25 73 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 and.%s.does.not.exist.',.$name))
a6cc0 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 63 6f 6d 6d 61 6e 64 ;.}..return.isset($this->command
a6ce0 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d s[$name]).?.$this->commands[$nam
a6d00 65 5d 20 3a 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 70 e].:.$this->aliases[$name];.}..p
a6d20 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 rivate.function.inspectApplicati
a6d40 6f 6e 28 29 0a 7b 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 on().{.$this->commands.=.array()
a6d60 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a ;.$this->namespaces.=.array();..
a6d80 24 61 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 61 6c 6c 28 24 $all.=.$this->application->all($
a6da0 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3f 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 this->namespace.?.$this->applica
a6dc0 74 69 6f 6e 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 tion->findNamespace($this->names
a6de0 70 61 63 65 29 20 3a 20 6e 75 6c 6c 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 pace).:.null);.foreach.($this->s
a6e00 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 61 6c 6c 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 ortCommands($all).as.$namespace.
a6e20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 =>.$commands).{.$names.=.array()
a6e40 3b 0a 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 20 ;...foreach.($commands.as.$name.
a6e60 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 =>.$command).{.if.(!$command->ge
a6e80 74 4e 61 6d 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d tName()).{.continue;.}..if.($com
a6ea0 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 mand->getName().===.$name).{.$th
a6ec0 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a is->commands[$name].=.$command;.
a6ee0 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 20 3d }.else.{.$this->aliases[$name].=
a6f00 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a .$command;.}..$names[].=.$name;.
a6f20 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d }..$this->namespaces[$namespace]
a6f40 20 3d 20 61 72 72 61 79 28 27 69 64 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 63 6f .=.array('id'.=>.$namespace,.'co
a6f60 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 6e 61 6d 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 mmands'.=>.$names);.}.}.......pr
a6f80 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 ivate.function.sortCommands(arra
a6fa0 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e y.$commands).{.$namespacedComman
a6fc0 64 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 6d 6d 61 6e 64 73 ds.=.array();.foreach.($commands
a6fe0 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 24 6b 65 79 20 3d 20 .as.$name.=>.$command).{.$key.=.
a7000 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 $this->application->extractNames
a7020 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
a7040 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
a7060 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;.}
a7080 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
a70a0 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.&$
a70c0 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);.}.
a70e0 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 7d .return.$namespacedCommands;.}.}
a7100 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
a7120 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b ny\Component\Console\Descriptor;
a7140 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\
a7160 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
a7180 6e 74 5c 43 6f 6e 73 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 nt\Console\Command\Command;.use.
a71a0 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\
a71c0 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
a71e0 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 66 69 6e 69 74 69 nent\Console\Input\InputDefiniti
a7200 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 6e 73 6f 6c on;.use.Symfony\Component\Consol
a7220 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 e\Input\InputOption;.....abstrac
a7240 74 20 63 6c 61 73 73 20 44 65 73 63 72 69 70 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 65 t.class.Descriptor.implements.De
a7260 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 scriptorInterface.{.public.funct
a7280 69 6f 6e 20 64 65 73 63 72 69 62 65 28 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 24 6f 70 74 ion.describe($object,.array.$opt
a72a0 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 73 77 69 74 63 68 20 28 74 72 75 65 29 20 ions.=.array()).{.switch.(true).
a72c0 7b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 41 {.case.$object.instanceof.InputA
a72e0 72 67 75 6d 65 6e 74 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 rgument:.return.$this->describeI
a7300 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b nputArgument($object,.$options);
a7320 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 4f 70 .case.$object.instanceof.InputOp
a7340 74 69 6f 6e 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 tion:.return.$this->describeInpu
a7360 74 4f 70 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 63 61 73 65 tOption($object,.$options);.case
a7380 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e 69 74 .$object.instanceof.InputDefinit
a73a0 69 6f 6e 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 ion:.return.$this->describeInput
a73c0 44 65 66 69 6e 69 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 63 Definition($object,.$options);.c
a73e0 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 6d 61 6e 64 3a 0a ase.$object.instanceof.Command:.
a7400 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 6f return.$this->describeCommand($o
a7420 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 bject,.$options);.case.$object.i
a7440 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 3a 0a 72 65 74 75 72 6e 20 24 74 nstanceof.Application:.return.$t
a7460 68 69 73 2d 3e 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 24 6f 62 6a 65 63 74 his->describeApplication($object
a7480 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c ,.$options);.}..throw.new.\Inval
a74a0 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 4f 62 6a idArgumentException(sprintf('Obj
a74c0 65 63 74 20 6f 66 20 74 79 70 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 73 63 72 69 62 61 ect.of.type."%s".is.not.describa
a74e0 62 6c 65 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 6f 62 6a 65 63 74 29 29 29 3b 0a 7d 0a 0a ble.',.get_class($object)));.}..
a7500 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 66 75 6e 63 74 ........abstract.protected.funct
a7520 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 ion.describeInputArgument(InputA
a7540 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e rgument.$argument,.array.$option
a7560 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 s.=.array());..........abstract.
a7580 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 protected.function.describeInput
a75a0 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 Option(InputOption.$option,.arra
a75c0 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a y.$options.=.array());..........
a75e0 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 65 73 63 abstract.protected.function.desc
a7600 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 ribeInputDefinition(InputDefinit
a7620 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 ion.$definition,.array.$options.
a7640 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 =.array());..........abstract.pr
a7660 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 otected.function.describeCommand
a7680 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e (Command.$command,.array.$option
a76a0 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 s.=.array());..........abstract.
a76c0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 protected.function.describeAppli
a76e0 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c cation(Application.$application,
a7700 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 3b 0a 7d 0a 3c 3f .array.$options.=.array());.}.<?
a7720 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\
a7740 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 Component\Console\Descriptor;..u
a7760 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 41 70 70 se.Symfony\Component\Console\App
a7780 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 6e 74 5c lication;.use.Symfony\Component\
a77a0 43 6f 6e 73 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 Console\Command\Command;.use.Sym
a77c0 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
a77e0 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 6e 65 6e utArgument;.use.Symfony\Componen
a7800 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 6e 3b t\Console\Input\InputDefinition;
a7820 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
a7840 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 nput\InputOption;.......class.Js
a7860 6f 6e 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a onDescriptor.extends.Descriptor.
a7880 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 {....protected.function.describe
a78a0 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 InputArgument(InputArgument.$arg
a78c0 75 6d 65 6e 74 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 ument,.array.$options.=.array())
a78e0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 61 72 72 61 79 28 0a 27 .{.return.$this->output(array(.'
a7900 6e 61 6d 65 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 name'.=>.$argument->getName(),.'
a7920 69 73 5f 72 65 71 75 69 72 65 64 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 is_required'.=>.$argument->isReq
a7940 75 69 72 65 64 28 29 2c 0a 27 69 73 5f 61 72 72 61 79 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 uired(),.'is_array'.=>.$argument
a7960 2d 3e 69 73 41 72 72 61 79 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 61 ->isArray(),.'description'.=>.$a
a7980 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 64 65 66 61 rgument->getDescription(),.'defa
a79a0 75 6c 74 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c ult'.=>.$argument->getDefault(),
a79c0 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 .),.$options);.}.....protected.f
a79e0 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 unction.describeInputOption(Inpu
a7a00 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 tOption.$option,.array.$options.
a7a20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 =.array()).{.return.$this->outpu
a7a40 74 28 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d t(array(.'name'.=>.'--'.$option-
a7a60 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 73 68 6f 72 74 63 75 74 27 20 3d 3e 20 24 6f 70 74 69 6f >getName(),.'shortcut'.=>.$optio
a7a80 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 n->getShortcut().?.'-'.implode('
a7aa0 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 |-',.explode('|',.$option->getSh
a7ac0 6f 72 74 63 75 74 28 29 29 29 20 3a 20 27 27 2c 0a 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 20 ortcut())).:.'',.'accept_value'.
a7ae0 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 2c 0a 27 69 73 5f 76 =>.$option->acceptValue(),.'is_v
a7b00 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c alue_required'.=>.$option->isVal
a7b20 75 65 52 65 71 75 69 72 65 64 28 29 2c 0a 27 69 73 5f 6d 75 6c 74 69 70 6c 65 27 20 3d 3e 20 24 ueRequired(),.'is_multiple'.=>.$
a7b40 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 option->isArray(),.'description'
a7b60 20 3d 3e 20 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 2c 0a 27 .=>.$option->getDescription(),.'
a7b80 64 65 66 61 75 6c 74 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 default'.=>.$option->getDefault(
a7ba0 29 2c 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ),.),.$options);.}.....protected
a7bc0 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f .function.describeInputDefinitio
a7be0 6e 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 2c 20 61 n(InputDefinition.$definition,.a
a7c00 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 69 6e 70 75 rray.$options.=.array()).{.$inpu
a7c20 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 tArguments.=.array();.foreach.($
a7c40 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 6e definition->getArguments().as.$n
a7c60 61 6d 65 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 69 6e 70 75 74 41 72 67 75 6d 65 ame.=>.$argument).{.$inputArgume
a7c80 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 nts[$name].=.$this->describeInpu
a7ca0 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 28 27 61 73 5f 61 tArgument($argument,.array('as_a
a7cc0 72 72 61 79 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e rray'.=>.true));.}..$inputOption
a7ce0 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
a7d00 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 6f 70 74 n->getOptions().as.$name.=>.$opt
a7d20 69 6f 6e 29 20 7b 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 ion).{.$inputOptions[$name].=.$t
a7d40 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e his->describeInputOption($option
a7d60 2c 20 61 72 72 61 79 28 27 61 73 5f 61 72 72 61 79 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 7d 0a ,.array('as_array'.=>.true));.}.
a7d80 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 61 72 72 61 79 28 27 61 72 67 .return.$this->output(array('arg
a7da0 75 6d 65 6e 74 73 27 20 3d 3e 20 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 2c 20 27 6f 70 74 uments'.=>.$inputArguments,.'opt
a7dc0 69 6f 6e 73 27 20 3d 3e 20 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 29 2c 20 24 6f 70 74 69 6f 6e ions'.=>.$inputOptions),.$option
a7de0 73 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 64 65 73 s);.}.....protected.function.des
a7e00 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 cribeCommand(Command.$command,.a
a7e20 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 63 6f 6d 6d rray.$options.=.array()).{.$comm
a7e40 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 and->getSynopsis();.$command->me
a7e60 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b rgeApplicationDefinition(false);
a7e80 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 61 72 72 61 79 28 0a 27 6e ..return.$this->output(array(.'n
a7ea0 61 6d 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 75 73 ame'.=>.$command->getName(),.'us
a7ec0 61 67 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c age'.=>.$command->getSynopsis(),
a7ee0 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 .'description'.=>.$command->getD
a7f00 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 68 65 6c 70 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 escription(),.'help'.=>.$command
a7f20 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 2c 0a 27 61 6c 69 61 73 65 73 27 20 ->getProcessedHelp(),.'aliases'.
a7f40 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 2c 0a 27 64 65 66 69 =>.$command->getAliases(),.'defi
a7f60 6e 69 74 69 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 nition'.=>.$this->describeInputD
a7f80 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 efinition($command->getNativeDef
a7fa0 69 6e 69 74 69 6f 6e 28 29 2c 20 61 72 72 61 79 28 27 61 73 5f 61 72 72 61 79 27 20 3d 3e 20 74 inition(),.array('as_array'.=>.t
a7fc0 72 75 65 29 29 2c 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 rue)),.),.$options);.}.....prote
a7fe0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f cted.function.describeApplicatio
a8000 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 n(Application.$application,.arra
a8020 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 64 65 73 63 72 69 62 y.$options.=.array()).{.$describ
a8040 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 edNamespace.=.isset($options['na
a8060 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 mespace']).?.$options['namespace
a8080 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 '].:.null;.$description.=.new.Ap
a80a0 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 6c 69 63 61 74 69 6f plicationDescription($applicatio
a80c0 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 24 63 6f 6d 6d 61 6e n,.$describedNamespace);.$comman
a80e0 64 73 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 73 63 72 69 70 ds.=.array();..foreach.($descrip
a8100 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 tion->getCommands().as.$command)
a8120 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 .{.$commands[].=.$this->describe
a8140 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 28 27 61 73 5f 61 72 72 61 Command($command,.array('as_arra
a8160 79 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 64 65 73 63 72 69 y'.=>.true));.}..$data.=.$descri
a8180 62 65 64 4e 61 6d 65 73 70 61 63 65 0a 3f 20 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 73 27 20 bedNamespace.?.array('commands'.
a81a0 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 64 65 =>.$commands,.'namespace'.=>.$de
a81c0 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 0a 3a 20 61 72 72 61 79 28 27 63 6f 6d 6d 61 scribedNamespace).:.array('comma
a81e0 6e 64 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 61 63 65 73 27 20 nds'.=>.$commands,.'namespaces'.
a8200 3d 3e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 =>.array_values($description->ge
a8220 74 4e 61 6d 65 73 70 61 63 65 73 28 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e tNamespaces()));..return.$this->
a8240 6f 75 74 70 75 74 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a output($data,.$options);.}......
a8260 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 28 61 72 72 61 ....private.function.output(arra
a8280 79 20 24 64 61 74 61 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 69 66 20 28 69 y.$data,.array.$options).{.if.(i
a82a0 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 73 5f 61 72 72 61 79 27 5d 29 20 26 26 20 24 6f sset($options['as_array']).&&.$o
a82c0 70 74 69 6f 6e 73 5b 27 61 73 5f 61 72 72 61 79 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 61 ptions['as_array']).{.return.$da
a82e0 74 61 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 2c ta;.}..return.json_encode($data,
a8300 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e 67 27 5d .isset($options['json_encoding']
a8320 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e 67 27 5d 20 3a 20 ).?.$options['json_encoding'].:.
a8340 30 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 0);.}.}.<?php...........namespac
a8360 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
a8380 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 48 65 6c 70 65 72 49 6e 74 65 er;.........interface.HelperInte
a83a0 72 66 61 63 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 73 rface.{........public.function.s
a83c0 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
a83e0 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 74 69 6f .=.null);.........public.functio
a8400 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.getHelperSet();.........public
a8420 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a .function.getName();.}.<?php....
a8440 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 6e 65 .......namespace.Symfony\Compone
a8460 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 66 6f 6e 79 5c nt\Console\Helper;..use.Symfony\
a8480 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 49 Component\Console\Output\OutputI
a84a0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 nterface;.use.InvalidArgumentExc
a84c0 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 48 65 6c 70 65 72 20 eption;.......class.TableHelper.
a84e0 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 44 45 extends.Helper.{.const.LAYOUT_DE
a8500 46 41 55 4c 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c 45 FAULT.=.0;.const.LAYOUT_BORDERLE
a8520 53 53 20 3d 20 31 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 68 65 61 64 65 72 73 20 3d SS.=.1;.......private.$headers.=
a8540 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 6f 77 73 20 3d 20 .array();.......private.$rows.=.
a8560 61 72 72 61 79 28 29 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 24 70 61 64 64 69 6e 67 43 68 61 72 array();....private.$paddingChar
a8580 3b 0a 70 72 69 76 61 74 65 20 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 3b ;.private.$horizontalBorderChar;
a85a0 0a 70 72 69 76 61 74 65 20 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 70 72 .private.$verticalBorderChar;.pr
a85c0 69 76 61 74 65 20 24 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 70 72 69 76 61 74 65 20 24 63 65 ivate.$crossingChar;.private.$ce
a85e0 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 70 72 69 76 61 74 65 20 24 63 65 6c 6c 52 6f 77 llHeaderFormat;.private.$cellRow
a8600 46 6f 72 6d 61 74 3b 0a 70 72 69 76 61 74 65 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 3b 0a 70 Format;.private.$borderFormat;.p
a8620 72 69 76 61 74 65 20 24 70 61 64 54 79 70 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 rivate.$padType;.......private.$
a8640 63 6f 6c 75 6d 6e 57 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 columnWidths.=.array();.......pr
a8660 69 76 61 74 65 20 24 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 3b 0a 0a 0a 0a 0a 70 72 69 76 ivate.$numberOfColumns;.....priv
a8680 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ate.$output;..public.function.__
a86a0 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4c 61 79 6f 75 74 28 73 construct().{.$this->setLayout(s
a86c0 65 6c 66 3a 3a 4c 41 59 4f 55 54 5f 44 45 46 41 55 4c 54 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a elf::LAYOUT_DEFAULT);.}.........
a86e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 61 79 6f 75 74 28 24 6c 61 79 6f 75 public.function.setLayout($layou
a8700 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6c 61 79 6f 75 74 29 20 7b 0a 63 61 73 65 20 73 65 6c t).{.switch.($layout).{.case.sel
a8720 66 3a 3a 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c 45 53 53 3a 0a 24 74 68 69 73 0a 2d 3e 73 65 f::LAYOUT_BORDERLESS:.$this.->se
a8740 74 50 61 64 64 69 6e 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 tPaddingChar('.').->setHorizonta
a8760 6c 42 6f 72 64 65 72 43 68 61 72 28 27 3d 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f lBorderChar('=').->setVerticalBo
a8780 72 64 65 72 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 rderChar('.').->setCrossingChar(
a87a0 27 20 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 27 3c 69 6e 66 '.').->setCellHeaderFormat('<inf
a87c0 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 o>%s</info>').->setCellRowFormat
a87e0 28 27 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 0a 2d 3e 73 65 74 42 ('<comment>%s</comment>').->setB
a8800 6f 72 64 65 72 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 2d 3e 73 65 74 50 61 64 54 79 70 65 28 53 orderFormat('%s').->setPadType(S
a8820 54 52 5f 50 41 44 5f 52 49 47 48 54 29 0a 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c TR_PAD_RIGHT).;.break;..case.sel
a8840 66 3a 3a 4c 41 59 4f 55 54 5f 44 45 46 41 55 4c 54 3a 0a 24 74 68 69 73 0a 2d 3e 73 65 74 50 61 f::LAYOUT_DEFAULT:.$this.->setPa
a8860 64 64 69 6e 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f ddingChar('.').->setHorizontalBo
a8880 72 64 65 72 43 68 61 72 28 27 2d 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 rderChar('-').->setVerticalBorde
a88a0 72 43 68 61 72 28 27 7c 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 27 2b 27 rChar('|').->setCrossingChar('+'
a88c0 29 0a 2d 3e 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 27 3c 69 6e 66 6f 3e 25 ).->setCellHeaderFormat('<info>%
a88e0 73 3c 2f 69 6e 66 6f 3e 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 27 3c s</info>').->setCellRowFormat('<
a8900 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 0a 2d 3e 73 65 74 42 6f 72 64 comment>%s</comment>').->setBord
a8920 65 72 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 2d 3e 73 65 74 50 61 64 54 79 70 65 28 53 54 52 5f erFormat('%s').->setPadType(STR_
a8940 50 41 44 5f 52 49 47 48 54 29 0a 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 PAD_RIGHT).;.break;..default:.th
a8960 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e row.new.InvalidArgumentException
a8980 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 74 61 62 6c 65 20 6c 61 79 6f 75 74 20 22 (sprintf('Invalid.table.layout."
a89a0 25 73 22 2e 27 2c 20 24 6c 61 79 6f 75 74 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 3b 0a 0a 72 65 74 %s".',.$layout));.break;.};..ret
a89c0 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
a89e0 74 48 65 61 64 65 72 73 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 74 68 69 73 tHeaders(array.$headers).{.$this
a8a00 2d 3e 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 68 65 61 64 65 72 ->headers.=.array_values($header
a8a20 73 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 69 63 20 66 75 6e s);..return.$this;.}..public.fun
a8a40 63 74 69 6f 6e 20 73 65 74 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 24 74 68 ction.setRows(array.$rows).{.$th
a8a60 69 73 2d 3e 72 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 is->rows.=.array();..return.$thi
a8a80 73 2d 3e 61 64 64 52 6f 77 73 28 24 72 6f 77 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e s->addRows($rows);.}..public.fun
a8aa0 63 74 69 6f 6e 20 61 64 64 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 66 6f 72 ction.addRows(array.$rows).{.for
a8ac0 65 61 63 68 20 28 24 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 each.($rows.as.$row).{.$this->ad
a8ae0 64 52 6f 77 28 24 72 6f 77 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a dRow($row);.}..return.$this;.}..
a8b00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 28 61 72 72 61 79 20 24 72 6f public.function.addRow(array.$ro
a8b20 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 5d 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 w).{.$this->rows[].=.array_value
a8b40 73 28 24 72 6f 77 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 69 s($row);..return.$this;.}..publi
a8b60 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 77 28 24 63 6f 6c 75 6d 6e 2c 20 61 72 72 61 79 c.function.setRow($column,.array
a8b80 20 24 72 6f 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 24 63 6f 6c 75 6d 6e 5d 20 3d 20 .$row).{.$this->rows[$column].=.
a8ba0 24 72 6f 77 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 $row;..return.$this;.}.........p
a8bc0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 24 70 ublic.function.setPaddingChar($p
a8be0 61 64 64 69 6e 67 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 addingChar).{.$this->paddingChar
a8c00 20 3d 20 24 70 61 64 64 69 6e 67 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a .=.$paddingChar;..return.$this;.
a8c20 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 48 6f 72 }.........public.function.setHor
a8c40 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 izontalBorderChar($horizontalBor
a8c60 64 65 72 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 derChar).{.$this->horizontalBord
a8c80 65 72 43 68 61 72 20 3d 20 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a erChar.=.$horizontalBorderChar;.
a8ca0 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 75 62 6c 69 63 20 .return.$this;.}.........public.
a8cc0 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 function.setVerticalBorderChar($
a8ce0 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 verticalBorderChar).{.$this->ver
a8d00 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 ticalBorderChar.=.$verticalBorde
a8d20 72 43 68 61 72 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 rChar;..return.$this;.}.........
a8d40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 public.function.setCrossingChar(
a8d60 24 63 72 6f 73 73 69 6e 67 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 $crossingChar).{.$this->crossing
a8d80 43 68 61 72 20 3d 20 24 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 Char.=.$crossingChar;..return.$t
a8da0 68 69 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 73 his;.}.........public.function.s
a8dc0 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c 6c 48 65 61 64 65 72 46 6f etCellHeaderFormat($cellHeaderFo
a8de0 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 20 rmat).{.$this->cellHeaderFormat.
a8e00 3d 20 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 =.$cellHeaderFormat;..return.$th
a8e20 69 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 73 65 is;.}.........public.function.se
a8e40 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 29 0a 7b tCellRowFormat($cellRowFormat).{
a8e60 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 20 3d 20 24 63 65 6c 6c 52 6f 77 .$this->cellRowFormat.=.$cellRow
a8e80 46 6f 72 6d 61 74 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 Format;..return.$this;.}........
a8ea0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 .public.function.setBorderFormat
a8ec0 28 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 ($borderFormat).{.$this->borderF
a8ee0 6f 72 6d 61 74 20 3d 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 ormat.=.$borderFormat;..return.$
a8f00 74 68 69 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 this;.}.........public.function.
a8f20 73 65 74 50 61 64 54 79 70 65 28 24 70 61 64 54 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 setPadType($padType).{.$this->pa
a8f40 64 54 79 70 65 20 3d 20 24 70 61 64 54 79 70 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b dType.=.$padType;..return.$this;
a8f60 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 6f .}................public.functio
a8f80 6e 20 72 65 6e 64 65 72 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 n.render(OutputInterface.$output
a8fa0 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 0a 24 74 ).{.$this->output.=.$output;..$t
a8fc0 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 24 74 68 69 73 his->renderRowSeparator();.$this
a8fe0 2d 3e 72 65 6e 64 65 72 52 6f 77 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 2c 20 24 74 68 69 ->renderRow($this->headers,.$thi
a9000 73 2d 3e 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 s->cellHeaderFormat);.if.(!empty
a9020 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 ($this->headers)).{.$this->rende
a9040 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 rRowSeparator();.}.foreach.($thi
a9060 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 s->rows.as.$row).{.$this->render
a9080 52 6f 77 28 24 72 6f 77 2c 20 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 29 3b Row($row,.$this->cellRowFormat);
a90a0 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 72 6f 77 73 29 29 20 7b 0a 24 74 .}.if.(!empty($this->rows)).{.$t
a90c0 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 24 74 his->renderRowSeparator();.}..$t
a90e0 68 69 73 2d 3e 63 6c 65 61 6e 75 70 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 his->cleanup();.}.......private.
a9100 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 0a 7b 0a function.renderRowSeparator().{.
a9120 69 66 20 28 30 20 3d 3d 3d 20 24 63 6f 75 6e 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 75 6d if.(0.===.$count.=.$this->getNum
a9140 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d 61 berOfColumns()).{.return;.}..$ma
a9160 72 6b 75 70 20 3d 20 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 66 6f 72 20 rkup.=.$this->crossingChar;.for.
a9180 28 24 63 6f 6c 75 6d 6e 20 3d 20 30 3b 20 24 63 6f 6c 75 6d 6e 20 3c 20 24 63 6f 75 6e 74 3b 20 ($column.=.0;.$column.<.$count;.
a91a0 24 63 6f 6c 75 6d 6e 2b 2b 29 20 7b 0a 24 6d 61 72 6b 75 70 20 2e 3d 20 73 74 72 5f 72 65 70 65 $column++).{.$markup..=.str_repe
a91c0 61 74 28 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 2c 20 at($this->horizontalBorderChar,.
a91e0 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 29 0a $this->getColumnWidth($column)).
a9200 2e 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 0a 3b 0a 7d 0a 0a 24 74 68 69 73 2d .$this->crossingChar.;.}..$this-
a9220 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 24 74 68 69 73 2d 3e >output->writeln(sprintf($this->
a9240 62 6f 72 64 65 72 46 6f 72 6d 61 74 2c 20 24 6d 61 72 6b 75 70 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 borderFormat,.$markup));.}.....p
a9260 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 43 6f 6c 75 6d 6e 53 65 70 61 rivate.function.renderColumnSepa
a9280 72 61 74 6f 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 rator().{.$this->output->write(s
a92a0 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 74 2c 20 24 74 68 69 printf($this->borderFormat,.$thi
a92c0 73 2d 3e 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a s->verticalBorderChar));.}......
a92e0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 52 6f 77 28 61 ....private.function.renderRow(a
a9300 72 72 61 79 20 24 72 6f 77 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 0a 7b 0a 69 66 20 28 65 6d rray.$row,.$cellFormat).{.if.(em
a9320 70 74 79 28 24 72 6f 77 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 pty($row)).{.return;.}..$this->r
a9340 65 6e 64 65 72 43 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 66 6f 72 20 28 24 63 6f enderColumnSeparator();.for.($co
a9360 6c 75 6d 6e 20 3d 20 30 2c 20 24 63 6f 75 6e 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 75 6d lumn.=.0,.$count.=.$this->getNum
a9380 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 3b 20 24 63 6f 6c 75 6d 6e 20 3c 20 24 63 6f 75 6e 74 berOfColumns();.$column.<.$count
a93a0 3b 20 24 63 6f 6c 75 6d 6e 2b 2b 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 43 65 6c 6c ;.$column++).{.$this->renderCell
a93c0 28 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 3b 0a 24 74 ($row,.$column,.$cellFormat);.$t
a93e0 68 69 73 2d 3e 72 65 6e 64 65 72 43 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a his->renderColumnSeparator();.}.
a9400 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 0a 0a $this->output->writeln('');.}...
a9420 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 6e 64 65 72 43 65 6c ......private.function.renderCel
a9440 6c 28 61 72 72 61 79 20 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 2c 20 24 63 65 6c 6c 46 6f 72 6d l(array.$row,.$column,.$cellForm
a9460 61 74 29 0a 7b 0a 24 63 65 6c 6c 20 3d 20 69 73 73 65 74 28 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e at).{.$cell.=.isset($row[$column
a9480 5d 29 20 3f 20 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 20 3a 20 27 27 3b 0a 0a 24 74 68 69 73 2d ]).?.$row[$column].:.'';..$this-
a94a0 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 0a 24 63 65 6c 6c 46 6f 72 >output->write(sprintf(.$cellFor
a94c0 6d 61 74 2c 0a 73 74 72 5f 70 61 64 28 0a 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 mat,.str_pad(.$this->paddingChar
a94e0 2e 24 63 65 6c 6c 2e 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 2c 0a 24 74 68 69 73 .$cell.$this->paddingChar,.$this
a9500 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 2c 0a 24 74 68 69 73 ->getColumnWidth($column),.$this
a9520 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 2c 0a 24 74 68 69 73 2d 3e 70 61 64 54 79 70 65 0a 29 0a ->paddingChar,.$this->padType.).
a9540 29 29 3b 0a 7d 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 ));.}.......private.function.get
a9560 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d NumberOfColumns().{.if.(null.!==
a9580 20 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 29 20 7b 0a 72 65 74 75 72 .$this->numberOfColumns).{.retur
a95a0 6e 20 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 3b 0a 7d 0a 0a 24 63 6f n.$this->numberOfColumns;.}..$co
a95c0 6c 75 6d 6e 73 20 3d 20 61 72 72 61 79 28 30 29 3b 0a 24 63 6f 6c 75 6d 6e 73 5b 5d 20 3d 20 63 lumns.=.array(0);.$columns[].=.c
a95e0 6f 75 6e 74 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ount($this->headers);.foreach.($
a9600 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 63 6f 6c 75 6d 6e 73 5b 5d this->rows.as.$row).{.$columns[]
a9620 20 3d 20 63 6f 75 6e 74 28 24 72 6f 77 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .=.count($row);.}..return.$this-
a9640 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6d 61 78 28 24 63 6f 6c 75 6d 6e 73 29 >numberOfColumns.=.max($columns)
a9660 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 67 65 74 ;.}.........private.function.get
a9680 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 ColumnWidth($column).{.if.(isset
a96a0 28 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 29 29 20 ($this->columnWidths[$column])).
a96c0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 5b 24 63 6f {.return.$this->columnWidths[$co
a96e0 6c 75 6d 6e 5d 3b 0a 7d 0a 0a 24 6c 65 6e 67 74 68 73 20 3d 20 61 72 72 61 79 28 30 29 3b 0a 24 lumn];.}..$lengths.=.array(0);.$
a9700 6c 65 6e 67 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 65 6c 6c 57 69 64 74 68 28 lengths[].=.$this->getCellWidth(
a9720 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 2c 20 24 63 6f 6c 75 6d 6e 29 3b 0a 66 6f 72 65 61 63 $this->headers,.$column);.foreac
a9740 68 20 28 24 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 6c 65 6e 67 74 h.($this->rows.as.$row).{.$lengt
a9760 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 65 6c 6c 57 69 64 74 68 28 24 72 6f 77 2c hs[].=.$this->getCellWidth($row,
a9780 20 24 63 6f 6c 75 6d 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6c 75 .$column);.}..return.$this->colu
a97a0 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 20 3d 20 6d 61 78 28 24 6c 65 6e 67 74 68 73 mnWidths[$column].=.max($lengths
a97c0 29 20 2b 20 32 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 ).+.2;.}..........private.functi
a97e0 6f 6e 20 67 65 74 43 65 6c 6c 57 69 64 74 68 28 61 72 72 61 79 20 24 72 6f 77 2c 20 24 63 6f 6c on.getCellWidth(array.$row,.$col
a9800 75 6d 6e 29 0a 7b 0a 69 66 20 28 24 63 6f 6c 75 6d 6e 20 3c 20 30 29 20 7b 0a 72 65 74 75 72 6e umn).{.if.($column.<.0).{.return
a9820 20 30 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 29 29 .0;.}..if.(isset($row[$column]))
a9840 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 72 6f 77 5b 24 63 6f .{.return.$this->strlen($row[$co
a9860 6c 75 6d 6e 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 65 6c 6c lumn]);.}..return.$this->getCell
a9880 57 69 64 74 68 28 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 20 2d 20 31 29 3b 0a 7d 0a 0a 0a 0a 0a Width($row,.$column.-.1);.}.....
a98a0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 29 0a 7b 0a 24 74 68 private.function.cleanup().{.$th
a98c0 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 is->columnWidths.=.array();.$thi
a98e0 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a s->numberOfColumns.=.null;.}....
a9900 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
a9920 75 72 6e 20 27 74 61 62 6c 65 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.'table';.}.}.<?php..........
a9940 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
a9960 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e sole\Helper;..use.Symfony\Compon
a9980 65 6e 74 5c 43 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 ent\Console\Application;.use.Sym
a99a0 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
a99c0 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
a99e0 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 nsole\Descriptor\DescriptorInter
a9a00 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 73 face;.use.Symfony\Component\Cons
a9a20 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 ole\Descriptor\JsonDescriptor;.u
a9a40 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 44 65 73 se.Symfony\Component\Console\Des
a9a60 63 72 69 70 74 6f 72 5c 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 criptor\MarkdownDescriptor;.use.
a9a80 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 44 65 73 63 72 69 Symfony\Component\Console\Descri
a9aa0 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 ptor\TextDescriptor;.use.Symfony
a9ac0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d \Component\Console\Descriptor\Xm
a9ae0 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 lDescriptor;.use.Symfony\Compone
a9b00 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 3b 0a nt\Console\Input\InputArgument;.
a9b20 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 6e use.Symfony\Component\Console\In
a9b40 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 79 6d 66 6f 6e 79 put\InputDefinition;.use.Symfony
a9b60 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 4f 70 \Component\Console\Input\InputOp
a9b80 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 6e 73 tion;.use.Symfony\Component\Cons
a9ba0 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 0a ole\Output\OutputInterface;.....
a9bc0 0a 0a 63 6c 61 73 73 20 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 ..class.DescriptorHelper.extends
a9be0 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 6f 72 .Helper.{....private.$descriptor
a9c00 73 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 s.=.array();.....public.function
a9c20 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 72 65 67 69 73 74 65 .__construct().{.$this.->registe
a9c40 72 28 27 74 78 74 27 2c 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d r('txt',.new.TextDescriptor()).-
a9c60 3e 72 65 67 69 73 74 65 72 28 27 78 6d 6c 27 2c 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 >register('xml',.new.XmlDescript
a9c80 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 6a 73 6f 6e 27 2c 20 6e 65 77 20 4a 73 6f or()).->register('json',.new.Jso
a9ca0 6e 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 6d 64 27 2c 20 nDescriptor()).->register('md',.
a9cc0 6e 65 77 20 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 3b 0a 7d 0a 0a 0a new.MarkdownDescriptor()).;.}...
a9ce0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 .......public.function.describe(
a9d00 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 6f 62 6a 65 63 74 OutputInterface.$output,.$object
a9d20 2c 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 3d 20 66 61 6c 73 65 29 0a ,.$format.=.null,.$raw.=.false).
a9d40 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 27 72 61 77 5f 74 65 78 74 27 20 3d 3e {.$options.=.array('raw_text'.=>
a9d60 20 24 72 61 77 2c 20 27 66 6f 72 6d 61 74 27 20 3d 3e 20 24 66 6f 72 6d 61 74 20 3f 3a 20 27 74 .$raw,.'format'.=>.$format.?:.'t
a9d80 78 74 27 29 3b 0a 24 74 79 70 65 20 3d 20 21 24 72 61 77 20 26 26 20 27 74 78 74 27 20 3d 3d 3d xt');.$type.=.!$raw.&&.'txt'.===
a9da0 20 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 5d 20 3f 20 4f 75 74 70 75 74 49 6e 74 65 .$options['format'].?.OutputInte
a9dc0 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 3a 20 4f 75 74 70 75 74 49 6e 74 rface::OUTPUT_NORMAL.:.OutputInt
a9de0 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 erface::OUTPUT_RAW;..if.(!isset(
a9e00 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 $this->descriptors[$options['for
a9e20 6d 61 74 27 5d 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 mat']])).{.throw.new.\InvalidArg
a9e40 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 6e 73 75 70 70 6f 72 umentException(sprintf('Unsuppor
a9e60 74 65 64 20 66 6f 72 6d 61 74 20 22 25 73 22 2e 27 2c 20 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 ted.format."%s".',.$options['for
a9e80 6d 61 74 27 5d 29 29 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 24 74 68 69 73 2d mat']));.}..$descriptor.=.$this-
a9ea0 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 5d 5d >descriptors[$options['format']]
a9ec0 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 65 73 63 72 69 70 74 6f 72 2d ;..$output->writeln($descriptor-
a9ee0 3e 64 65 73 63 72 69 62 65 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 2c 20 24 74 >describe($object,.$options),.$t
a9f00 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 74 69 6f 6e ype);.}..........public.function
a9f20 20 72 65 67 69 73 74 65 72 28 24 66 6f 72 6d 61 74 2c 20 44 65 73 63 72 69 70 74 6f 72 49 6e 74 .register($format,.DescriptorInt
a9f40 65 72 66 61 63 65 20 24 64 65 73 63 72 69 70 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 erface.$descriptor).{.$this->des
a9f60 63 72 69 70 74 6f 72 73 5b 24 66 6f 72 6d 61 74 5d 20 3d 20 24 64 65 73 63 72 69 70 74 6f 72 3b criptors[$format].=.$descriptor;
a9f80 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ..return.$this;.}.....public.fun
a9fa0 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 65 73 63 72 69 ction.getName().{.return.'descri
a9fc0 70 74 6f 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 ptor';.}.}.<?php...........names
a9fe0 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 48 pace.Symfony\Component\Console\H
aa000 65 6c 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 elper;..use.Symfony\Component\Co
aa020 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 74 74 65 72 3b nsole\Formatter\OutputFormatter;
aa040 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 20 65 78 74 .......class.FormatterHelper.ext
aa060 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ends.Helper.{..........public.fu
aa080 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 53 65 63 74 69 6f 6e 28 24 73 65 63 74 69 6f 6e 2c 20 24 nction.formatSection($section,.$
aa0a0 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 20 3d 20 27 69 6e 66 6f 27 29 0a 7b 0a 72 65 74 75 message,.$style.=.'info').{.retu
aa0c0 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 5b 25 73 5d 3c 2f 25 73 3e 20 25 73 27 2c 20 24 rn.sprintf('<%s>[%s]</%s>.%s',.$
aa0e0 73 74 79 6c 65 2c 20 24 73 65 63 74 69 6f 6e 2c 20 24 73 74 79 6c 65 2c 20 24 6d 65 73 73 61 67 style,.$section,.$style,.$messag
aa100 65 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 20 e);.}...........public.function.
aa120 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 73 2c 20 24 73 74 79 6c 65 2c 20 24 formatBlock($messages,.$style,.$
aa140 6c 61 72 67 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 large.=.false).{.$messages.=.(ar
aa160 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 0a 24 6c 65 6e 20 3d 20 30 3b 0a 24 6c 69 6e 65 ray).$messages;..$len.=.0;.$line
aa180 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 s.=.array();.foreach.($messages.
aa1a0 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 4f 75 74 70 75 74 as.$message).{.$message.=.Output
aa1c0 46 6f 72 6d 61 74 74 65 72 3a 3a 65 73 63 61 70 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 24 6c 69 Formatter::escape($message);.$li
aa1e0 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 6c 61 72 67 65 20 3f 20 27 20 20 25 73 20 20 nes[].=.sprintf($large.?.'..%s..
aa200 27 20 3a 20 27 20 25 73 20 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 24 6c 65 6e 20 3d 20 6d 61 '.:.'.%s.',.$message);.$len.=.ma
aa220 78 28 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 20 2b 20 28 24 6c 61 x($this->strlen($message).+.($la
aa240 72 67 65 20 3f 20 34 20 3a 20 32 29 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 rge.?.4.:.2),.$len);.}..$message
aa260 73 20 3d 20 24 6c 61 72 67 65 20 3f 20 61 72 72 61 79 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 s.=.$large.?.array(str_repeat('.
aa280 27 2c 20 24 6c 65 6e 29 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c ',.$len)).:.array();.foreach.($l
aa2a0 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 ines.as.$line).{.$messages[].=.$
aa2c0 6c 69 6e 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 line.str_repeat('.',.$len.-.$thi
aa2e0 73 2d 3e 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a 69 66 20 28 24 6c 61 72 67 65 29 s->strlen($line));.}.if.($large)
aa300 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c .{.$messages[].=.str_repeat('.',
aa320 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 .$len);.}..foreach.($messages.as
aa340 20 26 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 .&$message).{.$message.=.sprintf
aa360 28 27 3c 25 73 3e 25 73 3c 2f 25 73 3e 27 2c 20 24 73 74 79 6c 65 2c 20 24 6d 65 73 73 61 67 65 ('<%s>%s</%s>',.$style,.$message
aa380 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e ,.$style);.}..return.implode("\n
aa3a0 22 2c 20 24 6d 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 ",.$messages);.}.....public.func
aa3c0 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
aa3e0 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
aa400 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
aa420 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
aa440 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
aa460 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
aa480 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
aa4a0 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
aa4c0 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.=.
aa4e0 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
aa500 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
aa520 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.:.$
aa540 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
aa560 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,.
aa580 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[
aa5a0 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
aa5c0 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
aa5e0 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
aa600 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);.}......
aa620 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).{.
aa640 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
aa660 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
aa680 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
aa6a0 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
aa6c0 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.
aa6e0 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));.
aa700 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];
aa720 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
aa740 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).{.$
aa760 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;.}.....
aa780 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().{
aa7a0 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
aa7c0 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
aa7e0 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
aa800 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
aa820 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 6d 70 6f tputInterface;.use.Symfony\Compo
aa840 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
aa860 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 matterStyle;.......class.DialogH
aa880 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 20 24 elper.extends.Helper.{.private.$
aa8a0 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 68 65 inputStream;.private.static.$she
aa8c0 6c 6c 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 74 74 79 3b 0a 0a 0a 0a 0a 0a 0a ll;.private.static.$stty;.......
aa8e0 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 6c 65 63 74 ..........public.function.select
aa900 28 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 (OutputInterface.$output,.$quest
aa920 69 6f 6e 2c 20 24 63 68 6f 69 63 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 ion,.$choices,.$default.=.null,.
aa940 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 $attempts.=.false,.$errorMessage
aa960 20 3d 20 27 56 61 6c 75 65 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c 69 64 27 2c 20 24 6d 75 6c .=.'Value."%s".is.invalid',.$mul
aa980 74 69 73 65 6c 65 63 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 77 69 64 74 68 20 3d 20 6d 61 78 tiselect.=.false).{.$width.=.max
aa9a0 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 6c 65 6e 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 (array_map('strlen',.array_keys(
aa9c0 24 63 68 6f 69 63 65 73 29 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 $choices)));..$messages.=.(array
aa9e0 29 20 24 71 75 65 73 74 69 6f 6e 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 6f 69 63 65 73 20 61 ).$question;.foreach.($choices.a
aaa00 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 s.$key.=>.$value).{.$messages[].
aaa20 3d 20 73 70 72 69 6e 74 66 28 22 20 20 5b 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c =.sprintf("..[<info>%-${width}s<
aaa40 2f 69 6e 66 6f 3e 5d 20 25 73 22 2c 20 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 /info>].%s",.$key,.$value);.}..$
aaa60 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 24 72 65 output->writeln($messages);..$re
aaa80 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 6f 75 sult.=.$this->askAndValidate($ou
aaaa0 74 70 75 74 2c 20 27 3e 20 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 69 63 6b 65 64 29 20 75 tput,.'>.',.function.($picked).u
aaac0 73 65 20 28 24 63 68 6f 69 63 65 73 2c 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 6d 75 se.($choices,.$errorMessage,.$mu
aaae0 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 ltiselect).{...$selectedChoices.
aab00 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 20 22 2c 20 22 22 2c 20 24 70 69 63 6b 65 64 29 3b =.str_replace(".",."",.$picked);
aab20 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 69 66 28 21 70 72 65 67 ..if.($multiselect).{...if(!preg
aab40 5f 6d 61 74 63 68 28 27 2f 5e 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 28 3f 3a 2c 5b 61 2d 7a _match('/^[a-zA-Z0-9_-]+(?:,[a-z
aab60 41 2d 5a 30 2d 39 5f 2d 5d 2b 29 2a 24 2f 27 2c 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 A-Z0-9_-]+)*$/',.$selectedChoice
aab80 73 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 49 6e 76 61 6c s,.$matches)).{.throw.new.\Inval
aaba0 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 24 65 72 72 idArgumentException(sprintf($err
aabc0 6f 72 4d 65 73 73 61 67 65 2c 20 24 70 69 63 6b 65 64 29 29 3b 0a 7d 0a 24 73 65 6c 65 63 74 65 orMessage,.$picked));.}.$selecte
aabe0 64 43 68 6f 69 63 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2c 22 2c 20 24 73 65 6c 65 63 74 65 dChoices.=.explode(",",.$selecte
aac00 64 43 68 6f 69 63 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 65 6c 65 63 74 65 64 43 68 6f dChoices);.}.else.{.$selectedCho
aac20 69 63 65 73 20 3d 20 61 72 72 61 79 28 24 70 69 63 6b 65 64 29 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 ices.=.array($picked);.}..$multi
aac40 73 65 6c 65 63 74 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 selectChoices.=.array();..foreac
aac60 68 20 28 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b h.($selectedChoices.as.$value).{
aac80 0a 69 66 20 28 65 6d 70 74 79 28 24 63 68 6f 69 63 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 7b 0a .if.(empty($choices[$value])).{.
aaca0 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
aacc0 69 6f 6e 28 73 70 72 69 6e 74 66 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 76 61 6c 75 ion(sprintf($errorMessage,.$valu
aace0 65 29 29 3b 0a 7d 0a 61 72 72 61 79 5f 70 75 73 68 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 e));.}.array_push($multiselectCh
aad00 6f 69 63 65 73 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c oices,.$value);.}..if.($multisel
aad20 65 63 74 29 7b 0a 72 65 74 75 72 6e 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 ect){.return.$multiselectChoices
aad40 3b 0a 7d 20 0a 0a 72 65 74 75 72 6e 20 24 70 69 63 6b 65 64 3b 0a 7d 2c 20 24 61 74 74 65 6d 70 ;.}...return.$picked;.},.$attemp
aad60 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a ts,.$default);..return.$result;.
aad80 7d 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
aada0 73 6b 28 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 sk(OutputInterface.$output,.$que
aadc0 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 61 stion,.$default.=.null,.array.$a
aade0 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 utocomplete.=.null).{.$output->w
aae00 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d rite($question);..$inputStream.=
aae20 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 3b 0a 0a 69 .$this->inputStream.?:.STDIN;..i
aae40 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 7c 7c 20 21 24 74 f.(null.===.$autocomplete.||.!$t
aae60 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 72 65 74 20 his->hasSttyAvailable()).{.$ret.
aae80 3d 20 66 67 65 74 73 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 34 30 39 36 29 3b 0a 69 66 20 =.fgets($inputStream,.4096);.if.
aaea0 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 (false.===.$ret).{.throw.new.\Ru
aaec0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 24 72 65 ntimeException('Aborted');.}.$re
aaee0 74 20 3d 20 74 72 69 6d 28 24 72 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 t.=.trim($ret);.}.else.{.$ret.=.
aaf00 27 27 3b 0a 0a 24 69 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 '';..$i.=.0;.$ofs.=.-1;.$matches
aaf20 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 .=.$autocomplete;.$numMatches.=.
aaf40 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 3d 20 73 68 count($matches);..$sttyMode.=.sh
aaf60 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 67 27 29 3b 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 ell_exec('stty.-g');....shell_ex
aaf80 65 63 28 27 73 74 74 79 20 2d 69 63 61 6e 6f 6e 20 2d 65 63 68 6f 27 29 3b 0a 0a 0a 20 24 6f 75 ec('stty.-icanon.-echo');....$ou
aafa0 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2d 3e 73 65 74 53 74 79 6c 65 28 27 tput->getFormatter()->setStyle('
aafc0 68 6c 27 2c 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 27 62 hl',.new.OutputFormatterStyle('b
aafe0 6c 61 63 6b 27 2c 20 27 77 68 69 74 65 27 29 29 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 21 66 65 6f lack',.'white'));....while.(!feo
ab000 66 28 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 20 7b 0a 24 63 20 3d 20 66 72 65 61 64 28 24 69 f($inputStream)).{.$c.=.fread($i
ab020 6e 70 75 74 53 74 72 65 61 6d 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 22 5c 31 37 37 22 20 3d 3d nputStream,.1);....if.("\177".==
ab040 3d 20 24 63 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 20 26 26 =.$c).{.if.(0.===.$numMatches.&&
ab060 20 30 20 21 3d 3d 20 24 69 29 20 7b 0a 24 69 2d 2d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 .0.!==.$i).{.$i--;...$output->wr
ab080 69 74 65 28 22 5c 30 33 33 5b 31 44 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 20 3d 3d 3d 20 30 29 ite("\033[1D");.}..if.($i.===.0)
ab0a0 20 7b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f .{.$ofs.=.-1;.$matches.=.$autoco
ab0c0 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 mplete;.$numMatches.=.count($mat
ab0e0 63 68 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b ches);.}.else.{.$numMatches.=.0;
ab100 0a 7d 0a 0a 0a 20 24 72 65 74 20 3d 20 73 75 62 73 74 72 28 24 72 65 74 2c 20 30 2c 20 24 69 29 .}....$ret.=.substr($ret,.0,.$i)
ab120 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 5c 30 33 33 22 20 3d 3d 3d 20 24 63 29 20 7b 20 0a 20 24 ;.}.elseif.("\033".===.$c).{...$
ab140 63 20 2e 3d 20 66 72 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 32 29 3b 0a 0a 0a 20 c..=.fread($inputStream,.2);....
ab160 69 66 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 7c 7c 20 27 42 27 20 3d 3d 3d 20 24 63 5b if.('A'.===.$c[2].||.'B'.===.$c[
ab180 32 5d 29 20 7b 0a 69 66 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 26 26 20 2d 31 20 3d 3d 2]).{.if.('A'.===.$c[2].&&.-1.==
ab1a0 3d 20 24 6f 66 73 29 20 7b 0a 24 6f 66 73 20 3d 20 30 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d =.$ofs).{.$ofs.=.0;.}..if.(0.===
ab1c0 20 24 6e 75 6d 4d 61 74 63 68 65 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 66 .$numMatches).{.continue;.}..$of
ab1e0 73 20 2b 3d 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 24 s.+=.('A'.===.$c[2]).?.-1.:.1;.$
ab200 6f 66 73 20 3d 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 2b 20 24 6f 66 73 29 20 25 20 24 6e 75 ofs.=.($numMatches.+.$ofs).%.$nu
ab220 6d 4d 61 74 63 68 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 6f 72 64 28 24 63 29 20 3c 20 mMatches;.}.}.elseif.(ord($c).<.
ab240 33 32 29 20 7b 0a 69 66 20 28 22 5c 74 22 20 3d 3d 3d 20 24 63 20 7c 7c 20 22 5c 6e 22 20 3d 3d 32).{.if.("\t".===.$c.||."\n".==
ab260 3d 20 24 63 29 20 7b 0a 69 66 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 30 20 26 26 20 2d =.$c).{.if.($numMatches.>.0.&&.-
ab280 31 20 21 3d 3d 20 24 6f 66 73 29 20 7b 0a 24 72 65 74 20 3d 20 24 6d 61 74 63 68 65 73 5b 24 6f 1.!==.$ofs).{.$ret.=.$matches[$o
ab2a0 66 73 5d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 75 62 73 74 72 28 24 72 65 fs];...$output->write(substr($re
ab2c0 74 2c 20 24 69 29 29 3b 0a 24 69 20 3d 20 73 74 72 6c 65 6e 28 24 72 65 74 29 3b 0a 7d 0a 0a 69 t,.$i));.$i.=.strlen($ret);.}..i
ab2e0 66 20 28 22 5c 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 f.("\n".===.$c).{.$output->write
ab300 28 24 63 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b ($c);.break;.}..$numMatches.=.0;
ab320 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e .}..continue;.}.else.{.$output->
ab340 77 72 69 74 65 28 24 63 29 3b 0a 24 72 65 74 20 2e 3d 20 24 63 3b 0a 24 69 2b 2b 3b 0a 0a 24 6e write($c);.$ret..=.$c;.$i++;..$n
ab360 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 umMatches.=.0;.$ofs.=.0;..foreac
ab380 68 20 28 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 0a 20 h.($autocomplete.as.$value).{...
ab3a0 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 24 72 65 74 29 20 26 if.(0.===.strpos($value,.$ret).&
ab3c0 26 20 24 69 20 21 3d 3d 20 73 74 72 6c 65 6e 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 6d 61 74 63 &.$i.!==.strlen($value)).{.$matc
ab3e0 68 65 73 5b 24 6e 75 6d 4d 61 74 63 68 65 73 2b 2b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d hes[$numMatches++].=.$value;.}.}
ab400 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 5b 4b 22 29 3b 0a .}....$output->write("\033[K");.
ab420 0a 69 66 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 30 20 26 26 20 2d 31 20 21 3d 3d 20 24 .if.($numMatches.>.0.&&.-1.!==.$
ab440 6f 66 73 29 20 7b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 37 22 29 ofs).{...$output->write("\0337")
ab460 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 3c 68 6c 3e 27 2e 73 75 62 73 74 72 ;...$output->write('<hl>'.substr
ab480 28 24 6d 61 74 63 68 65 73 5b 24 6f 66 73 5d 2c 20 24 69 29 2e 27 3c 2f 68 6c 3e 27 29 3b 0a 0a ($matches[$ofs],.$i).'</hl>');..
ab4a0 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 38 22 29 3b 0a 7d 0a 7d 0a 0a 0a .$output->write("\0338");.}.}...
ab4c0 20 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 73 74 74 79 20 25 73 27 2c 20 24 .shell_exec(sprintf('stty.%s',.$
ab4e0 73 74 74 79 4d 6f 64 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 72 65 sttyMode));.}..return.strlen($re
ab500 74 29 20 3e 20 30 20 3f 20 24 72 65 74 20 3a 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a t).>.0.?.$ret.:.$default;.}.....
ab520 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 43 6f 6e 66 69 ........public.function.askConfi
ab540 72 6d 61 74 69 6f 6e 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c rmation(OutputInterface.$output,
ab560 20 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 0a 7b 0a 24 .$question,.$default.=.true).{.$
ab580 61 6e 73 77 65 72 20 3d 20 27 7a 27 3b 0a 77 68 69 6c 65 20 28 24 61 6e 73 77 65 72 20 26 26 20 answer.=.'z';.while.($answer.&&.
ab5a0 21 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 !in_array(strtolower($answer[0])
ab5c0 2c 20 61 72 72 61 79 28 27 79 27 2c 20 27 6e 27 29 29 29 20 7b 0a 24 61 6e 73 77 65 72 20 3d 20 ,.array('y',.'n'))).{.$answer.=.
ab5e0 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a $this->ask($output,.$question);.
ab600 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 72 65 74 }..if.(false.===.$default).{.ret
ab620 75 72 6e 20 24 61 6e 73 77 65 72 20 26 26 20 27 79 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 urn.$answer.&&.'y'.==.strtolower
ab640 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 61 6e 73 77 65 72 ($answer[0]);.}..return.!$answer
ab660 20 7c 7c 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 5b 30 5d .||.'y'.==.strtolower($answer[0]
ab680 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 6e );.}.............public.function
ab6a0 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 .askHiddenResponse(OutputInterfa
ab6c0 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c 6c 62 61 63 6b ce.$output,.$question,.$fallback
ab6e0 20 3d 20 74 72 75 65 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 .=.true).{.if.(defined('PHP_WIND
ab700 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 78 65 20 3d 20 5f 5f OWS_VERSION_BUILD')).{.$exe.=.__
ab720 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 52 65 73 6f 75 72 63 65 73 2f 62 69 6e 2f 68 69 64 64 65 6e 69 DIR__.'/../Resources/bin/hiddeni
ab740 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 nput.exe';....if.('phar:'.===.su
ab760 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 bstr(__FILE__,.0,.5)).{.$tmpExe.
ab780 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 =.sys_get_temp_dir().'/hiddeninp
ab7a0 75 74 2e 65 78 65 27 3b 0a 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 65 ut.exe';.copy($exe,.$tmpExe);.$e
ab7c0 78 65 20 3d 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 xe.=.$tmpExe;.}..$output->write(
ab7e0 24 71 75 65 73 74 69 6f 6e 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c $question);.$value.=.rtrim(shell
ab800 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 _exec($exe));.$output->writeln('
ab820 27 29 3b 0a 0a 69 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 ');..if.(isset($tmpExe)).{.unlin
ab840 6b 28 24 74 6d 70 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 k($tmpExe);.}..return.$value;.}.
ab860 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 .if.($this->hasSttyAvailable()).
ab880 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 0a 0a 24 73 {.$output->write($question);..$s
ab8a0 74 74 79 4d 6f 64 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 67 27 29 3b ttyMode.=.shell_exec('stty.-g');
ab8c0 0a 0a 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 65 63 68 6f 27 29 3b 0a 24 76 61 6c ..shell_exec('stty.-echo');.$val
ab8e0 75 65 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 6d 20 3f 3a ue.=.fgets($this->inputStream.?:
ab900 20 53 54 44 49 4e 2c 20 34 30 39 36 29 3b 0a 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 .STDIN,.4096);.shell_exec(sprint
ab920 66 28 27 73 74 74 79 20 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 0a 69 66 20 28 66 f('stty.%s',.$sttyMode));..if.(f
ab940 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 alse.===.$value).{.throw.new.\Ru
ab960 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 0a 24 76 ntimeException('Aborted');.}..$v
ab980 61 6c 75 65 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 alue.=.trim($value);.$output->wr
ab9a0 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 iteln('');..return.$value;.}..if
ab9c0 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 73 68 65 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 .(false.!==.$shell.=.$this->getS
ab9e0 68 65 6c 6c 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 hell()).{.$output->write($questi
aba00 6f 6e 29 3b 0a 24 72 65 61 64 43 6d 64 20 3d 20 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 on);.$readCmd.=.$shell.===.'csh'
aba20 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 .?.'set.mypassword.=.$<'.:.'read
aba40 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 .-r.mypassword';.$command.=.spri
aba60 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 ntf("/usr/bin/env.%s.-c.'stty.-e
aba80 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 cho;.%s;.stty.echo;.echo.\$mypas
abaa0 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c sword'",.$shell,.$readCmd);.$val
abac0 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 ue.=.rtrim(shell_exec($command))
abae0 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 ;.$output->writeln('');..return.
abb00 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 66 61 6c 6c 62 61 63 6b 29 20 7b 0a 72 65 74 75 $value;.}..if.($fallback).{.retu
abb20 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e rn.$this->ask($output,.$question
abb40 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
abb60 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 68 69 64 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 27 29 n('Unable.to.hide.the.response')
abb80 3b 0a 7d 0a 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 ;.}....................public.fu
abba0 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 4f 75 74 70 75 74 49 6e 74 65 nction.askAndValidate(OutputInte
abbc0 72 66 61 63 65 20 24 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 rface.$output,.$question,.$valid
abbe0 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 75 6c ator,.$attempts.=.false,.$defaul
abc00 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 t.=.null,.array.$autocomplete.=.
abc20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 null).{.$that.=.$this;..$intervi
abc40 65 77 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 ewer.=.function().use.($output,.
abc60 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 61 75 74 6f 63 6f 6d 70 6c 65 $question,.$default,.$autocomple
abc80 74 65 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 61 73 6b 28 24 te,.$that).{.return.$that->ask($
abca0 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 2c 20 24 61 75 output,.$question,.$default,.$au
abcc0 74 6f 63 6f 6d 70 6c 65 74 65 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 tocomplete);.};..return.$this->v
abce0 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 6f alidateAttempts($interviewer,.$o
abd00 75 74 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 3b 0a 7d utput,.$validator,.$attempts);.}
abd20 0a 0a 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
abd40 74 69 6f 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 41 6e 64 56 61 6c 69 64 61 74 tion.askHiddenResponseAndValidat
abd60 65 28 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 e(OutputInterface.$output,.$ques
abd80 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 tion,.$validator,.$attempts.=.fa
abda0 6c 73 65 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 61 74 20 3d lse,.$fallback.=.true).{.$that.=
abdc0 20 24 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e .$this;..$interviewer.=.function
abde0 28 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c ().use.($output,.$question,.$fal
abe00 6c 62 61 63 6b 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 61 73 lback,.$that).{.return.$that->as
abe20 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 kHiddenResponse($output,.$questi
abe40 6f 6e 2c 20 24 66 61 6c 6c 62 61 63 6b 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 on,.$fallback);.};..return.$this
abe60 2d 3e 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c ->validateAttempts($interviewer,
abe80 20 24 6f 75 74 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 .$output,.$validator,.$attempts)
abea0 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 74 49 ;.}.........public.function.setI
abec0 6e 70 75 74 53 74 72 65 61 6d 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 nputStream($stream).{.$this->inp
abee0 75 74 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c utStream.=.$stream;.}.......publ
abf00 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 ic.function.getInputStream().{.r
abf20 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a eturn.$this->inputStream;.}.....
abf40 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 75 public.function.getName().{.retu
abf60 72 6e 20 27 64 69 61 6c 6f 67 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e rn.'dialog';.}.......private.fun
abf80 63 74 69 6f 6e 20 67 65 74 53 68 65 6c 6c 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 ction.getShell().{.if.(null.!==.
abfa0 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 self::$shell).{.return.self::$sh
abfc0 65 6c 6c 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 ell;.}..self::$shell.=.false;..i
abfe0 66 20 28 66 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 f.(file_exists('/usr/bin/env')).
ac000 7b 0a 0a 20 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 {...$test.=."/usr/bin/env.%s.-c.
ac020 27 65 63 68 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 'echo.OK'.2>./dev/null";.foreach
ac040 20 28 61 72 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 .(array('bash',.'zsh',.'ksh',.'c
ac060 73 68 27 29 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 sh').as.$sh).{.if.('OK'.===.rtri
ac080 6d 28 73 68 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 m(shell_exec(sprintf($test,.$sh)
ac0a0 29 29 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b ))).{.self::$shell.=.$sh;.break;
ac0c0 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 3b 0a 7d 0a 0a .}.}.}..return.self::$shell;.}..
ac0e0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c private.function.hasSttyAvailabl
ac100 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 74 74 79 29 20 e().{.if.(null.!==.self::$stty).
ac120 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 3b 0a 7d 0a 0a 65 78 65 63 28 27 73 {.return.self::$stty;.}..exec('s
ac140 74 74 79 20 32 3e 26 31 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 63 6f 64 65 29 3b 0a tty.2>&1',.$output,.$exitcode);.
ac160 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 69 74 63 6f 64 65 20 .return.self::$stty.=.$exitcode.
ac180 3d 3d 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 ===.0;.}..............private.fu
ac1a0 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 nction.validateAttempts($intervi
ac1c0 65 77 65 72 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 24 ewer,.OutputInterface.$output,.$
ac1e0 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 24 65 72 72 6f 72 20 3d validator,.$attempts).{.$error.=
ac200 20 6e 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 61 74 74 65 6d 70 74 .null;.while.(false.===.$attempt
ac220 73 20 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d s.||.$attempts--).{.if.(null.!==
ac240 20 24 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 .$error).{.$output->writeln($thi
ac260 73 2d 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 s->getHelperSet()->get('formatte
ac280 72 27 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 72 6f 72 2d 3e 67 65 74 4d 65 73 73 r')->formatBlock($error->getMess
ac2a0 61 67 65 28 29 2c 20 27 65 72 72 6f 72 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 age(),.'error'));.}..try.{.retur
ac2c0 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 69 6e n.call_user_func($validator,.$in
ac2e0 74 65 72 76 69 65 77 65 72 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f terviewer());.}.catch.(\Exceptio
ac300 6e 20 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d n.$error).{.}.}..throw.$error;.}
ac320 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 6d .}.<?php...........namespace.Sym
ac340 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 3b 0a 0a fony\Component\Console\Helper;..
ac360 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 69 6d 70 6c 65 .....abstract.class.Helper.imple
ac380 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 74 65 63 74 65 ments.HelperInterface.{.protecte
ac3a0 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 70 75 62 6c 69 d.$helperSet.=.null;.......publi
ac3c0 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
ac3e0 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 73 2d 3e 68 65 t.$helperSet.=.null).{.$this->he
ac400 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 0a 0a 0a 70 75 lperSet.=.$helperSet;.}.......pu
ac420 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 29 0a 7b 0a 72 blic.function.getHelperSet().{.r
ac440 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 0a 0a 0a 0a 0a 0a eturn.$this->helperSet;.}.......
ac460 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 ..protected.function.strlen($str
ac480 69 6e 67 29 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 6d 62 5f ing).{.if.(!function_exists('mb_
ac4a0 73 74 72 6c 65 6e 27 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 strlen')).{.return.strlen($strin
ac4c0 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d g);.}..if.(false.===.$encoding.=
ac4e0 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a .mb_detect_encoding($string)).{.
ac500 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 return.strlen($string);.}..retur
ac520 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b n.mb_strlen($string,.$encoding);
ac540 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
ac560 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 3b ymfony\Component\Console\Helper;
ac580 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\
ac5a0 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 0a 0a 0a 63 Output\OutputInterface;........c
ac5c0 6c 61 73 73 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 lass.ProgressHelper.extends.Help
ac5e0 65 72 0a 7b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 45 54 20 3d 20 27 20 25 70 65 72 er.{.const.FORMAT_QUIET.=.'.%per
ac600 63 65 6e 74 25 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 20 3d 20 27 cent%%';.const.FORMAT_NORMAL.=.'
ac620 20 25 63 75 72 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e .%current%/%max%.[%bar%].%percen
ac640 74 25 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 20 3d 20 27 20 25 t%%';.const.FORMAT_VERBOSE.=.'.%
ac660 63 75 72 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 current%/%max%.[%bar%].%percent%
ac680 25 20 45 6c 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 %.Elapsed:.%elapsed%';.const.FOR
ac6a0 4d 41 54 5f 51 55 49 45 54 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 27 3b 0a MAT_QUIET_NOMAX.=.'.%current%';.
ac6c0 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 const.FORMAT_NORMAL_NOMAX.=.'.%c
ac6e0 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 urrent%.[%bar%]';.const.FORMAT_V
ac700 45 52 42 4f 53 45 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 ERBOSE_NOMAX.=.'.%current%.[%bar
ac720 25 5d 20 45 6c 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 0a 0a 20 70 72 69 76 61 %].Elapsed:.%elapsed%';....priva
ac740 74 65 20 24 62 61 72 57 69 64 74 68 20 3d 20 32 38 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 te.$barWidth.=.28;.private.$barC
ac760 68 61 72 20 3d 20 27 3d 27 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 68 61 72 har.=.'=';.private.$emptyBarChar
ac780 20 3d 20 27 2d 27 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 .=.'-';.private.$progressChar.=.
ac7a0 27 3e 27 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 69 '>';.private.$format.=.null;.pri
ac7c0 76 61 74 65 20 24 72 65 64 72 61 77 46 72 65 71 20 3d 20 31 3b 0a 0a 70 72 69 76 61 74 65 20 24 vate.$redrawFreq.=.1;..private.$
ac7e0 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 lastMessagesLength;.private.$bar
ac800 43 68 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 CharOriginal;.....private.$outpu
ac820 74 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a 0a 0a 0a 0a t;.......private.$current;......
ac840 0a 70 72 69 76 61 74 65 20 24 6d 61 78 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 .private.$max;.......private.$st
ac860 61 72 74 54 69 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 46 artTime;.......private.$defaultF
ac880 6f 72 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 72 72 65 6e 74 27 2c 0a 27 6d ormatVars.=.array(.'current',.'m
ac8a0 61 78 27 2c 0a 27 62 61 72 27 2c 0a 27 70 65 72 63 65 6e 74 27 2c 0a 27 65 6c 61 70 73 65 64 27 ax',.'bar',.'percent',.'elapsed'
ac8c0 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 56 61 72 73 3b 0a ,.);.......private.$formatVars;.
ac8e0 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 77 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 0a 27 ......private.$widths.=.array(.'
ac900 63 75 72 72 65 6e 74 27 20 3d 3e 20 34 2c 0a 27 6d 61 78 27 20 3d 3e 20 34 2c 0a 27 70 65 72 63 current'.=>.4,.'max'.=>.4,.'perc
ac920 65 6e 74 27 20 3d 3e 20 33 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 36 2c 0a 29 3b 0a 0a 0a ent'.=>.3,.'elapsed'.=>.6,.);...
ac940 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 46 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 ....private.$timeFormats.=.array
ac960 28 0a 61 72 72 61 79 28 30 2c 20 27 3f 3f 3f 27 29 2c 0a 61 72 72 61 79 28 32 2c 20 27 31 20 73 (.array(0,.'???'),.array(2,.'1.s
ac980 65 63 27 29 2c 0a 61 72 72 61 79 28 35 39 2c 20 27 73 65 63 73 27 2c 20 31 29 2c 0a 61 72 72 61 ec'),.array(59,.'secs',.1),.arra
ac9a0 79 28 36 30 2c 20 27 31 20 6d 69 6e 27 29 2c 0a 61 72 72 61 79 28 33 36 30 30 2c 20 27 6d 69 6e y(60,.'1.min'),.array(3600,.'min
ac9c0 73 27 2c 20 36 30 29 2c 0a 61 72 72 61 79 28 35 34 30 30 2c 20 27 31 20 68 72 27 29 2c 0a 61 72 s',.60),.array(5400,.'1.hr'),.ar
ac9e0 72 61 79 28 38 36 34 30 30 2c 20 27 68 72 73 27 2c 20 33 36 30 30 29 2c 0a 61 72 72 61 79 28 31 ray(86400,.'hrs',.3600),.array(1
aca00 32 39 36 30 30 2c 20 27 31 20 64 61 79 27 29 2c 0a 61 72 72 61 79 28 36 30 34 38 30 30 2c 20 27 29600,.'1.day'),.array(604800,.'
aca20 64 61 79 73 27 2c 20 38 36 34 30 30 29 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 days',.86400),.);.......public.f
aca40 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 57 69 64 74 68 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 unction.setBarWidth($size).{.$th
aca60 69 73 2d 3e 62 61 72 57 69 64 74 68 20 3d 20 28 69 6e 74 29 20 24 73 69 7a 65 3b 0a 7d 0a 0a 0a is->barWidth.=.(int).$size;.}...
aca80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 43 68 61 72 61 63 ....public.function.setBarCharac
acaa0 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 63 ter($char).{.$this->barChar.=.$c
acac0 68 61 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 65 74 har;.}.......public.function.set
acae0 45 6d 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 EmptyBarCharacter($char).{.$this
acb00 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ->emptyBarChar.=.$char;.}.......
acb20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 public.function.setProgressChara
acb40 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 cter($char).{.$this->progressCha
acb60 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 r.=.$char;.}.......public.functi
acb80 6f 6e 20 73 65 74 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 on.setFormat($format).{.$this->f
acba0 6f 72 6d 61 74 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ormat.=.$format;.}.......public.
acbc0 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 64 72 61 77 46 72 65 71 75 65 6e 63 79 28 24 66 72 65 function.setRedrawFrequency($fre
acbe0 71 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 20 3d 20 28 69 6e 74 29 20 24 q).{.$this->redrawFreq.=.(int).$
acc00 66 72 65 71 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 73 freq;.}........public.function.s
acc20 74 61 72 74 28 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 6d tart(OutputInterface.$output,.$m
acc40 61 78 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 ax.=.null).{.$this->startTime.=.
acc60 74 69 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 30 3b 0a 24 74 68 69 time();.$this->current.=.0;.$thi
acc80 73 2d 3e 6d 61 78 20 3d 20 28 69 6e 74 29 20 24 6d 61 78 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 s->max.=.(int).$max;.$this->outp
acca0 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 ut.=.$output;..if.(null.===.$thi
accc0 73 2d 3e 66 6f 72 6d 61 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6f 75 74 70 75 74 2d 3e 67 65 s->format).{.switch.($output->ge
acce0 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 tVerbosity()).{.case.OutputInter
acd00 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 3a 0a 24 74 68 69 73 2d 3e 66 6f face::VERBOSITY_QUIET:.$this->fo
acd20 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 5f 4e 4f 4d 41 58 3b rmat.=.self::FORMAT_QUIET_NOMAX;
acd40 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f .if.($this->max.>.0).{.$this->fo
acd60 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 3b 0a 7d 0a 62 72 65 rmat.=.self::FORMAT_QUIET;.}.bre
acd80 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 ak;.case.OutputInterface::VERBOS
acda0 49 54 59 5f 56 45 52 42 4f 53 45 3a 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 ITY_VERBOSE:.case.OutputInterfac
acdc0 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 3a 0a 63 61 73 65 20 e::VERBOSITY_VERY_VERBOSE:.case.
acde0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 OutputInterface::VERBOSITY_DEBUG
ace00 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 56 :.$this->format.=.self::FORMAT_V
ace20 45 52 42 4f 53 45 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 ERBOSE_NOMAX;.if.($this->max.>.0
ace40 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 ).{.$this->format.=.self::FORMAT
ace60 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 74 68 69 _VERBOSE;.}.break;.default:.$thi
ace80 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f s->format.=.self::FORMAT_NORMAL_
acea0 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 NOMAX;.if.($this->max.>.0).{.$th
acec0 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c is->format.=.self::FORMAT_NORMAL
acee0 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a ;.}.break;.}.}..$this->initializ
acf00 65 28 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 6e 20 e();.}..........public.function.
acf20 61 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 2c 20 24 72 65 64 72 61 77 20 3d 20 66 61 6c advance($step.=.1,.$redraw.=.fal
acf40 73 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 73 74 61 72 74 54 se).{.if.(null.===.$this->startT
acf60 69 6d 65 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 ime).{.throw.new.\LogicException
acf80 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 ('You.must.start.the.progress.ba
acfa0 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 61 64 76 61 6e 63 65 28 29 2e 27 29 3b 0a 7d r.before.calling.advance().');.}
acfc0 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 24 72 ..if.(0.===.$this->current).{.$r
acfe0 65 64 72 61 77 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 edraw.=.true;.}..$this->current.
ad000 2b 3d 20 24 73 74 65 70 3b 0a 69 66 20 28 24 72 65 64 72 61 77 20 7c 7c 20 30 20 3d 3d 3d 20 24 +=.$step;.if.($redraw.||.0.===.$
ad020 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 this->current.%.$this->redrawFre
ad040 71 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a q).{.$this->display();.}.}......
ad060 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 75 72 72 65 6e 74 28 24 ....public.function.setCurrent($
ad080 63 75 72 72 65 6e 74 2c 20 24 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 current,.$redraw.=.false).{.if.(
ad0a0 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 null.===.$this->startTime).{.thr
ad0c0 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 ow.new.\LogicException('You.must
ad0e0 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 .start.the.progress.bar.before.c
ad100 61 6c 6c 69 6e 67 20 73 65 74 43 75 72 72 65 6e 74 28 29 2e 27 29 3b 0a 7d 0a 0a 24 63 75 72 72 alling.setCurrent().');.}..$curr
ad120 65 6e 74 20 3d 20 28 69 6e 74 29 20 24 63 75 72 72 65 6e 74 3b 0a 0a 69 66 20 28 24 63 75 72 72 ent.=.(int).$current;..if.($curr
ad140 65 6e 74 20 3c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ent.<.$this->current).{.throw.ne
ad160 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 5c 27 74 20 72 65 w.\LogicException('You.can\'t.re
ad180 67 72 65 73 73 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 27 29 3b 0a 7d 0a 0a 69 66 20 gress.the.progress.bar');.}..if.
ad1a0 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 24 72 65 64 72 61 77 (0.===.$this->current).{.$redraw
ad1c0 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 24 63 75 .=.true;.}..$this->current.=.$cu
ad1e0 72 72 65 6e 74 3b 0a 69 66 20 28 24 72 65 64 72 61 77 20 7c 7c 20 30 20 3d 3d 3d 20 24 74 68 69 rrent;.if.($redraw.||.0.===.$thi
ad200 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 29 20 s->current.%.$this->redrawFreq).
ad220 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a {.$this->display();.}.}.........
ad240 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 28 24 66 69 6e 69 73 68 20 public.function.display($finish.
ad260 3d 20 66 61 6c 73 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 73 =.false).{.if.(null.===.$this->s
ad280 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 tartTime).{.throw.new.\LogicExce
ad2a0 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 ption('You.must.start.the.progre
ad2c0 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 64 69 73 70 6c 61 79 28 29 2e ss.bar.before.calling.display().
ad2e0 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 3b ');.}..$message.=.$this->format;
ad300 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 .foreach.($this->generate($finis
ad320 68 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d 65 73 73 61 67 h).as.$name.=>.$value).{.$messag
ad340 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 25 7b 24 6e 61 6d 65 7d 25 22 2c 20 24 76 61 e.=.str_replace("%{$name}%",.$va
ad360 6c 75 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 lue,.$message);.}.$this->overwri
ad380 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a te($this->output,.$message);.}..
ad3a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 69 73 68 28 29 0a 7b 0a 69 66 ...public.function.finish().{.if
ad3c0 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 .(null.===.$this->startTime).{.t
ad3e0 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 59 6f 75 20 6d 75 hrow.new.\LogicException('You.mu
ad400 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 st.start.the.progress.bar.before
ad420 20 63 61 6c 6c 69 6e 67 20 66 69 6e 69 73 68 28 29 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c .calling.finish().');.}..if.(nul
ad440 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 69 66 20 28 21 24 l.!==.$this->startTime).{.if.(!$
ad460 74 68 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 74 this->max).{.$this->barChar.=.$t
ad480 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 24 74 68 69 73 2d 3e 64 69 73 his->barCharOriginal;.$this->dis
ad4a0 70 6c 61 79 28 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d play(true);.}.$this->startTime.=
ad4c0 20 6e 75 6c 6c 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 27 27 .null;.$this->output->writeln(''
ad4e0 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 0a 0a );.$this->output.=.null;.}.}....
ad500 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b .private.function.initialize().{
ad520 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f .$this->formatVars.=.array();.fo
ad540 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 46 6f 72 6d 61 74 56 61 72 73 20 reach.($this->defaultFormatVars.
ad560 61 73 20 24 76 61 72 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 as.$var).{.if.(false.!==.strpos(
ad580 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 2c 20 22 25 7b 24 76 61 72 7d 25 22 29 29 20 7b 0a 24 74 $this->format,."%{$var}%")).{.$t
ad5a0 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 24 76 61 72 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a his->formatVars[$var].=.true;.}.
ad5c0 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e }..if.($this->max.>.0).{.$this->
ad5e0 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 74 widths['max'].=.$this->strlen($t
ad600 68 69 73 2d 3e 6d 61 78 29 3b 0a 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e his->max);.$this->widths['curren
ad620 74 27 5d 20 3d 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 3b 0a 7d 20 65 6c t'].=.$this->widths['max'];.}.el
ad640 73 65 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 20 3d 20 24 74 se.{.$this->barCharOriginal.=.$t
ad660 68 69 73 2d 3e 62 61 72 43 68 61 72 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 his->barChar;.$this->barChar.=.$
ad680 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a this->emptyBarChar;.}.}.........
ad6a0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 private.function.generate($finis
ad6c0 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 h.=.false).{.$vars.=.array();.$p
ad6e0 65 72 63 65 6e 74 20 3d 20 30 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 ercent.=.0;.if.($this->max.>.0).
ad700 7b 0a 24 70 65 72 63 65 6e 74 20 3d 20 28 64 6f 75 62 6c 65 29 20 72 6f 75 6e 64 28 24 74 68 69 {.$percent.=.(double).round($thi
ad720 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 74 68 69 73 2d 3e 6d 61 78 2c 20 32 29 3b 0a 7d 0a 0a s->current./.$this->max,.2);.}..
ad740 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 62 61 72 if.(isset($this->formatVars['bar
ad760 27 5d 29 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 30 3b 0a 24 65 6d 70 74 79 '])).{.$completeBars.=.0;.$empty
ad780 42 61 72 73 20 3d 20 30 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a Bars.=.0;.if.($this->max.>.0).{.
ad7a0 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 24 70 65 72 63 65 6e 74 20 2a $completeBars.=.floor($percent.*
ad7c0 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 .$this->barWidth);.}.else.{.if.(
ad7e0 21 24 66 69 6e 69 73 68 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f !$finish).{.$completeBars.=.floo
ad800 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 r($this->current.%.$this->barWid
ad820 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 24 74 th);.}.else.{.$completeBars.=.$t
ad840 68 69 73 2d 3e 62 61 72 57 69 64 74 68 3b 0a 7d 0a 7d 0a 0a 24 65 6d 70 74 79 42 61 72 73 20 3d his->barWidth;.}.}..$emptyBars.=
ad860 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 20 2d 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 .$this->barWidth.-.$completeBars
ad880 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 .-.$this->strlen($this->progress
ad8a0 43 68 61 72 29 3b 0a 24 62 61 72 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e Char);.$bar.=.str_repeat($this->
ad8c0 62 61 72 43 68 61 72 2c 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 29 3b 0a 69 66 20 28 24 63 6f barChar,.$completeBars);.if.($co
ad8e0 6d 70 6c 65 74 65 42 61 72 73 20 3c 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 20 7b 0a mpleteBars.<.$this->barWidth).{.
ad900 24 62 61 72 20 2e 3d 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 3b 0a 24 62 61 $bar..=.$this->progressChar;.$ba
ad920 72 20 2e 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 r..=.str_repeat($this->emptyBarC
ad940 68 61 72 2c 20 24 65 6d 70 74 79 42 61 72 73 29 3b 0a 7d 0a 0a 24 76 61 72 73 5b 27 62 61 72 27 har,.$emptyBars);.}..$vars['bar'
ad960 5d 20 3d 20 24 62 61 72 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f ].=.$bar;.}..if.(isset($this->fo
ad980 72 6d 61 74 56 61 72 73 5b 27 65 6c 61 70 73 65 64 27 5d 29 29 20 7b 0a 24 65 6c 61 70 73 65 64 rmatVars['elapsed'])).{.$elapsed
ad9a0 20 3d 20 74 69 6d 65 28 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 3b 0a 24 76 .=.time().-.$this->startTime;.$v
ad9c0 61 72 73 5b 27 65 6c 61 70 73 65 64 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e ars['elapsed'].=.str_pad($this->
ad9e0 68 75 6d 61 6e 65 54 69 6d 65 28 24 65 6c 61 70 73 65 64 29 2c 20 24 74 68 69 73 2d 3e 77 69 64 humaneTime($elapsed),.$this->wid
ada00 74 68 73 5b 27 65 6c 61 70 73 65 64 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 ths['elapsed'],.'.',.STR_PAD_LEF
ada20 54 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 T);.}..if.(isset($this->formatVa
ada40 72 73 5b 27 63 75 72 72 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 63 75 72 72 65 6e 74 rs['current'])).{.$vars['current
ada60 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2c 20 24 74 68 '].=.str_pad($this->current,.$th
ada80 69 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e 74 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f is->widths['current'],.'.',.STR_
adaa0 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 PAD_LEFT);.}..if.(isset($this->f
adac0 6f 72 6d 61 74 56 61 72 73 5b 27 6d 61 78 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 6d 61 78 27 ormatVars['max'])).{.$vars['max'
adae0 5d 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 ].=.$this->max;.}..if.(isset($th
adb00 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 70 65 72 63 65 6e 74 27 5d 29 29 20 7b 0a 24 76 is->formatVars['percent'])).{.$v
adb20 61 72 73 5b 27 70 65 72 63 65 6e 74 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 70 65 72 63 65 6e ars['percent'].=.str_pad($percen
adb40 74 20 2a 20 31 30 30 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 70 65 72 63 65 6e 74 27 t.*.100,.$this->widths['percent'
adb60 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ],.'.',.STR_PAD_LEFT);.}..return
adb80 20 24 76 61 72 73 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 .$vars;.}.........private.functi
adba0 6f 6e 20 68 75 6d 61 6e 65 54 69 6d 65 28 24 73 65 63 73 29 0a 7b 0a 24 74 65 78 74 20 3d 20 27 on.humaneTime($secs).{.$text.=.'
adbc0 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 69 6d 65 46 6f 72 6d 61 74 73 20 61 ';.foreach.($this->timeFormats.a
adbe0 73 20 24 66 6f 72 6d 61 74 29 20 7b 0a 69 66 20 28 24 73 65 63 73 20 3c 20 24 66 6f 72 6d 61 74 s.$format).{.if.($secs.<.$format
adc00 5b 30 5d 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 66 6f 72 6d 61 74 29 20 3d 3d 20 32 29 20 [0]).{.if.(count($format).==.2).
adc20 7b 0a 24 74 65 78 74 20 3d 20 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 {.$text.=.$format[1];.break;.}.e
adc40 6c 73 65 20 7b 0a 24 74 65 78 74 20 3d 20 63 65 69 6c 28 24 73 65 63 73 20 2f 20 24 66 6f 72 6d lse.{.$text.=.ceil($secs./.$form
adc60 61 74 5b 32 5d 29 2e 27 20 27 2e 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a at[2]).'.'.$format[1];.break;.}.
adc80 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 }.}..return.$text;.}........priv
adca0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 4f 75 74 70 75 74 49 6e 74 ate.function.overwrite(OutputInt
adcc0 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 6c 65 6e erface.$output,.$message).{.$len
adce0 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a gth.=.$this->strlen($message);..
add00 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 ..if.(null.!==.$this->lastMessag
add20 65 73 4c 65 6e 67 74 68 20 26 26 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c esLength.&&.$this->lastMessagesL
add40 65 6e 67 74 68 20 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 ength.>.$length).{.$message.=.st
add60 72 5f 70 61 64 28 24 6d 65 73 73 61 67 65 2c 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 r_pad($message,.$this->lastMessa
add80 67 65 73 4c 65 6e 67 74 68 2c 20 22 5c 78 32 30 22 2c 20 53 54 52 5f 50 41 44 5f 52 49 47 48 54 gesLength,."\x20",.STR_PAD_RIGHT
adda0 29 3b 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 78 30 44 22 29 3b 0a );.}....$output->write("\x0D");.
addc0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 24 74 68 69 73 $output->write($message);..$this
adde0 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 74 ->lastMessagesLength.=.$this->st
ade00 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e rlen($message);.}.....public.fun
ade20 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 70 72 6f 67 72 65 ction.getName().{.return.'progre
ade40 73 73 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 ss';.}.}.<?php...........namespa
ade60 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 45 76 65 ce.Symfony\Component\Console\Eve
ade80 6e 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 6e 73 6f nt;..use.Symfony\Component\Conso
adea0 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 5c le\Command\Command;.use.Symfony\
adec0 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 74 Component\Console\Input\InputInt
adee0 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 6f erface;.use.Symfony\Component\Co
adf00 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 73 nsole\Output\OutputInterface;.us
adf20 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 e.Symfony\Component\EventDispatc
adf40 68 65 72 5c 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 76 her\Event;.......class.ConsoleEv
adf60 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 ent.extends.Event.{.protected.$c
adf80 6f 6d 6d 61 6e 64 3b 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 ommand;..private.$input;.private
adfa0 20 24 6f 75 74 70 75 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e .$output;..public.function.__con
adfc0 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e struct(Command.$command,.InputIn
adfe0 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 20 terface.$input,.OutputInterface.
ae000 24 6f 75 74 70 75 74 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 $output).{.$this->command.=.$com
ae020 6d 61 6e 64 3b 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 mand;.$this->input.=.$input;.$th
ae040 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 is->output.=.$output;.}.......pu
ae060 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 0a 72 65 74 blic.function.getCommand().{.ret
ae080 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c urn.$this->command;.}.......publ
ae0a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ic.function.getInput().{.return.
ae0c0 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $this->input;.}.......public.fun
ae0e0 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ction.getOutput().{.return.$this
ae100 2d 3e 6f 75 74 70 75 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 ->output;.}.}.<?php...........na
ae120 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 6f 6c mespace.Symfony\Component\Consol
ae140 65 5c 45 76 65 6e 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 e\Event;..use.Symfony\Component\
ae160 43 6f 6e 73 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 Console\Command\Command;.use.Sym
ae180 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
ae1a0 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
ae1c0 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 72 66 61 63 nt\Console\Output\OutputInterfac
ae1e0 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 e;.......class.ConsoleTerminateE
ae200 76 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 0a vent.extends.ConsoleEvent.{.....
ae220 0a 70 72 69 76 61 74 65 20 24 65 78 69 74 43 6f 64 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .private.$exitCode;..public.func
ae240 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e tion.__construct(Command.$comman
ae260 64 2c 20 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 d,.InputInterface.$input,.Output
ae280 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a Interface.$output,.$exitCode).{.
ae2a0 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 parent::__construct($command,.$i
ae2c0 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 45 78 69 74 43 nput,.$output);..$this->setExitC
ae2e0 6f 64 65 28 24 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ode($exitCode);.}.......public.f
ae300 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 69 74 43 6f 64 65 28 24 65 78 69 74 43 6f 64 65 29 0a 7b unction.setExitCode($exitCode).{
ae320 0a 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 20 3d 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a .$this->exitCode.=.$exitCode;.}.
ae340 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 45 78 69 74 43 6f 64 ......public.function.getExitCod
ae360 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 3b 0a 7d 0a e().{.return.$this->exitCode;.}.
ae380 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
ae3a0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 75 73 ony\Component\Console\Event;..us
ae3c0 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
ae3e0 61 6e 64 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 and\Command;.use.Symfony\Compone
ae400 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 65 3b nt\Console\Input\InputInterface;
ae420 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 4f .use.Symfony\Component\Console\O
ae440 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 0a 0a 63 6c 61 utput\OutputInterface;.......cla
ae460 73 73 20 43 6f 6e 73 6f 6c 65 46 6f 72 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 20 65 78 74 65 ss.ConsoleForExceptionEvent.exte
ae480 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 78 63 65 nds.ConsoleEvent.{.private.$exce
ae4a0 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 65 78 69 74 43 6f 64 65 3b 0a 0a 70 75 62 6c 69 ption;.private.$exitCode;..publi
ae4c0 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 61 6e 64 20 24 c.function.__construct(Command.$
ae4e0 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 command,.InputInterface.$input,.
ae500 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 5c 45 78 63 65 70 74 OutputInterface.$output,.\Except
ae520 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 70 61 72 ion.$exception,.$exitCode).{.par
ae540 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 ent::__construct($command,.$inpu
ae560 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 45 78 63 65 70 74 69 6f t,.$output);..$this->setExceptio
ae580 6e 28 24 65 78 63 65 70 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 20 3d n($exception);.$this->exitCode.=
ae5a0 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$exitCode;.}.......public.funct
ae5c0 69 6f 6e 20 67 65 74 45 78 63 65 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ion.getException().{.return.$thi
ae5e0 73 2d 3e 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s->exception;.}.........public.f
ae600 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 65 70 74 69 6f 6e 28 5c 45 78 63 65 70 74 69 6f 6e 20 unction.setException(\Exception.
ae620 24 65 78 63 65 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 20 3d $exception).{.$this->exception.=
ae640 20 24 65 78 63 65 70 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 .$exception;.}.......public.func
ae660 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.getExitCode().{.return.$thi
ae680 73 2d 3e 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->exitCode;.}.}.<?php..........
ae6a0 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
ae6c0 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 sole\Event;..use.Symfony\Compone
ae6e0 6e 74 5c 43 6f 6e 73 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 nt\Console\Command\Command;.use.
ae700 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\
ae720 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 70 InputInterface;.use.Symfony\Comp
ae740 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 72 onent\Console\Output\OutputInter
ae760 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 face;.......class.ConsoleCommand
ae780 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 7d 0a 3c Event.extends.ConsoleEvent.{.}.<
ae7a0 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
ae7c0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 \Component\Console;.......final.
ae7e0 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a class.ConsoleEvents.{...........
ae800 63 6f 6e 73 74 20 43 4f 4d 4d 41 4e 44 20 3d 20 27 63 6f 6e 73 6f 6c 65 2e 63 6f 6d 6d 61 6e 64 const.COMMAND.=.'console.command
ae820 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 54 45 52 4d 49 4e 41 54 45 20 3d 20 27 ';...........const.TERMINATE.=.'
ae840 63 6f 6e 73 6f 6c 65 2e 74 65 72 6d 69 6e 61 74 65 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 console.terminate';............c
ae860 6f 6e 73 74 20 45 58 43 45 50 54 49 4f 4e 20 3d 20 27 63 6f 6e 73 6f 6c 65 2e 65 78 63 65 70 74 onst.EXCEPTION.=.'console.except
ae880 69 6f 6e 27 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 ion';.}.<?php...........namespac
ae8a0 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 0a 75 73 65 e.Symfony\Component\Finder;..use
ae8c0 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 41 64 61 70 74 65 .Symfony\Component\Finder\Adapte
ae8e0 72 5c 41 64 61 70 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 r\AdapterInterface;.use.Symfony\
ae900 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 47 6e 75 46 69 6e 64 Component\Finder\Adapter\GnuFind
ae920 41 64 61 70 74 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 46 Adapter;.use.Symfony\Component\F
ae940 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 3b 0a 75 73 inder\Adapter\BsdFindAdapter;.us
ae960 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 41 64 61 70 74 e.Symfony\Component\Finder\Adapt
ae980 65 72 5c 50 68 70 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f er\PhpAdapter;.use.Symfony\Compo
ae9a0 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 5c 45 78 63 65 70 74 69 6f 6e 49 nent\Finder\Exception\ExceptionI
ae9c0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 nterface;.................class.
ae9e0 46 69 6e 64 65 72 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 Finder.implements.\IteratorAggre
aea00 67 61 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 49 47 4e 4f 52 45 5f gate,.\Countable.{.const.IGNORE_
aea20 56 43 53 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 49 47 4e 4f 52 45 5f 44 4f 54 5f VCS_FILES.=.1;.const.IGNORE_DOT_
aea40 46 49 4c 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 20 3d 20 30 3b 0a 70 FILES.=.2;..private.$mode.=.0;.p
aea60 72 69 76 61 74 65 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 rivate.$names.=.array();.private
aea80 20 24 6e 6f 74 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 65 .$notNames.=.array();.private.$e
aeaa0 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 74 65 xclude.=.array();.private.$filte
aeac0 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 64 65 70 74 68 73 20 3d 20 rs.=.array();.private.$depths.=.
aeae0 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 69 7a 65 73 20 3d 20 61 72 72 61 79 28 array();.private.$sizes.=.array(
aeb00 29 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 6c 73 65 3b );.private.$followLinks.=.false;
aeb20 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 .private.$sort.=.false;.private.
aeb40 24 69 67 6e 6f 72 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 64 69 72 73 20 3d 20 61 72 72 $ignore.=.0;.private.$dirs.=.arr
aeb60 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ay();.private.$dates.=.array();.
aeb80 70 72 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 private.$iterators.=.array();.pr
aeba0 69 76 61 74 65 20 24 63 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 ivate.$contains.=.array();.priva
aebc0 74 65 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 te.$notContains.=.array();.priva
aebe0 74 65 20 24 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 te.$adapters.=.array();.private.
aec00 24 70 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 50 61 $paths.=.array();.private.$notPa
aec20 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 ths.=.array();..private.static.$
aec40 76 63 73 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 vcsPatterns.=.array('.svn',.'_sv
aec60 6e 27 2c 20 27 43 56 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 n',.'CVS',.'_darcs',.'.arch-para
aec80 6d 73 27 2c 20 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 ms',.'.monotone',.'.bzr',.'.git'
aeca0 2c 20 27 2e 68 67 27 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ,.'.hg');.....public.function.__
aecc0 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 73 74 construct().{.$this->ignore.=.st
aece0 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 7c 20 73 74 61 74 69 63 3a atic::IGNORE_VCS_FILES.|.static:
aed00 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 0a 24 74 68 69 73 0a 2d 3e 61 64 64 41 :IGNORE_DOT_FILES;..$this.->addA
aed20 64 61 70 74 65 72 28 6e 65 77 20 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 28 29 29 0a 2d 3e 61 dapter(new.GnuFindAdapter()).->a
aed40 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 28 29 29 0a ddAdapter(new.BsdFindAdapter()).
aed60 2d 3e 61 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 50 68 70 41 64 61 70 74 65 72 28 29 2c 20 2d ->addAdapter(new.PhpAdapter(),.-
aed80 35 30 29 0a 2d 3e 73 65 74 41 64 61 70 74 65 72 28 27 70 68 70 27 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 50).->setAdapter('php').;.}.....
aeda0 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 72 65 61 74 ....public.static.function.creat
aedc0 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 29 3b 0a 7d 0a 0a 0a 0a e().{.return.new.static();.}....
aede0 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 64 61 70 74 65 72 ......public.function.addAdapter
aee00 28 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 (Adapter\AdapterInterface.$adapt
aee20 65 72 2c 20 24 70 72 69 6f 72 69 74 79 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 er,.$priority.=.0).{.$this->adap
aee40 74 65 72 73 5b 24 61 64 61 70 74 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 ters[$adapter->getName()].=.arra
aee60 79 28 0a 27 61 64 61 70 74 65 72 27 20 3d 3e 20 24 61 64 61 70 74 65 72 2c 0a 27 70 72 69 6f 72 y(.'adapter'.=>.$adapter,.'prior
aee80 69 74 79 27 20 3d 3e 20 24 70 72 69 6f 72 69 74 79 2c 0a 27 73 65 6c 65 63 74 65 64 27 20 3d 3e ity'.=>.$priority,.'selected'.=>
aeea0 20 66 61 6c 73 65 2c 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 .false,.);..return.$this->sortAd
aeec0 61 70 74 65 72 73 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 apters();.}.......public.functio
aeee0 6e 20 75 73 65 42 65 73 74 41 64 61 70 74 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 73 65 n.useBestAdapter().{.$this->rese
aef00 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 tAdapterSelection();..return.$th
aef20 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a is->sortAdapters();.}...........
aef40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 64 61 70 74 65 72 28 24 6e 61 6d 65 public.function.setAdapter($name
aef60 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 ).{.if.(!isset($this->adapters[$
aef80 6e 61 6d 65 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 name])).{.throw.new.\InvalidArgu
aefa0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 64 61 70 74 65 72 20 22 mentException(sprintf('Adapter."
aefc0 25 73 22 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 %s".does.not.exist.',.$name));.}
aefe0 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 69 6f 6e 28 29 ..$this->resetAdapterSelection()
af000 3b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 6e 61 6d 65 5d 5b 27 73 65 6c 65 63 74 ;.$this->adapters[$name]['select
af020 65 64 27 5d 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 ed'].=.true;..return.$this->sort
af040 41 64 61 70 74 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Adapters();.}.......public.funct
af060 69 6f 6e 20 72 65 6d 6f 76 65 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 ion.removeAdapters().{.$this->ad
af080 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b apters.=.array();..return.$this;
af0a0 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 41 64 61 70 .}.......public.function.getAdap
af0c0 74 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 ters().{.return.array_values(arr
af0e0 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 28 61 72 72 61 79 20 24 61 64 61 70 74 65 72 29 20 ay_map(function(array.$adapter).
af100 7b 0a 72 65 74 75 72 6e 20 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 3b 0a 7d 2c {.return.$adapter['adapter'];.},
af120 20 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .$this->adapters));.}.........pu
af140 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 69 65 73 28 29 0a 7b 0a 24 74 blic.function.directories().{.$t
af160 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c his->mode.=.Iterator\FileTypeFil
af180 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 3b 0a 0a terIterator::ONLY_DIRECTORIES;..
af1a0 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 75 62 6c 69 63 20 66 return.$this;.}.........public.f
af1c0 75 6e 63 74 69 6f 6e 20 66 69 6c 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 unction.files().{.$this->mode.=.
af1e0 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 3a Iterator\FileTypeFilterIterator:
af200 3a 4f 4e 4c 59 5f 46 49 4c 45 53 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a :ONLY_FILES;..return.$this;.}...
af220 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 20 ................public.function.
af240 64 65 70 74 68 28 24 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 70 74 68 73 5b 5d 20 depth($level).{.$this->depths[].
af260 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f =.new.Comparator\NumberComparato
af280 72 28 24 6c 65 76 65 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a r($level);..return.$this;.}.....
af2a0 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 6e .................public.function
af2c0 20 64 61 74 65 28 24 64 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 61 74 65 73 5b 5d 20 3d 20 .date($date).{.$this->dates[].=.
af2e0 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 28 24 64 new.Comparator\DateComparator($d
af300 61 74 65 29 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 ate);..return.$this;.}..........
af320 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 6e 61 6d 65 28 24 70 .........public.function.name($p
af340 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 74 74 attern).{.$this->names[].=.$patt
af360 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 0a ern;..return.$this;.}...........
af380 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 4e 61 6d 65 28 24 70 61 74 74 65 ..public.function.notName($patte
af3a0 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 74 74 65 rn).{.$this->notNames[].=.$patte
af3c0 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 0a 0a rn;..return.$this;.}............
af3e0 0a 0a 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 28 24 70 61 ....public.function.contains($pa
af400 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 ttern).{.$this->contains[].=.$pa
af420 74 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 ttern;..return.$this;.}.........
af440 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 43 6f 6e 74 61 69 .......public.function.notContai
af460 6e 73 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e ns($pattern).{.$this->notContain
af480 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d s[].=.$pattern;..return.$this;.}
af4a0 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
af4c0 6e 20 70 61 74 68 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 73 5b n.path($pattern).{.$this->paths[
af4e0 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a ].=.$pattern;..return.$this;.}..
af500 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 20 ................public.function.
af520 6e 6f 74 50 61 74 68 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 notPath($pattern).{.$this->notPa
af540 74 68 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b ths[].=.$pattern;..return.$this;
af560 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 6e 63 74 .}..................public.funct
af580 69 6f 6e 20 73 69 7a 65 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 69 7a 65 73 5b 5d ion.size($size).{.$this->sizes[]
af5a0 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 .=.new.Comparator\NumberComparat
af5c0 6f 72 28 24 73 69 7a 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a or($size);..return.$this;.}.....
af5e0 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 78 63 6c 75 64 65 28 ........public.function.exclude(
af600 24 64 69 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 5f $dirs).{.$this->exclude.=.array_
af620 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 28 61 72 72 61 79 29 20 24 64 merge($this->exclude,.(array).$d
af640 69 72 73 29 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 irs);..return.$this;.}..........
af660 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 ...public.function.ignoreDotFile
af680 73 28 24 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 29 0a 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 s($ignoreDotFiles).{.if.($ignore
af6a0 44 6f 74 46 69 6c 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 DotFiles).{.$this->ignore.=.$thi
af6c0 73 2d 3e 69 67 6e 6f 72 65 20 7c 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 s->ignore.|.static::IGNORE_DOT_F
af6e0 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 24 ILES;.}.else.{.$this->ignore.=.$
af700 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 26 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 this->ignore.&.~static::IGNORE_D
af720 4f 54 5f 46 49 4c 45 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a OT_FILES;.}..return.$this;.}....
af740 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 67 6e 6f 72 65 56 .........public.function.ignoreV
af760 43 53 28 24 69 67 6e 6f 72 65 56 43 53 29 0a 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 56 43 53 29 CS($ignoreVCS).{.if.($ignoreVCS)
af780 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
af7a0 20 7c 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b 0a 7d 20 65 .|.static::IGNORE_VCS_FILES;.}.e
af7c0 6c 73 65 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 lse.{.$this->ignore.=.$this->ign
af7e0 6f 72 65 20 26 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b ore.&.~static::IGNORE_VCS_FILES;
af800 0a 7d 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 75 62 6c .}..return.$this;.}.........publ
af820 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 43 53 50 61 74 74 65 72 6e ic.static.function.addVCSPattern
af840 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 ($pattern).{.foreach.((array).$p
af860 61 74 74 65 72 6e 20 61 73 20 24 70 29 20 7b 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 attern.as.$p).{.self::$vcsPatter
af880 6e 73 5b 5d 20 3d 20 24 70 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 ns[].=.$p;.}..self::$vcsPatterns
af8a0 20 3d 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 .=.array_unique(self::$vcsPatter
af8c0 6e 73 29 3b 0a 7d 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 ns);.}.................public.fu
af8e0 6e 63 74 69 6f 6e 20 73 6f 72 74 28 5c 43 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b nction.sort(\Closure.$closure).{
af900 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e .$this->sort.=.$closure;..return
af920 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 6e .$this;.}.............public.fun
af940 63 74 69 6f 6e 20 73 6f 72 74 42 79 4e 61 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 ction.sortByName().{.$this->sort
af960 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 6f 72 3a 3a 53 4f .=.Iterator\SortableIterator::SO
af980 52 54 5f 42 59 5f 4e 41 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a RT_BY_NAME;..return.$this;.}....
af9a0 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 42 79 54 .........public.function.sortByT
af9c0 79 70 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 ype().{.$this->sort.=.Iterator\S
af9e0 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 54 59 50 45 3b 0a 0a ortableIterator::SORT_BY_TYPE;..
afa00 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 70 75 return.$this;.}...............pu
afa20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 blic.function.sortByAccessedTime
afa40 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 72 74 ().{.$this->sort.=.Iterator\Sort
afa60 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 ableIterator::SORT_BY_ACCESSED_T
afa80 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 0a 0a IME;..return.$this;.}...........
afaa0 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 42 79 43 68 61 6e ......public.function.sortByChan
afac0 67 65 64 54 69 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 gedTime().{.$this->sort.=.Iterat
afae0 6f 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 43 48 41 or\SortableIterator::SORT_BY_CHA
afb00 4e 47 45 44 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 NGED_TIME;..return.$this;.}.....
afb20 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 42 79 ..........public.function.sortBy
afb40 4d 6f 64 69 66 69 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 ModifiedTime().{.$this->sort.=.I
afb60 74 65 72 61 74 6f 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 terator\SortableIterator::SORT_B
afb80 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a Y_MODIFIED_TIME;..return.$this;.
afba0 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 6f 6e }................public.function
afbc0 20 66 69 6c 74 65 72 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 .filter(\Closure.$closure).{.$th
afbe0 69 73 2d 3e 66 69 6c 74 65 72 73 5b 5d 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 is->filters[].=.$closure;..retur
afc00 6e 20 24 74 68 69 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 n.$this;.}.........public.functi
afc20 6f 6e 20 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 on.followLinks().{.$this->follow
afc40 4c 69 6e 6b 73 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a Links.=.true;..return.$this;.}..
afc60 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 69 6e 28 24 64 ...........public.function.in($d
afc80 69 72 73 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a irs).{.$resolvedDirs.=.array();.
afca0 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 64 69 72 73 20 61 73 20 24 64 69 72 29 .foreach.((array).$dirs.as.$dir)
afcc0 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 .{.if.(is_dir($dir)).{.$resolved
afce0 44 69 72 73 5b 5d 20 3d 20 24 64 69 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 67 6c 6f 62 20 3d Dirs[].=.$dir;.}.elseif.($glob.=
afd00 20 67 6c 6f 62 28 24 64 69 72 2c 20 47 4c 4f 42 5f 4f 4e 4c 59 44 49 52 29 29 20 7b 0a 24 72 65 .glob($dir,.GLOB_ONLYDIR)).{.$re
afd20 73 6f 6c 76 65 64 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 6f 6c 76 solvedDirs.=.array_merge($resolv
afd40 65 64 44 69 72 73 2c 20 24 67 6c 6f 62 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e edDirs,.$glob);.}.else.{.throw.n
afd60 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
afd80 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 64 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f intf('The."%s".directory.does.no
afda0 74 20 65 78 69 73 74 2e 27 2c 20 24 64 69 72 29 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 t.exist.',.$dir));.}.}..$this->d
afdc0 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 69 72 73 2c 20 24 irs.=.array_merge($this->dirs,.$
afde0 72 65 73 6f 6c 76 65 64 44 69 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a resolvedDirs);..return.$this;.}.
afe00 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 49 74 65 ..........public.function.getIte
afe20 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 69 73 2d rator().{.if.(0.===.count($this-
afe40 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 74 65 >dirs).&&.0.===.count($this->ite
afe60 72 61 74 6f 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 65 70 rators)).{.throw.new.\LogicExcep
afe80 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 63 61 6c 6c 20 6f 6e 65 20 6f 66 20 69 6e 28 29 20 tion('You.must.call.one.of.in().
afea0 6f 72 20 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 73 20 62 65 66 6f 72 65 20 69 74 65 72 61 or.append().methods.before.itera
afec0 74 69 6e 67 20 6f 76 65 72 20 61 20 46 69 6e 64 65 72 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 ting.over.a.Finder.');.}..if.(1.
afee0 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 69 72 73 29 20 26 26 20 30 20 3d 3d 3d 20 ===.count($this->dirs).&&.0.===.
aff00 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 29 29 20 7b 0a 72 65 74 75 72 count($this->iterators)).{.retur
aff20 6e 20 24 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 n.$this->searchInDirectory($this
aff40 2d 3e 64 69 72 73 5b 30 5d 29 3b 0a 7d 0a 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c ->dirs[0]);.}..$iterator.=.new.\
aff60 41 70 70 65 6e 64 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 AppendIterator();.foreach.($this
aff80 2d 3e 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 61 70 70 ->dirs.as.$dir).{.$iterator->app
affa0 65 6e 64 28 24 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 end($this->searchInDirectory($di
affc0 72 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 r));.}..foreach.($this->iterator
affe0 73 20 61 73 20 24 69 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 69 s.as.$it).{.$iterator->append($i
b0000 74 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 0a 0a 0a 0a 0a t);.}..return.$iterator;.}......
b0020 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 69 .......public.function.append($i
b0040 74 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 terator).{.if.($iterator.instanc
b0060 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 29 20 7b 0a 24 74 68 69 73 2d eof.\IteratorAggregate).{.$this-
b0080 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 74 65 >iterators[].=.$iterator->getIte
b00a0 72 61 74 6f 72 28 29 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 rator();.}.elseif.($iterator.ins
b00c0 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 tanceof.\Iterator).{.$this->iter
b00e0 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 ators[].=.$iterator;.}.elseif.($
b0100 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 iterator.instanceof.\Traversable
b0120 20 7c 7c 20 69 73 5f 61 72 72 61 79 28 24 69 74 65 72 61 74 6f 72 29 29 20 7b 0a 24 69 74 20 3d .||.is_array($iterator)).{.$it.=
b0140 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 .new.\ArrayIterator();.foreach.(
b0160 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 69 74 2d 3e 61 70 70 65 6e $iterator.as.$file).{.$it->appen
b0180 64 28 24 66 69 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 d($file.instanceof.\SplFileInfo.
b01a0 3f 20 24 66 69 6c 65 20 3a 20 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 66 69 6c 65 ?.$file.:.new.\SplFileInfo($file
b01c0 29 29 3b 0a 7d 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 3b 0a ));.}.$this->iterators[].=.$it;.
b01e0 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 67 75 6d }.else.{.throw.new.\InvalidArgum
b0200 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 69 6e 64 65 72 3a 3a 61 70 70 65 6e 64 28 29 20 6d entException('Finder::append().m
b0220 65 74 68 6f 64 20 77 72 6f 6e 67 20 61 72 67 75 6d 65 6e 74 20 74 79 70 65 2e 27 29 3b 0a 7d 0a ethod.wrong.argument.type.');.}.
b0240 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$this;.}.......public.fu
b0260 6e 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 nction.count().{.return.iterator
b0280 5f 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 _count($this->getIterator());.}.
b02a0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 41 64 61 70 74 65 72 ....private.function.sortAdapter
b02c0 73 28 29 0a 7b 0a 75 61 73 6f 72 74 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 2c 20 66 75 s().{.uasort($this->adapters,.fu
b02e0 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 61 2c 20 61 72 72 61 79 20 24 62 29 20 7b 0a 69 66 nction.(array.$a,.array.$b).{.if
b0300 20 28 24 61 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 7c 7c 20 24 62 5b 27 73 65 6c 65 63 74 65 64 .($a['selected'].||.$b['selected
b0320 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3f 20 2d 31 ']).{.return.$a['selected'].?.-1
b0340 20 3a 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 5b 27 70 72 69 6f 72 69 74 79 27 5d 20 3e .:.1;.}..return.$a['priority'].>
b0360 20 24 62 5b 27 70 72 69 6f 72 69 74 79 27 5d 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 29 3b 0a 0a 72 .$b['priority'].?.-1.:.1;.});..r
b0380 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 eturn.$this;.}.........private.f
b03a0 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 0a unction.searchInDirectory($dir).
b03c0 7b 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 20 3d {.if.(static::IGNORE_VCS_FILES.=
b03e0 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 20 24 ==.(static::IGNORE_VCS_FILES.&.$
b0400 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 65 20 this->ignore)).{.$this->exclude.
b0420 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 73 65 =.array_merge($this->exclude,.se
b0440 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 69 63 lf::$vcsPatterns);.}..if.(static
b0460 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 3a 3a ::IGNORE_DOT_FILES.===.(static::
b0480 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 72 65 IGNORE_DOT_FILES.&.$this->ignore
b04a0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 5b 5d 20 3d 20 27 23 28 5e 7c 2f 29 )).{.$this->notPaths[].=.'#(^|/)
b04c0 5c 2e 2e 2b 28 2f 7c 24 29 23 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e \..+(/|$)#';.}..foreach.($this->
b04e0 61 64 61 70 74 65 72 73 20 61 73 20 24 61 64 61 70 74 65 72 29 20 7b 0a 69 66 20 28 24 61 64 61 adapters.as.$adapter).{.if.($ada
b0500 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 2d 3e 69 73 53 75 70 70 6f 72 74 65 64 28 29 29 20 pter['adapter']->isSupported()).
b0520 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 0a 2d 3e 62 75 69 6c 64 41 64 61 70 {.try.{.return.$this.->buildAdap
b0540 74 65 72 28 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 29 0a 2d 3e 73 65 61 72 63 ter($adapter['adapter']).->searc
b0560 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 45 78 63 hInDirectory($dir);.}.catch.(Exc
b0580 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 65 29 20 7b 7d 0a 7d 0a 7d 0a 0a 74 68 72 6f eptionInterface.$e).{}.}.}..thro
b05a0 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 4e 6f 20 73 75 70 70 w.new.\RuntimeException('No.supp
b05c0 6f 72 74 65 64 20 61 64 61 70 74 65 72 20 66 6f 75 6e 64 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a orted.adapter.found.');.}.......
b05e0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 41 64 61 70 74 65 72 28 41 64 private.function.buildAdapter(Ad
b0600 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 29 0a 7b 0a 72 65 74 75 72 apterInterface.$adapter).{.retur
b0620 6e 20 24 61 64 61 70 74 65 72 0a 2d 3e 73 65 74 46 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 74 68 69 n.$adapter.->setFollowLinks($thi
b0640 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 0a 2d 3e 73 65 74 44 65 70 74 68 73 28 24 74 68 69 s->followLinks).->setDepths($thi
b0660 73 2d 3e 64 65 70 74 68 73 29 0a 2d 3e 73 65 74 4d 6f 64 65 28 24 74 68 69 73 2d 3e 6d 6f 64 65 s->depths).->setMode($this->mode
b0680 29 0a 2d 3e 73 65 74 45 78 63 6c 75 64 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 0a 2d ).->setExclude($this->exclude).-
b06a0 3e 73 65 74 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 29 0a 2d 3e 73 65 74 4e 6f 74 >setNames($this->names).->setNot
b06c0 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 0a 2d 3e 73 65 74 43 6f 6e 74 Names($this->notNames).->setCont
b06e0 61 69 6e 73 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 29 0a 2d 3e 73 65 74 4e 6f 74 43 6f ains($this->contains).->setNotCo
b0700 6e 74 61 69 6e 73 28 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 0a 2d 3e 73 65 74 ntains($this->notContains).->set
b0720 53 69 7a 65 73 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 0a 2d 3e 73 65 74 44 61 74 65 73 28 24 Sizes($this->sizes).->setDates($
b0740 74 68 69 73 2d 3e 64 61 74 65 73 29 0a 2d 3e 73 65 74 46 69 6c 74 65 72 73 28 24 74 68 69 73 2d this->dates).->setFilters($this-
b0760 3e 66 69 6c 74 65 72 73 29 0a 2d 3e 73 65 74 53 6f 72 74 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 >filters).->setSort($this->sort)
b0780 0a 2d 3e 73 65 74 50 61 74 68 28 24 74 68 69 73 2d 3e 70 61 74 68 73 29 0a 2d 3e 73 65 74 4e 6f .->setPath($this->paths).->setNo
b07a0 74 50 61 74 68 28 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 tPath($this->notPaths);.}.....pr
b07c0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 ivate.function.resetAdapterSelec
b07e0 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 tion().{.$this->adapters.=.array
b0800 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 70 72 6f 70 65 72 74 69 65 73 _map(function.(array.$properties
b0820 29 20 7b 0a 24 70 72 6f 70 65 72 74 69 65 73 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 66 61 ).{.$properties['selected'].=.fa
b0840 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 70 65 72 74 69 65 73 3b 0a 7d 2c 20 24 74 68 lse;..return.$properties;.},.$th
b0860 69 73 2d 3e 61 64 61 70 74 65 72 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a is->adapters);.}.}.<?php........
b0880 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 46 ...namespace.Symfony\Component\F
b08a0 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a 7b inder\Shell;.....class.Command.{
b08c0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 72 65 6e 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ....private.$parent;.....private
b08e0 20 24 62 69 74 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 61 62 65 6c 73 3b 0a 0a 0a 0a .$bits;.....private.$labels;....
b0900 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 43 ...public.function.__construct(C
b0920 6f 6d 6d 61 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e ommand.$parent.=.null).{.$this->
b0940 70 61 72 65 6e 74 20 3d 20 24 70 61 72 65 6e 74 3b 0a 24 74 68 69 73 2d 3e 62 69 74 73 20 3d 20 parent.=.$parent;.$this->bits.=.
b0960 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 20 3d 20 61 72 72 61 79 28 29 array();.$this->labels.=.array()
b0980 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
b09a0 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 3b 0a 7d ring().{.return.$this->join();.}
b09c0 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 6e 20 .........public.static.function.
b09e0 63 72 65 61 74 65 28 43 6f 6d 6d 61 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b create(Command.$parent.=.null).{
b0a00 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 70 61 72 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a .return.new.self($parent);.}....
b0a20 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 65 73 63 61 .....public.static.function.esca
b0a40 70 65 28 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 63 pe($input).{.return.escapeshellc
b0a60 6d 64 28 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 md($input);.}.........public.sta
b0a80 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 tic.function.quote($input).{.ret
b0aa0 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a urn.escapeshellarg($input);.}...
b0ac0 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 28 24 62 69 74 29 0a ......public.function.add($bit).
b0ae0 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 24 62 69 74 3b 0a 0a 72 65 74 75 72 6e 20 {.$this->bits[].=.$bit;..return.
b0b00 24 74 68 69 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 $this;.}.........public.function
b0b20 20 74 6f 70 28 24 62 69 74 29 0a 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 .top($bit).{.array_unshift($this
b0b40 2d 3e 62 69 74 73 2c 20 24 62 69 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e ->bits,.$bit);..foreach.($this->
b0b60 6c 61 62 65 6c 73 20 61 73 20 24 6c 61 62 65 6c 20 3d 3e 20 24 69 6e 64 65 78 29 20 7b 0a 24 74 labels.as.$label.=>.$index).{.$t
b0b80 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 2b 3d 20 31 3b 0a 7d 0a 0a 72 65 74 his->labels[$label].+=.1;.}..ret
b0ba0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 urn.$this;.}.........public.func
b0bc0 74 69 6f 6e 20 61 72 67 28 24 61 72 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d tion.arg($arg).{.$this->bits[].=
b0be0 20 73 65 6c 66 3a 3a 71 75 6f 74 65 28 24 61 72 67 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 .self::quote($arg);..return.$thi
b0c00 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 63 6d 64 s;.}.........public.function.cmd
b0c20 28 24 65 73 63 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 65 ($esc).{.$this->bits[].=.self::e
b0c40 73 63 61 70 65 28 24 65 73 63 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a scape($esc);..return.$this;.}...
b0c60 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 28 24 6c 61 62 ........public.function.ins($lab
b0c80 65 6c 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c el).{.if.(isset($this->labels[$l
b0ca0 61 62 65 6c 5d 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 abel])).{.throw.new.\RuntimeExce
b0cc0 70 74 69 6f 6e 28 27 4c 61 62 65 6c 20 22 27 2e 24 6c 61 62 65 6c 2e 27 22 20 61 6c 72 65 61 64 ption('Label."'.$label.'".alread
b0ce0 79 20 65 78 69 73 74 73 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 y.exists.');.}..$this->bits[].=.
b0d00 73 65 6c 66 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 62 65 self::create($this);.$this->labe
b0d20 6c 73 5b 24 6c 61 62 65 6c 5d 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 69 74 73 29 2d ls[$label].=.count($this->bits)-
b0d40 31 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 74 73 5b 24 74 68 69 73 2d 3e 6c 61 1;..return.$this->bits[$this->la
b0d60 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 bels[$label]];.}...........publi
b0d80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6c 61 62 65 6c 29 0a 7b 0a 69 66 20 28 21 69 73 c.function.get($label).{.if.(!is
b0da0 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 29 29 20 7b 0a 74 68 set($this->labels[$label])).{.th
b0dc0 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 4c 61 62 65 6c row.new.\RuntimeException('Label
b0de0 20 22 27 2e 24 6c 61 62 65 6c 2e 27 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 73 2e 27 29 ."'.$label.'".does.not.exists.')
b0e00 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 74 73 5b 24 74 68 69 73 2d 3e 6c ;.}..return.$this->bits[$this->l
b0e20 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 abels[$label]];.}.........public
b0e40 20 66 75 6e 63 74 69 6f 6e 20 65 6e 64 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 .function.end().{.if.(null.===.$
b0e60 74 68 69 73 2d 3e 70 61 72 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 this->parent).{.throw.new.\Runti
b0e80 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6c 6c 69 6e 67 20 65 6e 64 20 6f 6e 20 72 6f 6f 74 meException('Calling.end.on.root
b0ea0 20 63 6f 6d 6d 61 6e 64 20 64 6f 65 73 6e 5c 27 74 20 6d 61 6b 65 20 73 65 6e 73 65 2e 27 29 3b .command.doesn\'t.make.sense.');
b0ec0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a .}..return.$this->parent;.}.....
b0ee0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 65 6e 67 74 68 28 29 0a 7b 0a 72 65 74 ..public.function.length().{.ret
b0f00 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 69 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a urn.count($this->bits);.}.......
b0f20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 29 0a 7b 0a 65 78 ..public.function.execute().{.ex
b0f40 65 63 28 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 6f 64 65 ec($this->join(),.$output,.$code
b0f60 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 63 6f 64 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 );..if.(0.!==.$code).{.throw.new
b0f80 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 45 78 65 63 75 74 69 6f 6e 20 66 61 .\RuntimeException('Execution.fa
b0fa0 69 6c 65 64 20 77 69 74 68 20 72 65 74 75 72 6e 20 63 6f 64 65 3a 20 27 2e 24 63 6f 64 65 2e 27 iled.with.return.code:.'.$code.'
b0fc0 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 20 3f 3a 20 61 72 72 61 79 28 .');.}..return.$output.?:.array(
b0fe0 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 6a 6f 69 6e 28 );.}.......public.function.join(
b1000 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 66 69 ).{.return.implode('.',.array_fi
b1020 6c 74 65 72 28 0a 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 28 24 62 69 74 29 20 7b lter(.array_map(function($bit).{
b1040 0a 72 65 74 75 72 6e 20 24 62 69 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 6d 61 6e 64 20 .return.$bit.instanceof.Command.
b1060 3f 20 24 62 69 74 2d 3e 6a 6f 69 6e 28 29 20 3a 20 28 24 62 69 74 20 3f 3a 20 6e 75 6c 6c 29 3b ?.$bit->join().:.($bit.?:.null);
b1080 0a 7d 2c 20 24 74 68 69 73 2d 3e 62 69 74 73 29 2c 0a 66 75 6e 63 74 69 6f 6e 28 24 62 69 74 29 .},.$this->bits),.function($bit)
b10a0 20 7b 20 72 65 74 75 72 6e 20 6e 75 6c 6c 20 21 3d 3d 20 24 62 69 74 3b 20 7d 0a 29 29 3b 0a 7d .{.return.null.!==.$bit;.}.));.}
b10c0 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 74 49 ..........public.function.addAtI
b10e0 6e 64 65 78 28 24 62 69 74 2c 20 24 69 6e 64 65 78 29 0a 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 ndex($bit,.$index).{.array_splic
b1100 65 28 24 74 68 69 73 2d 3e 62 69 74 73 2c 20 24 69 6e 64 65 78 2c 20 30 2c 20 24 62 69 74 29 3b e($this->bits,.$index,.0,.$bit);
b1120 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ..return.$this;.}.}.<?php.......
b1140 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\
b1160 46 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 0a 7b 0a Finder\Shell;.....class.Shell.{.
b1180 63 6f 6e 73 74 20 54 59 50 45 5f 55 4e 49 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f const.TYPE_UNIX.=.1;.const.TYPE_
b11a0 44 41 52 57 49 4e 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 43 59 47 57 49 4e 20 3d 20 DARWIN.=.2;.const.TYPE_CYGWIN.=.
b11c0 33 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 57 49 4e 44 4f 57 53 20 3d 20 34 3b 0a 63 6f 6e 73 74 3;.const.TYPE_WINDOWS.=.4;.const
b11e0 20 54 59 50 45 5f 42 53 44 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 79 70 65 .TYPE_BSD.=.5;.....private.$type
b1200 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 54 79 70 65 28 ;.......public.function.getType(
b1220 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 79 70 65 29 20 7b 0a ).{.if.(null.===.$this->type).{.
b1240 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 54 79 70 65 28 29 $this->type.=.$this->guessType()
b1260 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 0a ;.}..return.$this->type;.}......
b1280 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 43 6f 6d 6d 61 6e 64 28 24 ...public.function.testCommand($
b12a0 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 command).{.if.(self::TYPE_WINDOW
b12c0 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 66 61 S.===.$this->type).{...return.fa
b12e0 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 65 78 lse;.}..if.(!function_exists('ex
b1300 65 63 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 65 78 65 63 28 ec')).{.return.false;.}....exec(
b1320 27 63 6f 6d 6d 61 6e 64 20 2d 76 20 27 2e 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 'command.-v.'.$command,.$output,
b1340 20 24 63 6f 64 65 29 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 63 6f 64 65 20 26 26 20 .$code);..return.0.===.$code.&&.
b1360 63 6f 75 6e 74 28 24 6f 75 74 70 75 74 29 20 3e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 count($output).>.0;.}.......priv
b1380 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 54 79 70 65 28 29 0a 7b 0a 24 6f 73 20 3d ate.function.guessType().{.$os.=
b13a0 20 73 74 72 74 6f 6c 6f 77 65 72 28 50 48 50 5f 4f 53 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 .strtolower(PHP_OS);..if.(false.
b13c0 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 63 79 67 77 69 6e 27 29 29 20 7b 0a 72 65 74 !==.strpos($os,.'cygwin')).{.ret
b13e0 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 43 59 47 57 49 4e 3b 0a 7d 0a 0a 69 66 20 28 66 61 urn.self::TYPE_CYGWIN;.}..if.(fa
b1400 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 64 61 72 77 69 6e 27 29 29 20 7b lse.!==.strpos($os,.'darwin')).{
b1420 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 44 41 52 57 49 4e 3b 0a 7d 0a 0a 69 66 .return.self::TYPE_DARWIN;.}..if
b1440 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 62 73 64 27 29 29 20 .(false.!==.strpos($os,.'bsd')).
b1460 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 42 53 44 3b 0a 7d 0a 0a 69 66 20 28 {.return.self::TYPE_BSD;.}..if.(
b1480 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 0.===.strpos($os,.'win')).{.retu
b14a0 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e rn.self::TYPE_WINDOWS;.}..return
b14c0 20 73 65 6c 66 3a 3a 54 59 50 45 5f 55 4e 49 58 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .self::TYPE_UNIX;.}.}.<?php.....
b14e0 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
b1500 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 t\Finder\Expression;.....class.R
b1520 65 67 65 78 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b egex.implements.ValueInterface.{
b1540 0a 63 6f 6e 73 74 20 53 54 41 52 54 5f 46 4c 41 47 20 3d 20 27 5e 27 3b 0a 63 6f 6e 73 74 20 45 .const.START_FLAG.=.'^';.const.E
b1560 4e 44 5f 46 4c 41 47 20 3d 20 27 24 27 3b 0a 63 6f 6e 73 74 20 42 4f 55 4e 44 41 52 59 20 3d 20 ND_FLAG.=.'$';.const.BOUNDARY.=.
b1580 27 7e 27 3b 0a 63 6f 6e 73 74 20 4a 4f 4b 45 52 20 3d 20 27 2e 2a 27 3b 0a 63 6f 6e 73 74 20 45 '~';.const.JOKER.=.'.*';.const.E
b15a0 53 43 41 50 49 4e 47 20 3d 20 27 5c 5c 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 74 SCAPING.=.'\\';.....private.$pat
b15c0 74 65 72 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 0a 0a 0a tern;.....private.$options;.....
b15e0 70 72 69 76 61 74 65 20 24 73 74 61 72 74 46 6c 61 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 private.$startFlag;.....private.
b1600 24 65 6e 64 46 6c 61 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 4a 6f 6b 65 $endFlag;.....private.$startJoke
b1620 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 6e 64 4a 6f 6b 65 72 3b 0a 0a 0a 0a 0a 0a 0a r;.....private.$endJoker;.......
b1640 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 72 65 61 74 65 28 ..public.static.function.create(
b1660 24 65 78 70 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 2e 7b 33 2c $expr).{.if.(preg_match('/^(.{3,
b1680 7d 3f 29 28 5b 69 6d 73 78 75 41 44 55 5d 2a 29 24 2f 27 2c 20 24 65 78 70 72 2c 20 24 6d 29 29 }?)([imsxuADU]*)$/',.$expr,.$m))
b16a0 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 2c 20 31 29 3b .{.$start.=.substr($m[1],.0,.1);
b16c0 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 0a 69 66 20 28 .$end.=.substr($m[1],.-1);..if.(
b16e0 28 24 73 74 61 72 74 20 3d 3d 3d 20 24 65 6e 64 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 ($start.===.$end.&&.!preg_match(
b1700 27 2f 5b 2a 3f 5b 3a 61 6c 6e 75 6d 3a 5d 20 5c 5c 5c 5c 5d 2f 27 2c 20 24 73 74 61 72 74 29 29 '/[*?[:alnum:].\\\\]/',.$start))
b1720 20 7c 7c 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 7b 27 20 26 26 20 24 65 6e 64 20 3d 3d 3d 20 .||.($start.===.'{'.&&.$end.===.
b1740 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 73 75 62 73 74 72 28 24 '}')).{.return.new.self(substr($
b1760 6d 5b 31 5d 2c 20 31 2c 20 2d 31 29 2c 20 24 6d 5b 32 5d 2c 20 24 65 6e 64 29 3b 0a 7d 0a 7d 0a m[1],.1,.-1),.$m[2],.$end);.}.}.
b1780 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
b17a0 74 69 6f 6e 28 27 47 69 76 65 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6e 6f 74 20 61 20 tion('Given.expression.is.not.a.
b17c0 72 65 67 65 78 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 regex.');.}.......public.functio
b17e0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 74 65 72 6e 2c 20 24 6f 70 74 69 6f 6e 73 n.__construct($pattern,.$options
b1800 20 3d 20 27 27 2c 20 24 64 65 6c 69 6d 69 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 .=.'',.$delimiter.=.null).{.if.(
b1820 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 6c 69 6d 69 74 65 72 29 20 7b 0a 0a 20 24 70 61 74 74 65 72 null.!==.$delimiter).{...$patter
b1840 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 27 2e 24 64 65 6c 69 6d 69 74 65 72 2c n.=.str_replace('\\'.$delimiter,
b1860 20 24 64 65 6c 69 6d 69 74 65 72 2c 20 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 .$delimiter,.$pattern);.}..$this
b1880 2d 3e 70 61 72 73 65 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e 29 3b 0a 24 74 68 69 73 2d ->parsePattern($pattern);.$this-
b18a0 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 >options.=.$options;.}.....publi
b18c0 63 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 c.function.__toString().{.return
b18e0 20 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$this->render();.}.....public.f
b1900 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a unction.render().{.return.self::
b1920 42 4f 55 4e 44 41 52 59 0a 2e 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 BOUNDARY..$this->renderPattern()
b1940 0a 2e 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 0a 2e 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 ..self::BOUNDARY..$this->options
b1960 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 6e 64 65 72 50 61 ;.}.....public.function.renderPa
b1980 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c ttern().{.return.($this->startFl
b19a0 61 67 20 3f 20 73 65 6c 66 3a 3a 53 54 41 52 54 5f 46 4c 41 47 20 3a 20 27 27 29 0a 2e 28 24 74 ag.?.self::START_FLAG.:.'')..($t
b19c0 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 20 3f 20 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3a 20 his->startJoker.?.self::JOKER.:.
b19e0 27 27 29 0a 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 2c '')..str_replace(self::BOUNDARY,
b1a00 20 27 5c 5c 27 2e 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 2c 20 24 74 68 69 73 2d 3e 70 61 74 .'\\'.self::BOUNDARY,.$this->pat
b1a20 74 65 72 6e 29 0a 2e 28 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 20 3f 20 73 65 6c 66 3a 3a tern)..($this->endJoker.?.self::
b1a40 4a 4f 4b 45 52 20 3a 20 27 27 29 0a 2e 28 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 20 3f 20 73 JOKER.:.'')..($this->endFlag.?.s
b1a60 65 6c 66 3a 3a 45 4e 44 5f 46 4c 41 47 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 elf::END_FLAG.:.'');.}.....publi
b1a80 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 c.function.isCaseSensitive().{.r
b1aa0 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 69 27 29 3b 0a 7d 0a eturn.!$this->hasOption('i');.}.
b1ac0 0a 0a 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 ....public.function.getType().{.
b1ae0 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 54 59 50 45 5f 52 45 47 45 58 3b 0a 7d return.Expression::TYPE_REGEX;.}
b1b00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 .....public.function.prepend($ex
b1b20 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 65 78 70 72 2e 24 74 68 pr).{.$this->pattern.=.$expr.$th
b1b40 69 73 2d 3e 70 61 74 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 is->pattern;..return.$this;.}...
b1b60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a ..public.function.append($expr).
b1b80 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 2e 3d 20 24 65 78 70 72 3b 0a 0a 72 65 74 75 {.$this->pattern..=.$expr;..retu
b1ba0 72 6e 20 24 74 68 69 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 rn.$this;.}.......public.functio
b1bc0 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 n.hasOption($option).{.return.fa
b1be0 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 2c 20 24 lse.!==.strpos($this->options,.$
b1c00 6f 70 74 69 6f 6e 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 option);.}.......public.function
b1c20 20 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 .addOption($option).{.if.(!$this
b1c40 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f ->hasOption($option)).{.$this->o
b1c60 70 74 69 6f 6e 73 2e 3d 20 24 6f 70 74 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ptions.=.$option;.}..return.$thi
b1c80 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 72 65 6d 6f 76 s;.}.......public.function.remov
b1ca0 65 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e eOption($option).{.$this->option
b1cc0 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 6f 70 74 69 6f 6e 2c 20 27 27 2c 20 24 74 68 s.=.str_replace($option,.'',.$th
b1ce0 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a is->options);..return.$this;.}..
b1d00 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 74 61 72 74 46 6c 61 .....public.function.setStartFla
b1d20 67 28 24 73 74 61 72 74 46 6c 61 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 g($startFlag).{.$this->startFlag
b1d40 20 3d 20 24 73 74 61 72 74 46 6c 61 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a .=.$startFlag;..return.$this;.}.
b1d60 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 61 72 74 46 6c 61 67 ....public.function.hasStartFlag
b1d80 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 3b 0a 7d 0a ().{.return.$this->startFlag;.}.
b1da0 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 45 6e 64 46 6c 61 67 ......public.function.setEndFlag
b1dc0 28 24 65 6e 64 46 6c 61 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 20 3d 20 28 62 ($endFlag).{.$this->endFlag.=.(b
b1de0 6f 6f 6c 29 20 24 65 6e 64 46 6c 61 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a ool).$endFlag;..return.$this;.}.
b1e00 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 45 6e 64 46 6c 61 67 28 29 ....public.function.hasEndFlag()
b1e20 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 3b 0a 7d 0a 0a 0a 0a 0a .{.return.$this->endFlag;.}.....
b1e40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 72 74 4a 6f 6b 65 72 28 ..public.function.setStartJoker(
b1e60 24 73 74 61 72 74 4a 6f 6b 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 $startJoker).{.$this->startJoker
b1e80 20 3d 20 24 73 74 61 72 74 4a 6f 6b 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d .=.$startJoker;..return.$this;.}
b1ea0 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 61 72 74 4a 6f 6b .....public.function.hasStartJok
b1ec0 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 3b er().{.return.$this->startJoker;
b1ee0 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 45 6e 64 4a .}.......public.function.setEndJ
b1f00 6f 6b 65 72 28 24 65 6e 64 4a 6f 6b 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 oker($endJoker).{.$this->endJoke
b1f20 72 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 64 4a 6f 6b 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 r.=.(bool).$endJoker;..return.$t
b1f40 68 69 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 68 61 73 45 6e his;.}.....public.function.hasEn
b1f60 64 4a 6f 6b 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 dJoker().{.return.$this->endJoke
b1f80 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 72 65 70 6c 61 r;.}.......public.function.repla
b1fa0 63 65 4a 6f 6b 65 72 73 28 24 72 65 70 6c 61 63 65 6d 65 6e 74 29 0a 7b 0a 24 72 65 70 6c 61 63 ceJokers($replacement).{.$replac
b1fc0 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 75 62 6a 65 63 74 29 20 75 73 65 20 28 24 72 65 e.=.function.($subject).use.($re
b1fe0 70 6c 61 63 65 6d 65 6e 74 29 20 7b 0a 24 73 75 62 6a 65 63 74 20 3d 20 24 73 75 62 6a 65 63 74 placement).{.$subject.=.$subject
b2000 5b 30 5d 3b 0a 24 72 65 70 6c 61 63 65 20 3d 20 30 20 3d 3d 3d 20 73 75 62 73 74 72 5f 63 6f 75 [0];.$replace.=.0.===.substr_cou
b2020 6e 74 28 24 73 75 62 6a 65 63 74 2c 20 27 5c 5c 27 29 20 25 20 32 3b 0a 0a 72 65 74 75 72 6e 20 nt($subject,.'\\').%.2;..return.
b2040 24 72 65 70 6c 61 63 65 20 3f 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2e 27 2c 20 24 72 65 70 $replace.?.str_replace('.',.$rep
b2060 6c 61 63 65 6d 65 6e 74 2c 20 24 73 75 62 6a 65 63 74 29 20 3a 20 24 73 75 62 6a 65 63 74 3b 0a lacement,.$subject).:.$subject;.
b2080 7d 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 };..$this->pattern.=.preg_replac
b20a0 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7e 5b 5c 5c 5c 5c 5d 2a 5c 5c 2e 7e 27 2c 20 24 72 65 70 6c e_callback('~[\\\\]*\\.~',.$repl
b20c0 61 63 65 2c 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 ace,.$this->pattern);..return.$t
b20e0 68 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 70 61 72 73 his;.}.....private.function.pars
b2100 65 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e ePattern($pattern).{.if.($this->
b2120 73 74 61 72 74 46 6c 61 67 20 3d 20 73 65 6c 66 3a 3a 53 54 41 52 54 5f 46 4c 41 47 20 3d 3d 3d startFlag.=.self::START_FLAG.===
b2140 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 31 29 29 20 7b 0a 24 70 61 74 74 .substr($pattern,.0,.1)).{.$patt
b2160 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 31 29 3b 0a 7d 0a 0a 69 66 ern.=.substr($pattern,.1);.}..if
b2180 20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 20 3d 20 73 65 6c 66 3a 3a 4a 4f 4b 45 .($this->startJoker.=.self::JOKE
b21a0 52 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 32 29 29 20 7b 0a R.===.substr($pattern,.0,.2)).{.
b21c0 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 32 29 3b 0a $pattern.=.substr($pattern,.2);.
b21e0 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 20 3d 20 28 73 65 6c 66 3a 3a 45 }..if.($this->endFlag.=.(self::E
b2200 4e 44 5f 46 4c 41 47 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 31 29 ND_FLAG.===.substr($pattern,.-1)
b2220 20 26 26 20 73 65 6c 66 3a 3a 45 53 43 41 50 49 4e 47 20 21 3d 3d 20 73 75 62 73 74 72 28 24 70 .&&.self::ESCAPING.!==.substr($p
b2240 61 74 74 65 72 6e 2c 20 2d 32 2c 20 2d 31 29 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 attern,.-2,.-1))).{.$pattern.=.s
b2260 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 2d 31 29 3b 0a 7d 0a 0a 69 66 20 28 24 ubstr($pattern,.0,.-1);.}..if.($
b2280 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 20 3d 20 28 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3d 3d this->endJoker.=.(self::JOKER.==
b22a0 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 32 29 20 26 26 20 73 65 6c 66 3a 3a =.substr($pattern,.-2).&&.self::
b22c0 45 53 43 41 50 49 4e 47 20 21 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 33 ESCAPING.!==.substr($pattern,.-3
b22e0 2c 20 2d 32 29 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 ,.-2))).{.$pattern.=.substr($pat
b2300 74 65 72 6e 2c 20 30 2c 20 2d 32 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 tern,.0,.-2);.}..$this->pattern.
b2320 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a =.$pattern;.}.}.<?php...........
b2340 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 64 namespace.Symfony\Component\Find
b2360 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 20 69 6d er\Expression;.....class.Glob.im
b2380 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 plements.ValueInterface.{....pri
b23a0 76 61 74 65 20 24 70 61 74 74 65 72 6e 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 vate.$pattern;.....public.functi
b23c0 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 on.__construct($pattern).{.$this
b23e0 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ->pattern.=.$pattern;.}.....publ
b2400 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ic.function.render().{.return.$t
b2420 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 his->pattern;.}.....public.funct
b2440 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ion.renderPattern().{.return.$th
b2460 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 is->pattern;.}.....public.functi
b2480 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e on.getType().{.return.Expression
b24a0 3a 3a 54 59 50 45 5f 47 4c 4f 42 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ::TYPE_GLOB;.}.....public.functi
b24c0 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 on.isCaseSensitive().{.return.tr
b24e0 75 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 70 72 65 70 65 6e ue;.}.....public.function.prepen
b2500 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 65 78 70 d($expr).{.$this->pattern.=.$exp
b2520 72 2e 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b r.$this->pattern;..return.$this;
b2540 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 .}.....public.function.append($e
b2560 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 2e 3d 20 24 65 78 70 72 3b 0a xpr).{.$this->pattern..=.$expr;.
b2580 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$this;.}.......public.fu
b25a0 6e 63 74 69 6f 6e 20 69 73 45 78 70 61 6e 64 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 nction.isExpandable().{.return.f
b25c0 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 2c 20 alse.!==.strpos($this->pattern,.
b25e0 27 7b 27 29 0a 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e '{').&&.false.!==.strpos($this->
b2600 70 61 74 74 65 72 6e 2c 20 27 7d 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 pattern,.'}');.}........public.f
b2620 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f unction.toRegex($strictLeadingDo
b2640 74 20 3d 20 74 72 75 65 2c 20 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3d t.=.true,.$strictWildcardSlash.=
b2660 20 74 72 75 65 29 0a 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 73 63 .true).{.$firstByte.=.true;.$esc
b2680 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 24 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b 0a 24 aping.=.false;.$inCurlies.=.0;.$
b26a0 72 65 67 65 78 20 3d 20 27 27 3b 0a 24 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 regex.=.'';.$sizeGlob.=.strlen($
b26c0 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 this->pattern);.for.($i.=.0;.$i.
b26e0 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 61 72 20 3d 20 24 74 68 69 <.$sizeGlob;.$i++).{.$car.=.$thi
b2700 73 2d 3e 70 61 74 74 65 72 6e 5b 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 65 29 20 s->pattern[$i];.if.($firstByte).
b2720 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 20 21 {.if.($strictLeadingDot.&&.'.'.!
b2740 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 29 27 ==.$car).{.$regex..=.'(?=[^\.])'
b2760 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 20 28 ;.}..$firstByte.=.false;.}..if.(
b2780 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 72 75 '/'.===.$car).{.$firstByte.=.tru
b27a0 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 3d 3d e;.}..if.('.'.===.$car.||.'('.==
b27c0 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 3d 3d =.$car.||.')'.===.$car.||.'|'.==
b27e0 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 3d 3d =.$car.||.'+'.===.$car.||.'^'.==
b2800 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 65 78 =.$car.||.'$'.===.$car).{.$regex
b2820 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 3d 20 ..=."\\$car";.}.elseif.('*'.===.
b2840 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 27 5c $car).{.$regex..=.$escaping.?.'\
b2860 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 27 5b \*'.:.($strictWildcardSlash.?.'[
b2880 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 3d 3d ^/]*'.:.'.*');.}.elseif.('?'.===
b28a0 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 27 .$car).{.$regex..=.$escaping.?.'
b28c0 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 20 27 \\?'.:.($strictWildcardSlash.?.'
b28e0 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 3d 20 [^/]'.:.'.');.}.elseif.('{'.===.
b2900 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 27 5c $car).{.$regex..=.$escaping.?.'\
b2920 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 2b 24 \{'.:.'(';.if.(!$escaping).{.++$
b2940 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 20 24 inCurlies;.}.}.elseif.('}'.===.$
b2960 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 20 24 car.&&.$inCurlies).{.$regex..=.$
b2980 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 63 61 escaping.?.'}'.:.')';.if.(!$esca
b29a0 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 69 66 ping).{.--$inCurlies;.}.}.elseif
b29c0 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 7b 0a .(','.===.$car.&&.$inCurlies).{.
b29e0 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 27 3b $regex..=.$escaping.?.','.:.'|';
b2a00 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 20 28 .}.elseif.('\\'.===.$car).{.if.(
b2a20 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 0a 24 $escaping).{.$regex..=.'\\\\';.$
b2a40 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 63 61 escaping.=.false;.}.else.{.$esca
b2a60 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 73 65 ping.=.true;.}..continue;.}.else
b2a80 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 20 3d .{.$regex..=.$car;.}.$escaping.=
b2aa0 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 65 67 65 78 28 27 5e 27 2e .false;.}..return.new.Regex('^'.
b2ac0 24 72 65 67 65 78 2e 27 24 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $regex.'$');.}.}.<?php..........
b2ae0 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
b2b00 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 70 72 65 73 der\Expression;.....class.Expres
b2b20 73 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b sion.implements.ValueInterface.{
b2b40 0a 63 6f 6e 73 74 20 54 59 50 45 5f 52 45 47 45 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 .const.TYPE_REGEX.=.1;.const.TYP
b2b60 45 5f 47 4c 4f 42 20 3d 20 32 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 61 6c 75 65 3b 0a E_GLOB.=.2;.....private.$value;.
b2b80 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 72 65 ......public.static.function.cre
b2ba0 61 74 65 28 24 65 78 70 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 65 78 ate($expr).{.return.new.self($ex
b2bc0 70 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 5f 5f 63 6f 6e pr);.}.....public.function.__con
b2be0 73 74 72 75 63 74 28 24 65 78 70 72 29 0a 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c struct($expr).{.try.{.$this->val
b2c00 75 65 20 3d 20 52 65 67 65 78 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 29 3b 0a 7d 20 63 61 74 ue.=.Regex::create($expr);.}.cat
b2c20 63 68 20 28 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 20 24 65 ch.(\InvalidArgumentException.$e
b2c40 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3d 20 6e 65 77 20 47 6c 6f 62 28 24 65 78 70 ).{.$this->value.=.new.Glob($exp
b2c60 72 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 5f 5f 74 6f r);.}.}.....public.function.__to
b2c80 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 72 65 6e 64 65 72 28 String().{.return.$this->render(
b2ca0 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 6e 64 65 72 28 );.}.....public.function.render(
b2cc0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 72 65 6e 64 65 72 28 ).{.return.$this->value->render(
b2ce0 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 6e 64 65 72 50 );.}.....public.function.renderP
b2d00 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e attern().{.return.$this->value->
b2d20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 renderPattern();.}.....public.fu
b2d40 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 nction.isCaseSensitive().{.retur
b2d60 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 n.$this->value->isCaseSensitive(
b2d80 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 54 79 70 65 );.}.....public.function.getType
b2da0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 ().{.return.$this->value->getTyp
b2dc0 65 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 70 72 65 70 65 e();.}.....public.function.prepe
b2de0 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 70 72 65 70 65 6e nd($expr).{.$this->value->prepen
b2e00 64 28 24 65 78 70 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 d($expr);..return.$this;.}.....p
b2e20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 ublic.function.append($expr).{.$
b2e40 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 61 70 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a 72 65 74 this->value->append($expr);..ret
b2e60 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e urn.$this;.}.....public.function
b2e80 20 69 73 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 52 .isRegex().{.return.self::TYPE_R
b2ea0 45 47 45 58 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 EGEX.===.$this->value->getType()
b2ec0 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 47 6c 6f 62 28 29 ;.}.....public.function.isGlob()
b2ee0 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 47 4c 4f 42 20 3d 3d 3d 20 24 74 .{.return.self::TYPE_GLOB.===.$t
b2f00 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 his->value->getType();.}.......p
b2f20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 6c 6f 62 28 29 0a 7b 0a 69 66 20 28 73 ublic.function.getGlob().{.if.(s
b2f40 65 6c 66 3a 3a 54 59 50 45 5f 47 4c 4f 42 20 21 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d elf::TYPE_GLOB.!==.$this->value-
b2f60 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 >getType()).{.throw.new.\LogicEx
b2f80 63 65 70 74 69 6f 6e 28 27 52 65 67 65 78 20 63 61 6e 74 20 62 65 20 74 72 61 6e 73 66 6f 72 6d ception('Regex.cant.be.transform
b2fa0 65 64 20 74 6f 20 67 6c 6f 62 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ed.to.glob.');.}..return.$this->
b2fc0 76 61 6c 75 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 value;.}.....public.function.get
b2fe0 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 52 45 47 45 Regex().{.return.self::TYPE_REGE
b3000 58 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3f 20 X.===.$this->value->getType().?.
b3020 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3a 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 74 6f 52 $this->value.:.$this->value->toR
b3040 65 67 65 78 28 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 egex();.}.}.<?php...........name
b3060 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 45 space.Symfony\Component\Finder\E
b3080 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 56 61 6c 75 65 49 6e xpression;.....interface.ValueIn
b30a0 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 72 terface.{......public.function.r
b30c0 65 6e 64 65 72 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 72 ender();.......public.function.r
b30e0 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e enderPattern();.......public.fun
b3100 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 ction.isCaseSensitive();.......p
b3120 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a ublic.function.getType();.......
b3140 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 3b 0a public.function.prepend($expr);.
b3160 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 ......public.function.append($ex
b3180 70 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 73 70 61 63 65 pr);.}.<?php...........namespace
b31a0 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 41 64 61 70 74 65 .Symfony\Component\Finder\Adapte
b31c0 72 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 r;.....interface.AdapterInterfac
b31e0 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 73 65 74 46 6f 6c 6c e.{......public.function.setFoll
b3200 6f 77 4c 69 6e 6b 73 28 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 owLinks($followLinks);.......pub
b3220 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 6f 64 65 28 24 6d 6f 64 65 29 3b 0a 0a 0a 0a lic.function.setMode($mode);....
b3240 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 6c 75 64 65 28 61 72 ...public.function.setExclude(ar
b3260 72 61 79 20 24 65 78 63 6c 75 64 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ray.$exclude);.......public.func
b3280 74 69 6f 6e 20 73 65 74 44 65 70 74 68 73 28 61 72 72 61 79 20 24 64 65 70 74 68 73 29 3b 0a 0a tion.setDepths(array.$depths);..
b32a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 73 28 61 72 .....public.function.setNames(ar
b32c0 72 61 79 20 24 6e 61 6d 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ray.$names);.......public.functi
b32e0 6f 6e 20 73 65 74 4e 6f 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 6f 74 4e 61 6d 65 73 29 3b on.setNotNames(array.$notNames);
b3300 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 6e 74 61 69 .......public.function.setContai
b3320 6e 73 28 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ns(array.$contains);.......publi
b3340 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 c.function.setNotContains(array.
b3360 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $notContains);.......public.func
b3380 74 69 6f 6e 20 73 65 74 53 69 7a 65 73 28 61 72 72 61 79 20 24 73 69 7a 65 73 29 3b 0a 0a 0a 0a tion.setSizes(array.$sizes);....
b33a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 61 74 65 73 28 61 72 72 61 ...public.function.setDates(arra
b33c0 79 20 24 64 61 74 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e y.$dates);.......public.function
b33e0 20 73 65 74 46 69 6c 74 65 72 73 28 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 3b 0a 0a 0a 0a .setFilters(array.$filters);....
b3400 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 72 74 28 24 73 6f 72 74 ...public.function.setSort($sort
b3420 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 73 65 74 50 61 74 68 );.......public.function.setPath
b3440 28 61 72 72 61 79 20 24 70 61 74 68 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e (array.$paths);.......public.fun
b3460 63 74 69 6f 6e 20 73 65 74 4e 6f 74 50 61 74 68 28 61 72 72 61 79 20 24 6e 6f 74 50 61 74 68 73 ction.setNotPath(array.$notPaths
b3480 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 73 65 61 72 63 68 49 );.......public.function.searchI
b34a0 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 nDirectory($dir);.......public.f
b34c0 75 6e 63 74 69 6f 6e 20 69 73 53 75 70 70 6f 72 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 unction.isSupported();.......pub
b34e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a lic.function.getName();.}.<?php.
b3500 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
b3520 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f onent\Finder\Adapter;..use.Symfo
b3540 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b ny\Component\Finder\Shell\Shell;
b3560 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 65 72 5c 53 68 .use.Symfony\Component\Finder\Sh
b3580 65 6c 6c 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 ell\Command;.use.Symfony\Compone
b35a0 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 nt\Finder\Iterator\SortableItera
b35c0 74 6f 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 46 69 6e 64 65 tor;.use.Symfony\Component\Finde
b35e0 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 r\Expression\Expression;.......c
b3600 6c 61 73 73 20 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 lass.BsdFindAdapter.extends.Abst
b3620 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ractFindAdapter.{....public.func
b3640 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 62 73 64 5f 66 69 6e tion.getName().{.return.'bsd_fin
b3660 64 27 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 61 6e d';.}.....protected.function.can
b3680 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 BeUsed().{.return.in_array($this
b36a0 2d 3e 73 68 65 6c 6c 2d 3e 67 65 74 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 53 68 65 6c 6c 3a ->shell->getType(),.array(Shell:
b36c0 3a 54 59 50 45 5f 42 53 44 2c 20 53 68 65 6c 6c 3a 3a 54 59 50 45 5f 44 41 52 57 49 4e 29 29 20 :TYPE_BSD,.Shell::TYPE_DARWIN)).
b36e0 26 26 20 70 61 72 65 6e 74 3a 3a 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 &&.parent::canBeUsed();.}.....pr
b3700 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 otected.function.buildFormatSort
b3720 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 73 ing(Command.$command,.$sort).{.s
b3740 77 69 74 63 68 20 28 24 73 6f 72 74 29 20 7b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 witch.($sort).{.case.SortableIte
b3760 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 69 rator::SORT_BY_NAME:.$command->i
b3780 6e 73 28 27 73 6f 72 74 27 29 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 27 29 3b 0a 0a 72 65 74 75 ns('sort')->add('|.sort');..retu
b37a0 72 6e 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f rn;.case.SortableIterator::SORT_
b37c0 42 59 5f 54 59 50 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 48 54 27 3b 0a 62 72 65 61 6b 3b BY_TYPE:.$format.=.'%HT';.break;
b37e0 0a 63 61 73 65 20 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 .case.SortableIterator::SORT_BY_
b3800 41 43 43 45 53 53 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 61 27 3b 0a 62 ACCESSED_TIME:.$format.=.'%a';.b
b3820 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 reak;.case.SortableIterator::SOR
b3840 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 63 T_BY_CHANGED_TIME:.$format.=.'%c
b3860 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a ';.break;.case.SortableIterator:
b3880 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 :SORT_BY_MODIFIED_TIME:.$format.
b38a0 3d 20 27 25 6d 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 =.'%m';.break;.default:.throw.ne
b38c0 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 55 6e 6b w.\InvalidArgumentException('Unk
b38e0 6e 6f 77 6e 20 73 6f 72 74 20 6f 70 74 69 6f 6e 73 3a 20 27 2e 24 73 6f 72 74 2e 27 2e 27 29 3b nown.sort.options:.'.$sort.'.');
b3900 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 27 2d 70 72 69 6e 74 30 20 7c 20 78 61 .}..$command.->add('-print0.|.xa
b3920 72 67 73 20 2d 30 20 73 74 61 74 20 2d 66 27 29 0a 2d 3e 61 72 67 28 24 66 6f 72 6d 61 74 2e 27 rgs.-0.stat.-f').->arg($format.'
b3940 25 74 25 4e 27 29 0a 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 20 7c 20 63 75 74 20 2d 66 20 32 27 %t%N').->add('|.sort.|.cut.-f.2'
b3960 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 62 75 69 6c );.}.....protected.function.buil
b3980 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 dFindCommand(Command.$command,.$
b39a0 64 69 72 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 dir).{.parent::buildFindCommand(
b39c0 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 2d 3e 61 64 64 41 74 49 6e 64 65 78 28 27 2d 45 27 $command,.$dir)->addAtIndex('-E'
b39e0 2c 20 31 29 3b 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 70 72 ,.1);..return.$command;.}.....pr
b3a00 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c otected.function.buildContentFil
b3a20 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 tering(Command.$command,.array.$
b3a40 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 contains,.$not.=.false).{.foreac
b3a60 68 20 28 24 63 6f 6e 74 61 69 6e 73 20 61 73 20 24 63 6f 6e 74 61 69 6e 29 20 7b 0a 24 65 78 70 h.($contains.as.$contain).{.$exp
b3a80 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 63 6f 6e 74 61 69 6e 29 r.=.Expression::create($contain)
b3aa0 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 27 7c 20 67 72 65 70 20 2d 76 20 5c ;....$command.->add('|.grep.-v.\
b3ac0 27 5e 24 5c 27 27 29 0a 2d 3e 61 64 64 28 27 7c 20 78 61 72 67 73 20 2d 49 7b 7d 20 67 72 65 70 '^$\'').->add('|.xargs.-I{}.grep
b3ae0 20 2d 49 27 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 .-I').->add($expr->isCaseSensiti
b3b00 76 65 28 29 20 3f 20 6e 75 6c 6c 20 3a 20 27 2d 69 27 29 0a 2d 3e 61 64 64 28 24 6e 6f 74 20 3f ve().?.null.:.'-i').->add($not.?
b3b20 20 27 2d 4c 27 20 3a 20 27 2d 6c 27 29 0a 2d 3e 61 64 64 28 27 2d 45 65 27 29 2d 3e 61 72 67 28 .'-L'.:.'-l').->add('-Ee')->arg(
b3b40 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 0a 2d 3e 61 64 64 28 27 7b $expr->renderPattern()).->add('{
b3b60 7d 27 29 0a 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 65 }').;.}.}.}.<?php...........name
b3b80 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 41 space.Symfony\Component\Finder\A
b3ba0 64 61 70 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 46 dapter;..use.Symfony\Component\F
b3bc0 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 inder\Shell\Shell;.use.Symfony\C
b3be0 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 omponent\Finder\Shell\Command;.u
b3c00 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 65 72 5c 49 74 65 72 se.Symfony\Component\Finder\Iter
b3c20 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f ator\SortableIterator;.use.Symfo
b3c40 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 ny\Component\Finder\Expression\E
b3c60 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6e 75 46 69 6e 64 41 64 xpression;.......class.GnuFindAd
b3c80 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 apter.extends.AbstractFindAdapte
b3ca0 72 0a 7b 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 r.{....public.function.getName()
b3cc0 0a 7b 0a 72 65 74 75 72 6e 20 27 67 6e 75 5f 66 69 6e 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 .{.return.'gnu_find';.}.....prot
b3ce0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e ected.function.buildFormatSortin
b3d00 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 73 77 69 g(Command.$command,.$sort).{.swi
b3d20 74 63 68 20 28 24 73 6f 72 74 29 20 7b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 tch.($sort).{.case.SortableItera
b3d40 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 tor::SORT_BY_NAME:.$command->ins
b3d60 28 27 73 6f 72 74 27 29 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 27 29 3b 0a 0a 72 65 74 75 72 6e ('sort')->add('|.sort');..return
b3d80 3b 0a 63 61 73 65 20 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 ;.case.SortableIterator::SORT_BY
b3da0 5f 54 59 50 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 79 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 _TYPE:.$format.=.'%y';.break;.ca
b3dc0 73 65 20 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 41 43 43 se.SortableIterator::SORT_BY_ACC
b3de0 45 53 53 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 41 40 27 3b 0a 62 72 65 ESSED_TIME:.$format.=.'%A@';.bre
b3e00 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f ak;.case.SortableIterator::SORT_
b3e20 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 43 40 27 BY_CHANGED_TIME:.$format.=.'%C@'
b3e40 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a ;.break;.case.SortableIterator::
b3e60 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d SORT_BY_MODIFIED_TIME:.$format.=
b3e80 20 27 25 54 40 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 .'%T@';.break;.default:.throw.ne
b3ea0 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 55 6e 6b w.\InvalidArgumentException('Unk
b3ec0 6e 6f 77 6e 20 73 6f 72 74 20 6f 70 74 69 6f 6e 73 3a 20 27 2e 24 73 6f 72 74 2e 27 2e 27 29 3b nown.sort.options:.'.$sort.'.');
b3ee0 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 67 65 74 28 27 66 69 6e 64 27 29 0a 2d 3e 61 64 64 .}..$command.->get('find').->add
b3f00 28 27 2d 70 72 69 6e 74 66 27 29 0a 2d 3e 61 72 67 28 24 66 6f 72 6d 61 74 2e 27 20 25 68 2f 25 ('-printf').->arg($format.'.%h/%
b3f20 66 5c 5c 6e 27 29 0a 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 20 7c 20 63 75 74 27 29 0a 2d 3e 61 f\\n').->add('|.sort.|.cut').->a
b3f40 72 67 28 27 2d 64 20 27 29 0a 2d 3e 61 72 67 28 27 2d 66 32 2d 27 29 0a 3b 0a 7d 0a 0a 0a 0a 0a rg('-d.').->arg('-f2-').;.}.....
b3f60 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b protected.function.canBeUsed().{
b3f80 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 67 65 74 54 79 70 65 28 29 20 .return.$this->shell->getType().
b3fa0 3d 3d 3d 20 53 68 65 6c 6c 3a 3a 54 59 50 45 5f 55 4e 49 58 20 26 26 20 70 61 72 65 6e 74 3a 3a ===.Shell::TYPE_UNIX.&&.parent::
b3fc0 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e canBeUsed();.}.....protected.fun
b3fe0 63 74 69 6f 6e 20 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 ction.buildFindCommand(Command.$
b4000 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a command,.$dir).{.return.parent::
b4020 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 buildFindCommand($command,.$dir)
b4040 2d 3e 61 64 64 28 27 2d 72 65 67 65 78 74 79 70 65 20 70 6f 73 69 78 2d 65 78 74 65 6e 64 65 64 ->add('-regextype.posix-extended
b4060 27 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 62 75 69 ');.}.....protected.function.bui
b4080 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d ldContentFiltering(Command.$comm
b40a0 61 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c and,.array.$contains,.$not.=.fal
b40c0 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 61 69 6e 73 20 61 73 20 24 63 6f 6e se).{.foreach.($contains.as.$con
b40e0 74 61 69 6e 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 tain).{.$expr.=.Expression::crea
b4100 74 65 28 24 63 6f 6e 74 61 69 6e 29 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 te($contain);....$command.->add(
b4120 27 7c 20 78 61 72 67 73 20 2d 49 7b 7d 20 2d 72 20 67 72 65 70 20 2d 49 27 29 0a 2d 3e 61 64 64 '|.xargs.-I{}.-r.grep.-I').->add
b4140 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 6e 75 6c 6c ($expr->isCaseSensitive().?.null
b4160 20 3a 20 27 2d 69 27 29 0a 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 4c 27 20 3a 20 27 2d 6c .:.'-i').->add($not.?.'-L'.:.'-l
b4180 27 29 0a 2d 3e 61 64 64 28 27 2d 45 65 27 29 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 ').->add('-Ee')->arg($expr->rend
b41a0 65 72 50 61 74 74 65 72 6e 28 29 29 0a 2d 3e 61 64 64 28 27 7b 7d 27 29 0a 3b 0a 7d 0a 7d 0a 7d erPattern()).->add('{}').;.}.}.}
b41c0 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
b41e0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 0a 0a ny\Component\Finder\Adapter;....
b4200 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 ...abstract.class.AbstractAdapte
b4220 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a r.implements.AdapterInterface.{.
b4240 70 72 6f 74 65 63 74 65 64 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 6c 73 65 3b 0a protected.$followLinks.=.false;.
b4260 70 72 6f 74 65 63 74 65 64 20 24 6d 6f 64 65 20 3d 20 30 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 protected.$mode.=.0;.protected.$
b4280 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 78 44 65 70 74 minDepth.=.0;.protected.$maxDept
b42a0 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 63 6c h.=.PHP_INT_MAX;.protected.$excl
b42c0 75 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 73 20 ude.=.array();.protected.$names.
b42e0 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 4e 61 6d 65 73 20 3d =.array();.protected.$notNames.=
b4300 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 74 61 69 6e 73 20 3d 20 .array();.protected.$contains.=.
b4320 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 array();.protected.$notContains.
b4340 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 69 7a 65 73 20 3d 20 61 72 =.array();.protected.$sizes.=.ar
b4360 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 ray();.protected.$dates.=.array(
b4380 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b );.protected.$filters.=.array();
b43a0 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 .protected.$sort.=.false;.protec
b43c0 74 65 64 20 24 70 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 ted.$paths.=.array();.protected.
b43e0 24 6e 6f 74 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 $notPaths.=.array();..private.st
b4400 61 74 69 63 20 24 61 72 65 53 75 70 70 6f 72 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a atic.$areSupported.=.array();...
b4420 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 70 70 6f 72 74 65 64 28 29 0a ..public.function.isSupported().
b4440 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 {.$name.=.$this->getName();..if.
b4460 28 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6e 61 6d 65 2c 20 73 65 6c 66 3a 3a (!array_key_exists($name,.self::
b4480 24 61 72 65 53 75 70 70 6f 72 74 65 64 29 29 20 7b 0a 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 $areSupported)).{.self::$areSupp
b44a0 6f 72 74 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 42 65 55 73 65 64 28 orted[$name].=.$this->canBeUsed(
b44c0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 );.}..return.self::$areSupported
b44e0 5b 24 6e 61 6d 65 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 73 [$name];.}.....public.function.s
b4500 65 74 46 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 0a 7b 0a 24 74 etFollowLinks($followLinks).{.$t
b4520 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 3b his->followLinks.=.$followLinks;
b4540 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ..return.$this;.}.....public.fun
b4560 63 74 69 6f 6e 20 73 65 74 4d 6f 64 65 28 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f ction.setMode($mode).{.$this->mo
b4580 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a de.=.$mode;..return.$this;.}....
b45a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 70 74 68 73 28 61 72 72 61 79 .public.function.setDepths(array
b45c0 20 24 64 65 70 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b .$depths).{.$this->minDepth.=.0;
b45e0 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a .$this->maxDepth.=.PHP_INT_MAX;.
b4600 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 74 68 73 20 61 73 20 24 63 6f 6d 70 61 72 61 74 6f 72 .foreach.($depths.as.$comparator
b4620 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
b4640 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 ator()).{.case.'>':.$this->minDe
b4660 70 74 68 20 3d 20 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 pth.=.$comparator->getTarget().+
b4680 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e .1;.break;.case.'>=':.$this->min
b46a0 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 61 72 67 65 74 28 29 Depth.=.$comparator->getTarget()
b46c0 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 ;.break;.case.'<':.$this->maxDep
b46e0 74 68 20 3d 20 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 2d 20 th.=.$comparator->getTarget().-.
b4700 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 74 68 69 73 2d 3e 6d 61 78 44 1;.break;.case.'<=':.$this->maxD
b4720 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b epth.=.$comparator->getTarget();
b4740 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 .break;.default:.$this->minDepth
b4760 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 .=.$this->maxDepth.=.$comparator
b4780 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ->getTarget();.}.}..return.$this
b47a0 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 45 78 63 6c 75 ;.}.....public.function.setExclu
b47c0 64 65 28 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c de(array.$exclude).{.$this->excl
b47e0 75 64 65 20 3d 20 24 65 78 63 6c 75 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ude.=.$exclude;..return.$this;.}
b4800 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 73 28 61 72 .....public.function.setNames(ar
b4820 72 61 79 20 24 6e 61 6d 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 20 3d 20 24 6e 61 ray.$names).{.$this->names.=.$na
b4840 6d 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 70 75 62 6c 69 63 mes;..return.$this;.}.....public
b4860 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 6f 74 .function.setNotNames(array.$not
b4880 4e 61 6d 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 20 3d 20 24 6e 6f 74 4e Names).{.$this->notNames.=.$notN
b48a0 61 6d 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 70 75 62 6c 69 ames;..return.$this;.}.....publi
b48c0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 24 63 6f c.function.setContains(array.$co
b48e0 6e 74 61 69 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 3d 20 24 63 6f 6e ntains).{.$this->contains.=.$con
b4900 74 61 69 6e 73 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 62 6c tains;..return.$this;.}.....publ
b4920 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 ic.function.setNotContains(array
b4940 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 .$notContains).{.$this->notConta
b4960 69 6e 73 20 3d 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ins.=.$notContains;..return.$thi
b4980 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 53 69 7a 65 s;.}.....public.function.setSize
b49a0 73 28 61 72 72 61 79 20 24 73 69 7a 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 69 7a 65 73 20 3d s(array.$sizes).{.$this->sizes.=
b49c0 20 24 73 69 7a 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 70 75 .$sizes;..return.$this;.}.....pu
b49e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 61 74 65 73 28 61 72 72 61 79 20 24 64 61 blic.function.setDates(array.$da
b4a00 74 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 61 74 65 73 20 3d 20 24 64 61 74 65 73 3b 0a 0a 72 tes).{.$this->dates.=.$dates;..r
b4a20 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eturn.$this;.}.....public.functi
b4a40 6f 6e 20 73 65 74 46 69 6c 74 65 72 73 28 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a on.setFilters(array.$filters).{.
b4a60 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 73 3b 0a 0a 72 65 74 75 $this->filters.=.$filters;..retu
b4a80 72 6e 20 24 74 68 69 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 rn.$this;.}.....public.function.
b4aa0 73 65 74 53 6f 72 74 28 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 setSort($sort).{.$this->sort.=.$
b4ac0 73 6f 72 74 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 62 6c 69 sort;..return.$this;.}.....publi
b4ae0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 74 68 28 61 72 72 61 79 20 24 70 61 74 68 73 29 c.function.setPath(array.$paths)
b4b00 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 73 20 3d 20 24 70 61 74 68 73 3b 0a 0a 72 65 74 75 72 .{.$this->paths.=.$paths;..retur
b4b20 6e 20 24 74 68 69 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 n.$this;.}.....public.function.s
b4b40 65 74 4e 6f 74 50 61 74 68 28 61 72 72 61 79 20 24 6e 6f 74 50 61 74 68 73 29 0a 7b 0a 24 74 68 etNotPath(array.$notPaths).{.$th
b4b60 69 73 2d 3e 6e 6f 74 50 61 74 68 73 20 3d 20 24 6e 6f 74 50 61 74 68 73 3b 0a 0a 72 65 74 75 72 is->notPaths.=.$notPaths;..retur
b4b80 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 n.$this;.}.............abstract.
b4ba0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 3b 0a protected.function.canBeUsed();.
b4bc0 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
b4be0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 ony\Component\Finder\Adapter;..u
b4c00 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 65 72 5c 49 74 65 72 se.Symfony\Component\Finder\Iter
b4c20 61 74 6f 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 46 69 6e 64 ator;.use.Symfony\Component\Find
b4c40 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 er\Shell\Shell;.use.Symfony\Comp
b4c60 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 onent\Finder\Expression\Expressi
b4c80 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 46 69 6e 64 65 72 on;.use.Symfony\Component\Finder
b4ca0 5c 53 68 65 6c 6c 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 \Shell\Command;.use.Symfony\Comp
b4cc0 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 onent\Finder\Iterator\SortableIt
b4ce0 65 72 61 74 6f 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 46 69 erator;.use.Symfony\Component\Fi
b4d00 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 nder\Comparator\NumberComparator
b4d20 3b 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 65 72 5c 43 ;.use.Symfony\Component\Finder\C
b4d40 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a omparator\DateComparator;.......
b4d60 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 abstract.class.AbstractFindAdapt
b4d80 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a er.extends.AbstractAdapter.{....
b4da0 70 72 6f 74 65 63 74 65 64 20 24 73 68 65 6c 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e protected.$shell;.....public.fun
b4dc0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 68 65 ction.__construct().{.$this->she
b4de0 6c 6c 20 3d 20 6e 65 77 20 53 68 65 6c 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ll.=.new.Shell();.}.....public.f
b4e00 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 0a unction.searchInDirectory($dir).
b4e20 7b 0a 0a 20 24 64 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 64 69 72 29 3b 0a 0a 0a 20 69 66 {...$dir.=.realpath($dir);....if
b4e40 20 28 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 .(Iterator\FileTypeFilterIterato
b4e60 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d r::ONLY_DIRECTORIES.===.$this->m
b4e80 6f 64 65 20 26 26 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 ode.&&.($this->contains.||.$this
b4ea0 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 74 65 ->notContains)).{.return.new.Ite
b4ec0 72 61 74 6f 72 5c 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 28 61 72 72 61 79 28 29 2c rator\FilePathsIterator(array(),
b4ee0 20 24 64 69 72 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 43 6f 6d 6d 61 6e 64 3a 3a 63 .$dir);.}..$command.=.Command::c
b4f00 72 65 61 74 65 28 29 3b 0a 24 66 69 6e 64 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 46 69 6e reate();.$find.=.$this->buildFin
b4f20 64 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 3b 0a 0a 69 66 20 28 24 dCommand($command,.$dir);..if.($
b4f40 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 this->followLinks).{.$find->add(
b4f60 27 2d 66 6f 6c 6c 6f 77 27 29 3b 0a 7d 0a 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 6d 69 6e 64 '-follow');.}..$find->add('-mind
b4f80 65 70 74 68 27 29 2d 3e 61 64 64 28 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 2b 20 31 29 epth')->add($this->minDepth.+.1)
b4fa0 3b 0a 0a 69 66 20 28 50 48 50 5f 49 4e 54 5f 4d 41 58 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6d 61 ;..if.(PHP_INT_MAX.!==.$this->ma
b4fc0 78 44 65 70 74 68 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 6d 61 78 64 65 70 74 68 27 xDepth).{.$find->add('-maxdepth'
b4fe0 29 2d 3e 61 64 64 28 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a )->add($this->maxDepth.+.1);.}..
b5000 69 66 20 28 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 if.(Iterator\FileTypeFilterItera
b5020 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d tor::ONLY_DIRECTORIES.===.$this-
b5040 3e 6d 6f 64 65 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 74 79 70 65 20 64 27 29 3b 0a >mode).{.$find->add('-type.d');.
b5060 7d 20 65 6c 73 65 69 66 20 28 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 }.elseif.(Iterator\FileTypeFilte
b5080 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d rIterator::ONLY_FILES.===.$this-
b50a0 3e 6d 6f 64 65 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 74 79 70 65 20 66 27 29 3b 0a >mode).{.$find->add('-type.f');.
b50c0 7d 0a 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 }..$this->buildNamesFiltering($f
b50e0 69 6e 64 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 ind,.$this->names);.$this->build
b5100 4e 61 6d 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 NamesFiltering($find,.$this->not
b5120 4e 61 6d 65 73 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 74 68 73 46 Names,.true);.$this->buildPathsF
b5140 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 64 69 72 2c 20 24 74 68 69 73 2d 3e 70 61 74 iltering($find,.$dir,.$this->pat
b5160 68 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 hs);.$this->buildPathsFiltering(
b5180 24 66 69 6e 64 2c 20 24 64 69 72 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 2c 20 74 72 $find,.$dir,.$this->notPaths,.tr
b51a0 75 65 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 69 7a 65 73 46 69 6c 74 65 72 69 6e 67 28 ue);.$this->buildSizesFiltering(
b51c0 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 $find,.$this->sizes);.$this->bui
b51e0 6c 64 44 61 74 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 64 ldDatesFiltering($find,.$this->d
b5200 61 74 65 73 29 3b 0a 0a 24 75 73 65 47 72 65 70 20 3d 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d ates);..$useGrep.=.$this->shell-
b5220 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 67 72 65 70 27 29 20 26 26 20 24 74 68 69 73 2d 3e 73 >testCommand('grep').&&.$this->s
b5240 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 78 61 72 67 73 27 29 3b 0a 24 75 73 65 hell->testCommand('xargs');.$use
b5260 53 6f 72 74 20 3d 20 69 73 5f 69 6e 74 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 26 26 20 24 74 Sort.=.is_int($this->sort).&&.$t
b5280 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 73 6f 72 74 27 29 20 his->shell->testCommand('sort').
b52a0 26 26 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 63 75 &&.$this->shell->testCommand('cu
b52c0 74 27 29 3b 0a 0a 69 66 20 28 24 75 73 65 47 72 65 70 20 26 26 20 28 24 74 68 69 73 2d 3e 63 6f t');..if.($useGrep.&&.($this->co
b52e0 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 29 20 7b ntains.||.$this->notContains)).{
b5300 0a 24 67 72 65 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 67 72 65 70 27 29 3b 0a .$grep.=.$command->ins('grep');.
b5320 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 24 67 72 $this->buildContentFiltering($gr
b5340 65 70 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 ep,.$this->contains);.$this->bui
b5360 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 24 67 72 65 70 2c 20 24 74 68 69 73 2d ldContentFiltering($grep,.$this-
b5380 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 >notContains,.true);.}..if.($use
b53a0 53 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 72 74 69 6e 67 28 24 63 6f 6d Sort).{.$this->buildSorting($com
b53c0 6d 61 6e 64 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 7d 0a 0a 24 70 61 74 68 73 20 3d 20 mand,.$this->sort);.}..$paths.=.
b53e0 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 75 6e 69 71 27 $this->shell->testCommand('uniq'
b5400 29 20 3f 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 7c 20 75 6e 69 71 27 29 2d 3e 65 78 65 ).?.$command->add('|.uniq')->exe
b5420 63 75 74 65 28 29 20 3a 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 63 6f 6d 6d 61 6e 64 2d 3e cute().:.array_unique($command->
b5440 65 78 65 63 75 74 65 28 29 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 execute());.$iterator.=.new.Iter
b5460 61 74 6f 72 5c 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 28 24 70 61 74 68 73 2c 20 24 ator\FilePathsIterator($paths,.$
b5480 64 69 72 29 3b 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 69 74 dir);..if.($this->exclude).{.$it
b54a0 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 69 72 erator.=.new.Iterator\ExcludeDir
b54c0 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 2c 20 ectoryFilterIterator($iterator,.
b54e0 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 75 73 65 47 72 65 $this->exclude);.}..if.(!$useGre
b5500 70 20 26 26 20 28 24 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 p.&&.($this->contains.||.$this->
b5520 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 notContains)).{.$iterator.=.new.
b5540 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 Iterator\FilecontentFilterIterat
b5560 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 or($iterator,.$this->contains,.$
b5580 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 this->notContains);.}..if.($this
b55a0 2d 3e 66 69 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 ->filters).{.$iterator.=.new.Ite
b55c0 72 61 74 6f 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 rator\CustomFilterIterator($iter
b55e0 61 74 6f 72 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 21 24 ator,.$this->filters);.}..if.(!$
b5600 75 73 65 53 6f 72 74 20 26 26 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 7b 0a 24 69 74 65 72 61 useSort.&&.$this->sort).{.$itera
b5620 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 torAggregate.=.new.Iterator\Sort
b5640 61 62 6c 65 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 73 ableIterator($iterator,.$this->s
b5660 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 ort);.$iterator.=.$iteratorAggre
b5680 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 gate->getIterator();.}..return.$
b56a0 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 iterator;.}.....protected.functi
b56c0 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 on.canBeUsed().{.return.$this->s
b56e0 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 66 69 6e 64 27 29 3b 0a 7d 0a 0a 0a 0a hell->testCommand('find');.}....
b5700 0a 0a 0a 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 46 69 6e 64 ....protected.function.buildFind
b5720 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 0a Command(Command.$command,.$dir).
b5740 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 69 6e 73 28 27 66 69 6e 64 27 29 0a {.return.$command.->ins('find').
b5760 2d 3e 61 64 64 28 27 66 69 6e 64 20 27 29 0a 2d 3e 61 72 67 28 24 64 69 72 29 0a 2d 3e 61 64 64 ->add('find.').->arg($dir).->add
b5780 28 27 2d 6e 6f 6c 65 61 66 27 29 3b 20 0a 20 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 ('-noleaf');...}.......private.f
b57a0 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d unction.buildNamesFiltering(Comm
b57c0 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6e 61 6d 65 73 2c 20 24 6e 6f 74 and.$command,.array.$names,.$not
b57e0 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 6e 61 6d .=.false).{.if.(0.===.count($nam
b5800 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 es)).{.return;.}..$command->add(
b5820 24 6e 6f 74 20 3f 20 27 2d 6e 6f 74 27 20 3a 20 6e 75 6c 6c 29 2d 3e 63 6d 64 28 27 28 27 29 3b $not.?.'-not'.:.null)->cmd('(');
b5840 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 69 20 3d 3e 20 24 6e 61 6d 65 ..foreach.($names.as.$i.=>.$name
b5860 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 ).{.$expr.=.Expression::create($
b5880 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 47 6c 6f 62 28 29 20 26 26 name);....if.($expr->isGlob().&&
b58a0 20 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 69 73 45 78 70 61 6e 64 61 62 6c 65 28 .$expr->getGlob()->isExpandable(
b58c0 29 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 )).{.$expr.=.Expression::create(
b58e0 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 74 6f 52 65 67 65 78 28 66 61 6c 73 65 29 $expr->getGlob()->toRegex(false)
b5900 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 );.}........if.($expr->isRegex()
b5920 29 20 7b 0a 24 72 65 67 65 78 20 3d 20 24 65 78 70 72 2d 3e 67 65 74 52 65 67 65 78 28 29 3b 0a ).{.$regex.=.$expr->getRegex();.
b5940 24 72 65 67 65 78 2d 3e 70 72 65 70 65 6e 64 28 24 72 65 67 65 78 2d 3e 68 61 73 53 74 61 72 74 $regex->prepend($regex->hasStart
b5960 46 6c 61 67 28 29 20 3f 20 27 2f 27 20 3a 20 27 2f 5b 5e 2f 5d 2a 27 29 0a 2d 3e 73 65 74 53 74 Flag().?.'/'.:.'/[^/]*').->setSt
b5980 61 72 74 46 6c 61 67 28 66 61 6c 73 65 29 0a 2d 3e 73 65 74 53 74 61 72 74 4a 6f 6b 65 72 28 74 artFlag(false).->setStartJoker(t
b59a0 72 75 65 29 0a 2d 3e 72 65 70 6c 61 63 65 4a 6f 6b 65 72 73 28 27 5b 5e 2f 5d 27 29 3b 0a 69 66 rue).->replaceJokers('[^/]');.if
b59c0 20 28 21 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 46 6c 61 67 28 29 20 7c 7c 20 24 72 65 67 65 .(!$regex->hasEndFlag().||.$rege
b59e0 78 2d 3e 68 61 73 45 6e 64 4a 6f 6b 65 72 28 29 29 20 7b 0a 24 72 65 67 65 78 2d 3e 73 65 74 45 x->hasEndJoker()).{.$regex->setE
b5a00 6e 64 4a 6f 6b 65 72 28 66 61 6c 73 65 29 2d 3e 61 70 70 65 6e 64 28 27 5b 5e 2f 5d 2a 27 29 3b ndJoker(false)->append('[^/]*');
b5a20 0a 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d .}.}..$command.->add($i.>.0.?.'-
b5a40 6f 72 27 20 3a 20 6e 75 6c 6c 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 or'.:.null).->add($expr->isRegex
b5a60 28 29 0a 3f 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f ().?.($expr->isCaseSensitive().?
b5a80 20 27 2d 72 65 67 65 78 27 20 3a 20 27 2d 69 72 65 67 65 78 27 29 0a 3a 20 28 24 65 78 70 72 2d .'-regex'.:.'-iregex').:.($expr-
b5aa0 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d 6e 61 6d 65 27 20 3a 20 27 >isCaseSensitive().?.'-name'.:.'
b5ac0 2d 69 6e 61 6d 65 27 29 0a 29 0a 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 61 -iname').).->arg($expr->renderPa
b5ae0 74 74 65 72 6e 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 63 6d 64 28 27 29 27 29 3b ttern());.}..$command->cmd(')');
b5b00 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 64 .}........private.function.build
b5b20 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c PathsFiltering(Command.$command,
b5b40 20 24 64 69 72 2c 20 61 72 72 61 79 20 24 70 61 74 68 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 .$dir,.array.$paths,.$not.=.fals
b5b60 65 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 70 61 74 68 73 29 29 20 7b 0a e).{.if.(0.===.count($paths)).{.
b5b80 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 return;.}..$command->add($not.?.
b5ba0 27 2d 6e 6f 74 27 20 3a 20 6e 75 6c 6c 29 2d 3e 63 6d 64 28 27 28 27 29 3b 0a 0a 66 6f 72 65 61 '-not'.:.null)->cmd('(');..forea
b5bc0 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 69 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 65 78 ch.($paths.as.$i.=>.$path).{.$ex
b5be0 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 70 61 74 68 29 3b 0a pr.=.Expression::create($path);.
b5c00 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 47 6c 6f 62 28 29 20 26 26 20 24 65 78 70 72 2d ...if.($expr->isGlob().&&.$expr-
b5c20 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 69 73 45 78 70 61 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 65 >getGlob()->isExpandable()).{.$e
b5c40 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 2d 3e xpr.=.Expression::create($expr->
b5c60 67 65 74 47 6c 6f 62 28 29 2d 3e 74 6f 52 65 67 65 78 28 66 61 6c 73 65 29 29 3b 0a 7d 0a 0a 0a getGlob()->toRegex(false));.}...
b5c80 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 29 20 7b 0a 24 72 65 67 65 78 20 .if.($expr->isRegex()).{.$regex.
b5ca0 3d 20 24 65 78 70 72 2d 3e 67 65 74 52 65 67 65 78 28 29 3b 0a 24 72 65 67 65 78 2d 3e 70 72 65 =.$expr->getRegex();.$regex->pre
b5cc0 70 65 6e 64 28 24 72 65 67 65 78 2d 3e 68 61 73 53 74 61 72 74 46 6c 61 67 28 29 20 3f 20 24 64 pend($regex->hasStartFlag().?.$d
b5ce0 69 72 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3a 20 27 2e 2a 27 29 2d 3e ir.DIRECTORY_SEPARATOR.:.'.*')->
b5d00 73 65 74 45 6e 64 4a 6f 6b 65 72 28 21 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 46 6c 61 67 28 setEndJoker(!$regex->hasEndFlag(
b5d20 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 78 70 72 2d 3e 70 72 65 70 65 6e 64 28 27 2a 27 29 ));.}.else.{.$expr->prepend('*')
b5d40 2d 3e 61 70 70 65 6e 64 28 27 2a 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 ->append('*');.}..$command.->add
b5d60 28 24 69 20 3e 20 30 20 3f 20 27 2d 6f 72 27 20 3a 20 6e 75 6c 6c 29 0a 2d 3e 61 64 64 28 24 65 ($i.>.0.?.'-or'.:.null).->add($e
b5d80 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 0a 3f 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 xpr->isRegex().?.($expr->isCaseS
b5da0 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d 72 65 67 65 78 27 20 3a 20 27 2d 69 72 65 67 65 78 ensitive().?.'-regex'.:.'-iregex
b5dc0 27 29 0a 3a 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f ').:.($expr->isCaseSensitive().?
b5de0 20 27 2d 70 61 74 68 27 20 3a 20 27 2d 69 70 61 74 68 27 29 0a 29 0a 2d 3e 61 72 67 28 24 65 78 .'-path'.:.'-ipath').).->arg($ex
b5e00 70 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e pr->renderPattern());.}..$comman
b5e20 64 2d 3e 63 6d 64 28 27 29 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 d->cmd(')');.}......private.func
b5e40 74 69 6f 6e 20 62 75 69 6c 64 53 69 7a 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 tion.buildSizesFiltering(Command
b5e60 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 73 69 7a 65 73 29 0a 7b 0a 66 6f 72 65 61 .$command,.array.$sizes).{.forea
b5e80 63 68 20 28 24 73 69 7a 65 73 20 61 73 20 24 69 20 3d 3e 20 24 73 69 7a 65 29 20 7b 0a 24 63 6f ch.($sizes.as.$i.=>.$size).{.$co
b5ea0 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c mmand->add($i.>.0.?.'-and'.:.nul
b5ec0 6c 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 73 69 7a 65 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 l);..switch.($size->getOperator(
b5ee0 29 29 20 7b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d )).{.case.'<=':.$command->add('-
b5f00 73 69 7a 65 20 2d 27 20 2e 20 28 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 size.-'...($size->getTarget().+.
b5f20 31 29 20 2e 20 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 63 6f 1)...'c');.break;.case.'>=':.$co
b5f40 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e 20 28 24 73 69 7a 65 2d 3e 67 65 mmand->add('-size.+'..($size->ge
b5f60 74 54 61 72 67 65 74 28 29 20 2d 20 31 29 20 2e 20 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 tTarget().-.1)...'c');.break;.ca
b5f80 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 20 se.'>':.$command->add('-size.+'.
b5fa0 2e 20 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 63 27 29 3b 0a 62 72 65 ..$size->getTarget()...'c');.bre
b5fc0 61 6b 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 ak;.case.'!=':.$command->add('-s
b5fe0 69 7a 65 20 2d 27 20 2e 20 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 63 ize.-'...$size->getTarget()...'c
b6000 27 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 20 2e 20 24 73 ');.$command->add('-size.+'...$s
b6020 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 63 27 29 3b 0a 63 61 73 65 20 27 3c ize->getTarget()...'c');.case.'<
b6040 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 ':.default:.$command->add('-size
b6060 20 2d 27 20 2e 20 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 63 27 29 3b .-'...$size->getTarget()...'c');
b6080 0a 7d 0a 7d 0a 7d 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
b60a0 6c 64 44 61 74 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e ldDatesFiltering(Command.$comman
b60c0 64 2c 20 61 72 72 61 79 20 24 64 61 74 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 d,.array.$dates).{.foreach.($dat
b60e0 65 73 20 61 73 20 24 69 20 3d 3e 20 24 64 61 74 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 es.as.$i.=>.$date).{.$command->a
b6100 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 24 6d 69 dd($i.>.0.?.'-and'.:.null);..$mi
b6120 6e 73 20 3d 20 28 69 6e 74 29 20 72 6f 75 6e 64 28 28 74 69 6d 65 28 29 2d 24 64 61 74 65 2d 3e ns.=.(int).round((time()-$date->
b6140 67 65 74 54 61 72 67 65 74 28 29 29 20 2f 20 36 30 29 3b 0a 0a 69 66 20 28 30 20 3e 20 24 6d 69 getTarget())./.60);..if.(0.>.$mi
b6160 6e 73 29 20 7b 0a 0a 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 20 2d 6d 6d 69 6e 20 2d 30 ns).{...$command->add('.-mmin.-0
b6180 27 29 3b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 64 61 74 65 2d 3e ');...return;.}..switch.($date->
b61a0 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 63 6f 6d getOperator()).{.case.'<=':.$com
b61c0 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 20 2e 20 28 24 6d 69 6e 73 20 2d 20 31 mand->add('-mmin.+'...($mins.-.1
b61e0 29 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e ));.break;.case.'>=':.$command->
b6200 61 64 64 28 27 2d 6d 6d 69 6e 20 2d 27 20 2e 20 28 24 6d 69 6e 73 20 2b 20 31 29 29 3b 0a 62 72 add('-mmin.-'...($mins.+.1));.br
b6220 65 61 6b 3b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d eak;.case.'>':.$command->add('-m
b6240 6d 69 6e 20 2d 27 20 2e 20 24 6d 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 21 3d min.-'...$mins);.break;.case.'!=
b6260 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 20 2e 20 24 6d 69 ':.$command->add('-mmin.+'...$mi
b6280 6e 73 2e 27 20 2d 6f 72 20 2d 6d 6d 69 6e 20 2d 27 20 2e 20 24 6d 69 6e 73 29 3b 0a 62 72 65 61 ns.'.-or.-mmin.-'...$mins);.brea
b62a0 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e k;.case.'<':.default:.$command->
b62c0 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 20 2e 20 24 6d 69 6e 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a add('-mmin.+'...$mins);.}.}.}...
b62e0 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 53 6f 72 74 69 .....private.function.buildSorti
b6300 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 ng(Command.$command,.$sort).{.$t
b6320 68 69 73 2d 3e 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 his->buildFormatSorting($command
b6340 2c 20 24 73 6f 72 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 ,.$sort);.}......abstract.protec
b6360 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 ted.function.buildFormatSorting(
b6380 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 3b 0a 0a 0a 0a 0a 0a 0a Command.$command,.$sort);.......
b63a0 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 62 75 69 6c abstract.protected.function.buil
b63c0 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 dContentFiltering(Command.$comma
b63e0 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 nd,.array.$contains,.$not.=.fals
b6400 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 65 20 e);.}.<?php...........namespace.
b6420 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 41 64 61 70 74 65 72 Symfony\Component\Finder\Adapter
b6440 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 65 72 5c ;..use.Symfony\Component\Finder\
b6460 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 41 64 61 70 74 65 72 Iterator;.......class.PhpAdapter
b6480 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 75 .extends.AbstractAdapter.{....pu
b64a0 62 6c 69 63 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 72 79 28 blic.function.searchInDirectory(
b64c0 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 72 65 63 $dir).{.$flags.=.\RecursiveDirec
b64e0 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 28 24 74 toryIterator::SKIP_DOTS;..if.($t
b6500 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 20 5c 52 his->followLinks).{.$flags.|=.\R
b6520 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 4c 4c 4f ecursiveDirectoryIterator::FOLLO
b6540 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 77 20 5c W_SYMLINKS;.}..$iterator.=.new.\
b6560 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 77 20 49 RecursiveIteratorIterator(.new.I
b6580 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 72 61 74 terator\RecursiveDirectoryIterat
b65a0 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 74 65 72 or($dir,.$flags),.\RecursiveIter
b65c0 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 69 66 20 atorIterator::SELF_FIRST.);..if.
b65e0 28 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3e 20 30 20 7c 7c 20 24 74 68 69 73 2d 3e 6d ($this->minDepth.>.0.||.$this->m
b6600 61 78 44 65 70 74 68 20 3c 20 50 48 50 5f 49 4e 54 5f 4d 41 58 29 20 7b 0a 24 69 74 65 72 61 74 axDepth.<.PHP_INT_MAX).{.$iterat
b6620 6f 72 20 3d 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 or.=.new.Iterator\DepthRangeFilt
b6640 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 6d 69 6e erIterator($iterator,.$this->min
b6660 44 65 70 74 68 2c 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 Depth,.$this->maxDepth);.}..if.(
b6680 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 $this->mode).{.$iterator.=.new.I
b66a0 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 28 24 terator\FileTypeFilterIterator($
b66c0 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 iterator,.$this->mode);.}..if.($
b66e0 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 this->exclude).{.$iterator.=.new
b6700 20 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 .Iterator\ExcludeDirectoryFilter
b6720 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 65 78 63 6c 75 Iterator($iterator,.$this->exclu
b6740 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 20 7c 7c 20 24 74 68 69 de);.}..if.($this->names.||.$thi
b6760 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 s->notNames).{.$iterator.=.new.I
b6780 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 terator\FilenameFilterIterator($
b67a0 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 2c 20 24 74 68 69 73 2d 3e 6e iterator,.$this->names,.$this->n
b67c0 6f 74 4e 61 6d 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 otNames);.}..if.($this->contains
b67e0 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 20 7b 0a 24 69 74 65 72 61 .||.$this->notContains).{.$itera
b6800 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 tor.=.new.Iterator\FilecontentFi
b6820 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 63 lterIterator($iterator,.$this->c
b6840 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a ontains,.$this->notContains);.}.
b6860 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d .if.($this->sizes).{.$iterator.=
b6880 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 .new.Iterator\SizeRangeFilterIte
b68a0 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a rator($iterator,.$this->sizes);.
b68c0 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 61 74 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 }..if.($this->dates).{.$iterator
b68e0 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 .=.new.Iterator\DateRangeFilterI
b6900 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 64 61 74 65 73 29 terator($iterator,.$this->dates)
b6920 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 20 7b 0a 24 69 74 65 72 ;.}..if.($this->filters).{.$iter
b6940 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 ator.=.new.Iterator\CustomFilter
b6960 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 66 69 6c 74 65 Iterator($iterator,.$this->filte
b6980 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 7b 0a 24 69 74 65 72 rs);.}..if.($this->sort).{.$iter
b69a0 61 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 atorAggregate.=.new.Iterator\Sor
b69c0 74 61 62 6c 65 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 tableIterator($iterator,.$this->
b69e0 73 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 41 67 67 72 sort);.$iterator.=.$iteratorAggr
b6a00 65 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 egate->getIterator();.}..if.($th
b6a20 69 73 2d 3e 70 61 74 68 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 20 7b 0a is->paths.||.$this->notPaths).{.
b6a40 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 50 61 74 68 46 69 6c $iterator.=.new.Iterator\PathFil
b6a60 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 70 61 terIterator($iterator,.$this->pa
b6a80 74 68 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ths,.$this->notPaths);.}..return
b6aa0 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$iterator;.}.....public.functio
b6ac0 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 70 68 70 27 3b 0a 7d 0a 0a 0a n.getName().{.return.'php';.}...
b6ae0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 ..protected.function.canBeUsed()
b6b00 0a 7b 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 0a 0a 0a 0a .{.return.true;.}.}.<?php.......
b6b20 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\
b6b40 46 69 6e 64 65 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 0a 63 Finder;........................c
b6b60 6c 61 73 73 20 47 6c 6f 62 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 lass.Glob.{..........public.stat
b6b80 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 67 6c 6f 62 2c 20 24 73 74 72 69 ic.function.toRegex($glob,.$stri
b6ba0 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 74 72 69 63 74 57 69 6c 64 ctLeadingDot.=.true,.$strictWild
b6bc0 63 61 72 64 53 6c 61 73 68 20 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d cardSlash.=.true).{.$firstByte.=
b6be0 20 74 72 75 65 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 24 69 6e 43 75 72 .true;.$escaping.=.false;.$inCur
b6c00 6c 69 65 73 20 3d 20 30 3b 0a 24 72 65 67 65 78 20 3d 20 27 27 3b 0a 24 73 69 7a 65 47 6c 6f 62 lies.=.0;.$regex.=.'';.$sizeGlob
b6c20 20 3d 20 73 74 72 6c 65 6e 28 24 67 6c 6f 62 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 .=.strlen($glob);.for.($i.=.0;.$
b6c40 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 61 72 20 3d 20 24 67 i.<.$sizeGlob;.$i++).{.$car.=.$g
b6c60 6c 6f 62 5b 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 65 29 20 7b 0a 69 66 20 28 24 lob[$i];.if.($firstByte).{.if.($
b6c80 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 61 72 strictLeadingDot.&&.'.'.!==.$car
b6ca0 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e 5d 29 27 3b 0a 7d 0a 0a 24 66 ).{.$regex..=.'(?=[^\.])';.}..$f
b6cc0 69 72 73 74 42 79 74 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d irstByte.=.false;.}..if.('/'.===
b6ce0 20 24 63 61 72 29 20 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 .$car).{.$firstByte.=.true;.}..i
b6d00 66 20 28 27 2e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 28 27 20 3d 3d 3d 20 24 63 61 72 20 f.('.'.===.$car.||.'('.===.$car.
b6d20 7c 7c 20 27 29 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 7c 27 20 3d 3d 3d 20 24 63 61 72 20 ||.')'.===.$car.||.'|'.===.$car.
b6d40 7c 7c 20 27 2b 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 5e 27 20 3d 3d 3d 20 24 63 61 72 20 ||.'+'.===.$car.||.'^'.===.$car.
b6d60 7c 7c 20 27 24 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 22 5c 5c ||.'$'.===.$car).{.$regex..=."\\
b6d80 24 63 61 72 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2a 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b $car";.}.elseif.('*'.===.$car).{
b6da0 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 2a 27 20 3a 20 28 .$regex..=.$escaping.?.'\\*'.:.(
b6dc0 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 2a 27 20 3a $strictWildcardSlash.?.'[^/]*'.:
b6de0 20 27 2e 2a 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3f 27 20 3d 3d 3d 20 24 63 61 72 29 20 .'.*');.}.elseif.('?'.===.$car).
b6e00 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 5c 5c 3f 27 20 3a 20 {.$regex..=.$escaping.?.'\\?'.:.
b6e20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 27 20 3a ($strictWildcardSlash.?.'[^/]'.:
b6e40 20 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b .'.');.}.elseif.('{'.===.$car).{
b6e60 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 7b 27 20 3a 20 27 .$regex..=.$escaping.?.'\\{'.:.'
b6e80 28 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2b 2b 24 69 6e 43 75 72 6c 69 (';.if.(!$escaping).{.++$inCurli
b6ea0 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 7d 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 es;.}.}.elseif.('}'.===.$car.&&.
b6ec0 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e $inCurlies).{.$regex..=.$escapin
b6ee0 67 20 3f 20 27 7d 27 20 3a 20 27 29 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b g.?.'}'.:.')';.if.(!$escaping).{
b6f00 0a 2d 2d 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 2c 27 20 3d .--$inCurlies;.}.}.elseif.(','.=
b6f20 3d 3d 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 ==.$car.&&.$inCurlies).{.$regex.
b6f40 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 2c 27 20 3a 20 27 7c 27 3b 0a 7d 20 65 6c 73 65 .=.$escaping.?.','.:.'|';.}.else
b6f60 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 69 66 20 28 24 65 73 63 61 70 69 if.('\\'.===.$car).{.if.($escapi
b6f80 6e 67 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 3b 0a 24 65 73 63 61 70 69 6e ng).{.$regex..=.'\\\\';.$escapin
b6fa0 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 g.=.false;.}.else.{.$escaping.=.
b6fc0 74 72 75 65 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 67 true;.}..continue;.}.else.{.$reg
b6fe0 65 78 20 2e 3d 20 24 63 61 72 3b 0a 7d 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b ex..=.$car;.}.$escaping.=.false;
b7000 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 23 5e 27 2e 24 72 65 67 65 78 2e 27 24 23 27 3b 0a 7d 0a 7d .}..return.'#^'.$regex.'$#';.}.}
b7020 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
b7040 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 0a ny\Component\Finder\Iterator;...
b7060 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 ....class.DepthRangeFilterIterat
b7080 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 or.extends.FilterIterator.{.priv
b70a0 61 74 65 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ate.$minDepth.=.0;.........publi
b70c0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 52 65 63 75 72 73 69 76 c.function.__construct(\Recursiv
b70e0 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 24 6d 69 eIteratorIterator.$iterator,.$mi
b7100 6e 44 65 70 74 68 20 3d 20 30 2c 20 24 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f nDepth.=.0,.$maxDepth.=.PHP_INT_
b7120 4d 41 58 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 6d 69 6e 44 65 70 MAX).{.$this->minDepth.=.$minDep
b7140 74 68 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 73 65 74 4d 61 78 44 65 70 74 68 28 50 48 50 5f 49 th;.$iterator->setMaxDepth(PHP_I
b7160 4e 54 5f 4d 41 58 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 78 NT_MAX.===.$maxDepth.?.-1.:.$max
b7180 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 74 Depth);..parent::__construct($it
b71a0 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
b71c0 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 6e .accept().{.return.$this->getInn
b71e0 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 69 erIterator()->getDepth().>=.$thi
b7200 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 0a s->minDepth;.}.}.<?php..........
b7220 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
b7240 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 62 der\Iterator;.......class.Sortab
b7260 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 41 leIterator.implements.\IteratorA
b7280 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 20 ggregate.{.const.SORT_BY_NAME.=.
b72a0 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 74 1;.const.SORT_BY_TYPE.=.2;.const
b72c0 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 73 .SORT_BY_ACCESSED_TIME.=.3;.cons
b72e0 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 73 t.SORT_BY_CHANGED_TIME.=.4;.cons
b7300 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 72 t.SORT_BY_MODIFIED_TIME.=.5;..pr
b7320 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 0a ivate.$iterator;.private.$sort;.
b7340 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
b7360 72 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 ruct(\Traversable.$iterator,.$so
b7380 72 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 rt).{.$this->iterator.=.$iterato
b73a0 72 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 r;..if.(self::SORT_BY_NAME.===.$
b73c0 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 6e 20 28 sort).{.$this->sort.=.function.(
b73e0 24 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 $a,.$b).{.return.strcmp($a->getR
b7400 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 68 28 29 29 3b 0a 7d ealpath(),.$b->getRealpath());.}
b7420 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 5f 54 59 50 45 20 3d ;.}.elseif.(self::SORT_BY_TYPE.=
b7440 3d 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 ==.$sort).{.$this->sort.=.functi
b7460 6f 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 on.($a,.$b).{.if.($a->isDir().&&
b7480 20 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 .$b->isFile()).{.return.-1;.}.el
b74a0 73 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 seif.($a->isFile().&&.$b->isDir(
b74c0 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 73 74 72 63 6d 70 28 )).{.return.1;.}..return.strcmp(
b74e0 24 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 $a->getRealpath(),.$b->getRealpa
b7500 74 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 th());.};.}.elseif.(self::SORT_B
b7520 59 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 Y_ACCESSED_TIME.===.$sort).{.$th
b7540 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
b7560 65 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 eturn.($a->getATime().>.$b->getA
b7580 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
b75a0 5f 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 _BY_CHANGED_TIME.===.$sort).{.$t
b75c0 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 0a his->sort.=.function.($a,.$b).{.
b75e0 72 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 return.($a->getCTime().>.$b->get
b7600 43 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 CTime());.};.}.elseif.(self::SOR
b7620 54 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 T_BY_MODIFIED_TIME.===.$sort).{.
b7640 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 61 2c 20 24 62 29 20 $this->sort.=.function.($a,.$b).
b7660 7b 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 {.return.($a->getMTime().>.$b->g
b7680 65 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 etMTime());.};.}.elseif.(is_call
b76a0 61 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 able($sort)).{.$this->sort.=.$so
b76c0 72 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 rt;.}.else.{.throw.new.\InvalidA
b76e0 72 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 rgumentException('The.SortableIt
b7700 65 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 erator.takes.a.PHP.callback.or.a
b7720 20 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 .valid.built-in.sort.algorithm.a
b7740 73 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 s.an.argument.');.}.}..public.fu
b7760 6e 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 nction.getIterator().{.$array.=.
b7780 69 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 iterator_to_array($this->iterato
b77a0 72 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 r,.true);.uasort($array,.$this->
b77c0 73 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 sort);..return.new.\ArrayIterato
b77e0 72 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 r($array);.}.}.<?php...........n
b7800 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 64 65 amespace.Symfony\Component\Finde
b7820 72 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 r\Iterator;........class.Filecon
b7840 74 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 tentFilterIterator.extends.Multi
b7860 70 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 plePcreFilterIterator.{......pub
b7880 6c 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 lic.function.accept().{.if.(!$th
b78a0 69 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 is->matchRegexps.&&.!$this->noMa
b78c0 74 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 tchRegexps).{.return.true;.}..$f
b78e0 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 0a 69 66 20 ileinfo.=.$this->current();..if.
b7900 28 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 ($fileinfo->isDir().||.!$fileinf
b7920 6f 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 o->isReadable()).{.return.false;
b7940 0a 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 .}..$content.=.$fileinfo->getCon
b7960 74 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 tents();.if.(!$content).{.return
b7980 20 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 .false;.}....foreach.($this->noM
b79a0 61 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 atchRegexps.as.$regex).{.if.(pre
b79c0 67 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 g_match($regex,.$content)).{.ret
b79e0 75 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 urn.false;.}.}....$match.=.true;
b7a00 0a 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 .if.($this->matchRegexps).{.$mat
b7a20 63 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 ch.=.false;.foreach.($this->matc
b7a40 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 5f 6d hRegexps.as.$regex).{.if.(preg_m
b7a60 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 72 6e atch($regex,.$content)).{.return
b7a80 20 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 .true;.}.}.}..return.$match;.}..
b7aa0 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 74 6f 52 65 67 65 .......protected.function.toRege
b7ac0 78 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 x($str).{.return.$this->isRegex(
b7ae0 24 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 $str).?.$str.:.'/'.preg_quote($s
b7b00 74 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 tr,.'/').'/';.}.}.<?php.........
b7b20 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
b7b40 6e 64 65 72 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 nder\Iterator;..use.Symfony\Comp
b7b60 6f 6e 65 6e 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 onent\Finder\SplFileInfo;.......
b7b80 63 6c 61 73 73 20 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 class.FilePathsIterator.extends.
b7ba0 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 61 73 \ArrayIterator.{....private.$bas
b7bc0 65 44 69 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 4c 65 6e 67 74 68 eDir;.....private.$baseDirLength
b7be0 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 75 62 50 61 74 68 3b 0a 0a 0a 0a 0a 70 72 69 76 ;.....private.$subPath;.....priv
b7c00 61 74 65 20 24 73 75 62 50 61 74 68 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 ate.$subPathname;.....private.$c
b7c20 75 72 72 65 6e 74 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 urrent;......public.function.__c
b7c40 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 61 74 68 73 2c 20 24 62 61 73 65 44 69 72 29 onstruct(array.$paths,.$baseDir)
b7c60 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 20 24 62 61 73 65 44 69 72 3b 0a 24 74 .{.$this->baseDir.=.$baseDir;.$t
b7c80 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 62 61 73 his->baseDirLength.=.strlen($bas
b7ca0 65 44 69 72 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 70 61 74 eDir);..parent::__construct($pat
b7cc0 68 73 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 5f 5f hs);.}........public.function.__
b7ce0 63 61 6c 6c 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 29 0a 7b 0a call($name,.array.$arguments).{.
b7d00 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 61 72 72 61 return.call_user_func_array(arra
b7d20 79 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2c 20 24 6e 61 6d 65 29 2c 20 24 61 72 67 y($this->current(),.$name),.$arg
b7d40 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 74 69 6f 6e uments);.}.......public.function
b7d60 20 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 63 75 72 72 65 .current().{.return.$this->curre
b7d80 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a nt;.}.....public.function.key().
b7da0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2d 3e 67 65 74 50 61 74 68 {.return.$this->current->getPath
b7dc0 6e 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 6e 65 78 74 28 name();.}..public.function.next(
b7de0 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 6e 65 78 74 28 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 ).{.parent::next();.$this->build
b7e00 50 72 6f 70 65 72 74 69 65 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Properties();.}..public.function
b7e20 20 72 65 77 69 6e 64 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 24 74 .rewind().{.parent::rewind();.$t
b7e40 68 69 73 2d 3e 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 his->buildProperties();.}.....pu
b7e60 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 62 50 61 74 68 28 29 0a 7b 0a 72 65 74 blic.function.getSubPath().{.ret
b7e80 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 urn.$this->subPath;.}.....public
b7ea0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 0a 7b 0a 72 65 74 .function.getSubPathname().{.ret
b7ec0 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 70 72 69 76 61 urn.$this->subPathname;.}..priva
b7ee0 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 28 29 0a 7b 0a te.function.buildProperties().{.
b7f00 24 61 62 73 6f 6c 75 74 65 50 61 74 68 20 3d 20 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 $absolutePath.=.parent::current(
b7f20 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 3d 3d 20 73 75 62 73 74 );..if.($this->baseDir.===.subst
b7f40 72 28 24 61 62 73 6f 6c 75 74 65 50 61 74 68 2c 20 30 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 44 r($absolutePath,.0,.$this->baseD
b7f60 69 72 4c 65 6e 67 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 20 irLength)).{.$this->subPathname.
b7f80 3d 20 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 61 62 73 6f 6c 75 74 65 50 61 74 68 2c 20 24 74 =.ltrim(substr($absolutePath,.$t
b7fa0 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e 67 74 68 29 2c 20 27 2f 5c 5c 27 29 3b 0a 24 64 69 his->baseDirLength),.'/\\');.$di
b7fc0 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 29 3b r.=.dirname($this->subPathname);
b7fe0 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 20 3d 20 27 2e 27 20 3d 3d 3d 20 24 64 69 72 20 3f .$this->subPath.=.'.'.===.$dir.?
b8000 20 27 27 20 3a 20 24 64 69 72 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 75 62 50 .''.:.$dir;.}.else.{.$this->subP
b8020 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 27 27 3b 0a 7d ath.=.$this->subPathname.=.'';.}
b8040 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e ..$this->current.=.new.SplFileIn
b8060 66 6f 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 2c 20 24 74 68 69 73 2d 3e 73 75 62 fo(parent::current(),.$this->sub
b8080 50 61 74 68 2c 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 3c Path,.$this->subPathname);.}.}.<
b80a0 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
b80c0 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 75 73 65 \Component\Finder\Iterator;..use
b80e0 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 6d 70 61 72 .Symfony\Component\Finder\Compar
b8100 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 ator\NumberComparator;.......cla
b8120 73 73 20 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e ss.SizeRangeFilterIterator.exten
b8140 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d ds.FilterIterator.{.private.$com
b8160 70 61 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 parators.=.array();........publi
b8180 63 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 c.function.__construct(\Iterator
b81a0 20 24 69 74 65 72 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 .$iterator,.array.$comparators).
b81c0 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 {.$this->comparators.=.$comparat
b81e0 6f 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 72 61 ors;..parent::__construct($itera
b8200 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 61 63 tor);.}.......public.function.ac
b8220 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 72 72 cept().{.$fileinfo.=.$this->curr
b8240 65 6e 74 28 29 3b 0a 69 66 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 ent();.if.(!$fileinfo->isFile())
b8260 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 73 69 7a 65 20 3d 20 24 .{.return.true;.}..$filesize.=.$
b8280 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 53 69 7a 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 fileinfo->getSize();.foreach.($t
b82a0 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a his->comparators.as.$compare).{.
b82c0 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 73 69 7a 65 29 29 20 if.(!$compare->test($filesize)).
b82e0 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 75 65 {.return.false;.}.}..return.true
b8300 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.
b8320 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 74 6f Symfony\Component\Finder\Iterato
b8340 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 r;.......class.ExcludeDirectoryF
b8360 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 ilterIterator.extends.FilterIter
b8380 61 74 6f 72 0a 7b 0a 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 ator.{.private.$patterns;.......
b83a0 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 5c 49 74 .public.function.__construct(\It
b83c0 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 64 69 72 65 63 74 6f erator.$iterator,.array.$directo
b83e0 72 69 65 73 29 0a 7b 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 ries).{.$this->patterns.=.array(
b8400 29 3b 0a 66 6f 72 65 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 );.foreach.($directories.as.$dir
b8420 65 63 74 6f 72 79 29 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 ectory).{.$this->patterns[].=.'#
b8440 28 5e 7c 2f 29 27 2e 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 (^|/)'.preg_quote($directory,.'#
b8460 27 29 2e 27 28 2f 7c 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 ').'(/|$)#';.}..parent::__constr
b8480 75 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 uct($iterator);.}.......public.f
b84a0 75 6e 63 74 69 6f 6e 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 unction.accept().{.$path.=.$this
b84c0 2d 3e 69 73 44 69 72 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 ->isDir().?.$this->current()->ge
b84e0 74 52 65 6c 61 74 69 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 tRelativePathname().:.$this->cur
b8500 72 65 6e 74 28 29 2d 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 rent()->getRelativePath();.$path
b8520 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 66 6f 72 65 .=.strtr($path,.'\\',.'/');.fore
b8540 61 63 68 20 28 24 74 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 ach.($this->patterns.as.$pattern
b8560 29 20 7b 0a 69 66 20 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 ).{.if.(preg_match($pattern,.$pa
b8580 74 68 29 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 th)).{.return.false;.}.}..return
b85a0 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 6d 65 73 .true;.}.}.<?php...........names
b85c0 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 74 pace.Symfony\Component\Finder\It
b85e0 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 46 erator;.........abstract.class.F
b8600 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 49 74 65 ilterIterator.extends.\FilterIte
b8620 72 61 74 6f 72 0a 7b 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 rator.{.......public.function.re
b8640 77 69 6e 64 28 29 0a 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 3b 0a 77 68 69 6c wind().{.$iterator.=.$this;.whil
b8660 65 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 4f 75 74 65 72 49 74 e.($iterator.instanceof.\OuterIt
b8680 65 72 61 74 6f 72 29 20 7b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 erator).{.if.($iterator->getInne
b86a0 72 49 74 65 72 61 74 6f 72 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 46 69 6c 65 73 79 73 74 rIterator().instanceof.\Filesyst
b86c0 65 6d 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 emIterator).{.$iterator->getInne
b86e0 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 6e 65 78 74 28 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e rIterator()->next();.$iterator->
b8700 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a getInnerIterator()->rewind();.}.
b8720 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 $iterator.=.$iterator->getInnerI
b8740 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a terator();.}..parent::rewind();.
b8760 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
b8780 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;
b87a0 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 65 72 5c 45 ..use.Symfony\Component\Finder\E
b87c0 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 xpression\Expression;.......abst
b87e0 72 61 63 74 20 63 6c 61 73 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 ract.class.MultiplePcreFilterIte
b8800 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 rator.extends.FilterIterator.{.p
b8820 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 70 72 6f 74 65 63 74 65 rotected.$matchRegexps;.protecte
b8840 64 20 24 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 d.$noMatchRegexps;.........publi
b8860 63 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 c.function.__construct(\Iterator
b8880 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 .$iterator,.array.$matchPatterns
b88a0 2c 20 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 29 0a 7b 0a 24 74 68 69 ,.array.$noMatchPatterns).{.$thi
b88c0 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 s->matchRegexps.=.array();.forea
b88e0 63 68 20 28 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 ch.($matchPatterns.as.$pattern).
b8900 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 2d {.$this->matchRegexps[].=.$this-
b8920 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 6f >toRegex($pattern);.}..$this->no
b8940 4d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 MatchRegexps.=.array();.foreach.
b8960 28 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b ($noMatchPatterns.as.$pattern).{
b8980 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 .$this->noMatchRegexps[].=.$this
b89a0 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a ->toRegex($pattern);.}..parent::
b89c0 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 0a 0a 0a 0a 0a 0a __construct($iterator);.}.......
b89e0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 67 65 78 28 24 73 74 ..protected.function.isRegex($st
b8a00 72 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 r).{.return.Expression::create($
b8a20 73 74 72 29 2d 3e 69 73 52 65 67 65 78 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 str)->isRegex();.}.........abstr
b8a40 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 65 78 28 24 act.protected.function.toRegex($
b8a60 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 73 70 61 63 str);.}.<?php...........namespac
b8a80 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
b8aa0 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 6c 74 65 72 tor;..........class.CustomFilter
b8ac0 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a Iterator.extends.FilterIterator.
b8ae0 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 29 3b 0a 0a 0a {.private.$filters.=.array();...
b8b00 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
b8b20 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 66 ct(\Iterator.$iterator,.array.$f
b8b40 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 73 20 24 ilters).{.foreach.($filters.as.$
b8b60 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 69 6c 74 filter).{.if.(!is_callable($filt
b8b80 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 6d 65 6e er)).{.throw.new.\InvalidArgumen
b8ba0 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 61 63 6b tException('Invalid.PHP.callback
b8bc0 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 6c 74 65 .');.}.}.$this->filters.=.$filte
b8be0 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 72 61 74 rs;..parent::__construct($iterat
b8c00 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 61 63 63 or);.}.......public.function.acc
b8c20 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 72 72 65 ept().{.$fileinfo.=.$this->curre
b8c40 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 73 20 61 nt();..foreach.($this->filters.a
b8c60 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 6c 6c 5f s.$filter).{.if.(false.===.call_
b8c80 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 29 20 7b user_func($filter,.$fileinfo)).{
b8ca0 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 75 65 3b .return.false;.}.}..return.true;
b8cc0 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
b8ce0 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 74 6f 72 ymfony\Component\Finder\Iterator
b8d00 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 65 72 5c ;..use.Symfony\Component\Finder\
b8d20 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 Expression\Expression;.......cla
b8d40 73 73 20 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 ss.FilenameFilterIterator.extend
b8d60 73 20 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 0a 7b 0a 0a s.MultiplePcreFilterIterator.{..
b8d80 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 0a .....public.function.accept().{.
b8da0 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 $filename.=.$this->current()->ge
b8dc0 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e tFilename();....foreach.($this->
b8de0 6e 6f 4d 61 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 noMatchRegexps.as.$regex).{.if.(
b8e00 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b preg_match($regex,.$filename)).{
b8e20 0a 72 65 74 75 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 .return.false;.}.}....$match.=.t
b8e40 72 75 65 3b 0a 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 rue;.if.($this->matchRegexps).{.
b8e60 24 6d 61 74 63 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 $match.=.false;.foreach.($this->
b8e80 6d 61 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 matchRegexps.as.$regex).{.if.(pr
b8ea0 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 eg_match($regex,.$filename)).{.r
b8ec0 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 24 6d 61 74 63 68 eturn.true;.}.}.}..return.$match
b8ee0 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 6e 63 74 69 6f ;.}............protected.functio
b8f00 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 n.toRegex($str).{.return.Express
b8f20 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 73 74 72 29 2d 3e 67 65 74 52 65 67 65 78 28 29 2d 3e 72 ion::create($str)->getRegex()->r
b8f40 65 6e 64 65 72 28 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 ender();.}.}.<?php...........nam
b8f60 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 5c espace.Symfony\Component\Finder\
b8f80 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 74 Iterator;..use.Symfony\Component
b8fa0 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f \Finder\Comparator\DateComparato
b8fc0 72 3b 0a 0a 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 r;.......class.DateRangeFilterIt
b8fe0 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a erator.extends.FilterIterator.{.
b9000 70 72 69 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 private.$comparators.=.array();.
b9020 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
b9040 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 63 ct(\Iterator.$iterator,.array.$c
b9060 6f 6d 70 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 omparators).{.$this->comparators
b9080 20 3d 20 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 .=.$comparators;..parent::__cons
b90a0 74 72 75 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 truct($iterator);.}.......public
b90c0 20 66 75 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 .function.accept().{.$fileinfo.=
b90e0 20 24 74 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 .$this->current();..if.(!$filein
b9100 66 6f 2d 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 fo->isFile()).{.return.true;.}..
b9120 24 66 69 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 $filedate.=.$fileinfo->getMTime(
b9140 29 3b 0a 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 );.foreach.($this->comparators.a
b9160 73 20 24 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 s.$compare).{.if.(!$compare->tes
b9180 74 28 24 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 t($filedate)).{.return.false;.}.
b91a0 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 0a 0a 0a 0a }..return.true;.}.}.<?php.......
b91c0 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\
b91e0 46 69 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 46 69 6c Finder\Iterator;.......class.Fil
b9200 65 54 79 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 46 69 6c 74 eTypeFilterIterator.extends.Filt
b9220 65 72 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 erIterator.{.const.ONLY_FILES.=.
b9240 31 3b 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 1;.const.ONLY_DIRECTORIES.=.2;..
b9260 70 72 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 private.$mode;........public.fun
b9280 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 24 69 74 65 ction.__construct(\Iterator.$ite
b92a0 72 61 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 rator,.$mode).{.$this->mode.=.$m
b92c0 6f 64 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 ode;..parent::__construct($itera
b92e0 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 61 63 tor);.}.......public.function.ac
b9300 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 72 72 cept().{.$fileinfo.=.$this->curr
b9320 65 6e 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 ent();.if.(self::ONLY_DIRECTORIE
b9340 53 20 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 S.===.(self::ONLY_DIRECTORIES.&.
b9360 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 3e 69 73 46 69 6c $this->mode).&&.$fileinfo->isFil
b9380 65 28 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 e()).{.return.false;.}.elseif.(s
b93a0 65 6c 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 elf::ONLY_FILES.===.(self::ONLY_
b93c0 46 49 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 FILES.&.$this->mode).&&.$fileinf
b93e0 6f 2d 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 o->isDir()).{.return.false;.}..r
b9400 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 0a eturn.true;.}.}.<?php...........
b9420 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 64 namespace.Symfony\Component\Find
b9440 65 72 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 er\Iterator;..use.Symfony\Compon
b9460 65 6e 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 ent\Finder\SplFileInfo;.......cl
b9480 61 73 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 ass.RecursiveDirectoryIterator.e
b94a0 78 74 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 xtends.\RecursiveDirectoryIterat
b94c0 6f 72 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 or.{.public.function.__construct
b94e0 28 24 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 ($path,.$flags).{.if.($flags.&.(
b9500 73 65 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 self::CURRENT_AS_PATHNAME.|.self
b9520 3a 3a 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 ::CURRENT_AS_SELF)).{.throw.new.
b9540 5c 52 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 \RuntimeException('This.iterator
b9560 20 6f 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 .only.support.returning.current.
b9580 61 73 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 as.fileinfo.');.}..parent::__con
b95a0 73 74 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 struct($path,.$flags);.}.......p
b95c0 75 62 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 ublic.function.current().{.retur
b95e0 6e 20 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 n.new.SplFileInfo(parent::curren
b9600 74 28 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 t()->getPathname(),.$this->getSu
b9620 62 50 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 bPath(),.$this->getSubPathname()
b9640 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
b9660 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 74 .Symfony\Component\Finder\Iterat
b9680 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 or;........class.PathFilterItera
b96a0 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 tor.extends.MultiplePcreFilterIt
b96c0 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 erator.{.......public.function.a
b96e0 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 ccept().{.$filename.=.$this->cur
b9700 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 3b 0a 0a rent()->getRelativePathname();..
b9720 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 4f 4e if.(defined('PHP_WINDOWS_VERSION
b9740 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 73 74 72 74 72 28 24 66 _MAJOR')).{.$filename.=.strtr($f
b9760 69 6c 65 6e 61 6d 65 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 ilename,.'\\',.'/');.}....foreac
b9780 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 h.($this->noMatchRegexps.as.$reg
b97a0 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 78 2c 20 24 66 69 ex).{.if.(preg_match($regex,.$fi
b97c0 6c 65 6e 61 6d 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 0a 20 lename)).{.return.false;.}.}....
b97e0 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 $match.=.true;.if.($this->matchR
b9800 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 egexps).{.$match.=.false;.foreac
b9820 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 h.($this->matchRegexps.as.$regex
b9840 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 ).{.if.(preg_match($regex,.$file
b9860 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 name)).{.return.true;.}.}.}..ret
b9880 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f urn.$match;.}................pro
b98a0 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 29 0a 7b 0a tected.function.toRegex($str).{.
b98c0 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 3f 20 24 73 return.$this->isRegex($str).?.$s
b98e0 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 74 72 2c 20 27 2f 27 29 2e 27 tr.:.'/'.preg_quote($str,.'/').'
b9900 2f 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 /';.}.}.<?php...........namespac
b9920 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 6d 70 61 e.Symfony\Component\Finder\Compa
b9940 72 61 74 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 rator;.......class.DateComparato
b9960 72 20 65 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 r.extends.Comparator.{.........p
b9980 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 74 65 73 74 ublic.function.__construct($test
b99a0 29 0a 7b 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 ).{.if.(!preg_match('#^\s*(==|!=
b99c0 7c 5b 3c 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 |[<>]=?|after|since|before|until
b99e0 29 3f 5c 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 )?\s*(.+?)\s*$#i',.$test,.$match
b9a00 65 73 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 es)).{.throw.new.\InvalidArgumen
b9a20 74 45 78 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 tException(sprintf('Don\'t.under
b9a40 73 74 61 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 stand."%s".as.a.date.test.',.$te
b9a60 73 74 29 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 st));.}..try.{.$date.=.new.\Date
b9a80 54 69 6d 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 Time($matches[2]);.$target.=.$da
b9aa0 74 65 2d 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 te->format('U');.}.catch.(\Excep
b9ac0 74 69 6f 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 tion.$e).{.throw.new.\InvalidArg
b9ae0 75 6d 65 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 umentException(sprintf('"%s".is.
b9b00 6e 6f 74 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 not.a.valid.date.',.$matches[2])
b9b20 29 3b 0a 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 );.}..$operator.=.isset($matches
b9b40 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 3b 0a 69 66 20 28 27 [1]).?.$matches[1].:.'==';.if.('
b9b60 73 69 6e 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 since'.===.$operator.||.'after'.
b9b80 3d 3d 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 3e 27 ===.$operator).{.$operator.=.'>'
b9ba0 3b 0a 7d 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 ;.}..if.('until'.===.$operator.|
b9bc0 7c 20 27 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 |.'before'.===.$operator).{.$ope
b9be0 72 61 74 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 rator.=.'<';.}..$this->setOperat
b9c00 6f 72 28 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 or($operator);.$this->setTarget(
b9c20 24 74 61 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 $target);.}.}.<?php...........na
b9c40 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
b9c60 5c 43 6f 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 \Comparator;....................
b9c80 0a 0a 0a 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 ....class.NumberComparator.exten
b9ca0 64 73 20 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 ds.Comparator.{........public.fu
b9cc0 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 0a 69 66 20 28 nction.__construct($test).{.if.(
b9ce0 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 3e 5d 3d 3f 29 !preg_match('#^\s*(==|!=|[<>]=?)
b9d00 3f 5c 73 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 ?\s*([0-9\.]+)\s*([kmg]i?)?\s*$#
b9d20 69 27 2c 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 i',.$test,.$matches)).{.throw.ne
b9d40 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
b9d60 6e 74 66 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 ntf('Don\'t.understand."%s".as.a
b9d80 20 6e 75 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 .number.test.',.$test));.}..$tar
b9da0 67 65 74 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 get.=.$matches[2];.if.(!is_numer
b9dc0 69 63 28 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 ic($target)).{.throw.new.\Invali
b9de0 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 49 6e 76 61 dArgumentException(sprintf('Inva
b9e00 6c 69 64 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 lid.number."%s".',.$target));.}.
b9e20 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 0a 20 73 77 69 74 if.(isset($matches[3])).{...swit
b9e40 63 68 20 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 ch.(strtolower($matches[3])).{.c
b9e60 61 73 65 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 ase.'k':.$target.*=.1000;.break;
b9e80 0a 63 61 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 .case.'ki':.$target.*=.1024;.bre
b9ea0 61 6b 3b 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 ak;.case.'m':.$target.*=.1000000
b9ec0 3b 0a 62 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 ;.break;.case.'mi':.$target.*=.1
b9ee0 30 32 34 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 024*1024;.break;.case.'g':.$targ
b9f00 65 74 20 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 et.*=.1000000000;.break;.case.'g
b9f20 69 27 3a 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 i':.$target.*=.1024*1024*1024;.b
b9f40 72 65 61 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 reak;.}.}..$this->setTarget($tar
b9f60 67 65 74 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 get);.$this->setOperator(isset($
b9f80 6d 61 74 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 matches[1]).?.$matches[1].:.'=='
b9fa0 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
b9fc0 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 6d 70 61 72 .Symfony\Component\Finder\Compar
b9fe0 61 74 6f 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 ator;.......class.Comparator.{.p
ba000 72 69 76 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 rivate.$target;.private.$operato
ba020 72 20 3d 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 r.=.'==';.......public.function.
ba040 67 65 74 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 getTarget().{.return.$this->targ
ba060 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 73 65 74 54 et;.}.......public.function.setT
ba080 61 72 67 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 arget($target).{.$this->target.=
ba0a0 20 24 74 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 .$target;.}.......public.functio
ba0c0 6e 20 67 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 n.getOperator().{.return.$this->
ba0e0 6f 70 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 74 operator;.}.........public.funct
ba100 69 6f 6e 20 73 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 ion.setOperator($operator).{.if.
ba120 28 21 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 3d 3d 27 3b (!$operator).{.$operator.=.'==';
ba140 0a 7d 0a 0a 69 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 .}..if.(!in_array($operator,.arr
ba160 61 79 28 27 3e 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 ay('>',.'<',.'>=',.'<=',.'==',.'
ba180 21 3d 27 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 !='))).{.throw.new.\InvalidArgum
ba1a0 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 20 6f 70 entException(sprintf('Invalid.op
ba1c0 65 72 61 74 6f 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 erator."%s".',.$operator));.}..$
ba1e0 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 0a 7d 0a 0a 0a this->operator.=.$operator;.}...
ba200 0a 0a 0a 0a 0a 0a 70 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 ......public.function.test($test
ba220 29 0a 7b 0a 73 77 69 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 ).{.switch.($this->operator).{.c
ba240 61 73 65 20 27 3e 27 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 ase.'>':.return.$test.>.$this->t
ba260 61 72 67 65 74 3b 0a 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 arget;.case.'>=':.return.$test.>
ba280 3d 20 24 74 68 69 73 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 =.$this->target;.case.'<':.retur
ba2a0 6e 20 24 74 65 73 74 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 n.$test.<.$this->target;.case.'<
ba2c0 3d 27 3a 0a 72 65 74 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 =':.return.$test.<=.$this->targe
ba2e0 74 3b 0a 63 61 73 65 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 t;.case.'!=':.return.$test.!=.$t
ba300 68 69 73 2d 3e 74 61 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 his->target;.}..return.$test.==.
ba320 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 $this->target;.}.}.<?php..namesp
ba340 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 45 78 63 ace.Symfony\Component\Finder\Exc
ba360 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 eption;.....interface.ExceptionI
ba380 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 69 6f 6e 20 67 65 nterface.{....public.function.ge
ba3a0 74 41 64 61 70 74 65 72 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 tAdapter();.}.<?php...........na
ba3c0 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
ba3e0 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 70 65 72 61 74 69 6f 6e 4e \Exception;.....class.OperationN
ba400 6f 74 50 65 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 41 64 61 70 otPermitedException.extends.Adap
ba420 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a terFailureException.{.}.<?php...
ba440 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 6e ........namespace.Symfony\Compon
ba460 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f ent\Finder\Exception;..use.Symfo
ba480 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 41 64 61 70 ny\Component\Finder\Adapter\Adap
ba4a0 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 64 61 70 74 65 terInterface;.......class.Adapte
ba4c0 72 46 61 69 6c 75 72 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 rFailureException.extends.\Runti
ba4e0 6d 65 45 78 63 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 meException.implements.Exception
ba500 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 64 61 70 74 65 72 3b Interface.{....private.$adapter;
ba520 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
ba540 63 74 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 24 6d ct(AdapterInterface.$adapter,.$m
ba560 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 essage.=.null,.\Exception.$previ
ba580 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 20 3d 20 24 ous.=.null).{.$this->adapter.=.$
ba5a0 61 64 61 70 74 65 72 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 adapter;.parent::__construct($me
ba5c0 73 73 61 67 65 20 3f 3a 20 27 53 65 61 72 63 68 20 66 61 69 6c 65 64 20 77 69 74 68 20 22 27 2e ssage.?:.'Search.failed.with."'.
ba5e0 24 61 64 61 70 74 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 22 20 61 64 61 70 74 65 72 2e 27 $adapter->getName().'".adapter.'
ba600 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ,.$previous);.}.....public.funct
ba620 69 6f 6e 20 67 65 74 41 64 61 70 74 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getAdapter().{.return.$this-
ba640 3e 61 64 61 70 74 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 >adapter;.}.}.<?php...........na
ba660 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
ba680 5c 45 78 63 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 \Exception;..use.Symfony\Compone
ba6a0 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 nt\Finder\Adapter\AdapterInterfa
ba6c0 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 46 69 6e 64 65 72 ce;.use.Symfony\Component\Finder
ba6e0 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 43 \Shell\Command;.....class.ShellC
ba700 6f 6d 6d 61 6e 64 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 41 ommandFailureException.extends.A
ba720 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 69 76 dapterFailureException.{....priv
ba740 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 6e 63 74 ate.$command;.......public.funct
ba760 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 ion.__construct(AdapterInterface
ba780 20 24 61 64 61 70 74 65 72 2c 20 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 5c 45 78 .$adapter,.Command.$command,.\Ex
ba7a0 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 ception.$previous.=.null).{.$thi
ba7c0 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 61 72 65 6e 74 3a 3a 5f s->command.=.$command;.parent::_
ba7e0 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 64 61 70 74 65 72 2c 20 27 53 68 65 6c 6c 20 63 6f 6d 6d _construct($adapter,.'Shell.comm
ba800 61 6e 64 20 66 61 69 6c 65 64 3a 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 6a 6f 69 6e 28 29 2e and.failed:."'.$command->join().
ba820 27 22 2e 27 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 '".',.$previous);.}.....public.f
ba840 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 unction.getCommand().{.return.$t
ba860 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a his->command;.}.}.<?php.........
ba880 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
ba8a0 6e 64 65 72 3b 0a 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 nder;.......class.SplFileInfo.ex
ba8c0 74 65 6e 64 73 20 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 tends.\SplFileInfo.{.private.$re
ba8e0 6c 61 74 69 76 65 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 lativePath;.private.$relativePat
ba900 68 6e 61 6d 65 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 5f hname;.........public.function._
ba920 5f 63 6f 6e 73 74 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 _construct($file,.$relativePath,
ba940 20 24 72 65 6c 61 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 .$relativePathname).{.parent::__
ba960 63 6f 6e 73 74 72 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 construct($file);.$this->relativ
ba980 65 50 61 74 68 20 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 ePath.=.$relativePath;.$this->re
ba9a0 6c 61 74 69 76 65 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 lativePathname.=.$relativePathna
ba9c0 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 52 me;.}.......public.function.getR
ba9e0 65 6c 61 74 69 76 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 elativePath().{.return.$this->re
baa00 6c 61 74 69 76 65 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 lativePath;.}.......public.funct
baa20 69 6f 6e 20 67 65 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 ion.getRelativePathname().{.retu
baa40 72 6e 20 24 74 68 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 rn.$this->relativePathname;.}...
baa60 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
baa80 73 28 29 0a 7b 0a 24 6c 65 76 65 6c 20 3d 20 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 30 s().{.$level.=.error_reporting(0
baaa0 29 3b 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 65 6e 74 73 28 );.$content.=.file_get_contents(
baac0 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 65 72 72 6f 72 5f 72 65 70 $this->getRealpath());.error_rep
baae0 6f 72 74 69 6e 67 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 orting($level);.if.(false.===.$c
bab00 6f 6e 74 65 6e 74 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 ontent).{.$error.=.error_get_las
bab20 74 28 29 3b 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 t();.throw.new.\RuntimeException
bab40 28 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ($error['message']);.}..return.$
bab60 63 6f 6e 74 65 6e 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 content;.}.}.<?php...........nam
bab80 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 73 20 55 6e 64 espace.Seld\JsonLint;..class.Und
baba0 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 6e 61 6d 65 73 efined.{.}.<?php...........names
babc0 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 64 43 6c 61 73 pace.Seld\JsonLint;..use.stdClas
babe0 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 50 61 72 73 65 s;...............class.JsonParse
bac00 72 0a 7b 0a 63 6f 6e 73 74 20 44 45 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c 49 43 54 53 20 3d r.{.const.DETECT_KEY_CONFLICTS.=
bac20 20 31 3b 0a 63 6f 6e 73 74 20 41 4c 4c 4f 57 5f 44 55 50 4c 49 43 41 54 45 5f 4b 45 59 53 20 3d .1;.const.ALLOW_DUPLICATE_KEYS.=
bac40 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 6c 61 67 73 3b 0a 70 72 69 76 61 74 65 20 24 73 74 .2;..private.$flags;.private.$st
bac60 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 76 73 74 61 63 6b 3b 20 0a 20 70 72 69 76 61 74 65 20 ack;.private.$vstack;...private.
bac80 24 6c 73 74 61 63 6b 3b 20 0a 0a 70 72 69 76 61 74 65 20 24 79 79 3b 0a 70 72 69 76 61 74 65 20 $lstack;...private.$yy;.private.
baca0 24 73 79 6d 62 6f 6c 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 32 2c 0a $symbols.=.array(.'error'.=>.2,.
bacc0 27 4a 53 4f 4e 53 74 72 69 6e 67 27 20 3d 3e 20 33 2c 0a 27 53 54 52 49 4e 47 27 20 3d 3e 20 34 'JSONString'.=>.3,.'STRING'.=>.4
bace0 2c 0a 27 4a 53 4f 4e 4e 75 6d 62 65 72 27 20 3d 3e 20 35 2c 0a 27 4e 55 4d 42 45 52 27 20 3d 3e ,.'JSONNumber'.=>.5,.'NUMBER'.=>
bad00 20 36 2c 0a 27 4a 53 4f 4e 4e 75 6c 6c 4c 69 74 65 72 61 6c 27 20 3d 3e 20 37 2c 0a 27 4e 55 4c .6,.'JSONNullLiteral'.=>.7,.'NUL
bad20 4c 27 20 3d 3e 20 38 2c 0a 27 4a 53 4f 4e 42 6f 6f 6c 65 61 6e 4c 69 74 65 72 61 6c 27 20 3d 3e L'.=>.8,.'JSONBooleanLiteral'.=>
bad40 20 39 2c 0a 27 54 52 55 45 27 20 3d 3e 20 31 30 2c 0a 27 46 41 4c 53 45 27 20 3d 3e 20 31 31 2c .9,.'TRUE'.=>.10,.'FALSE'.=>.11,
bad60 0a 27 4a 53 4f 4e 54 65 78 74 27 20 3d 3e 20 31 32 2c 0a 27 4a 53 4f 4e 56 61 6c 75 65 27 20 3d .'JSONText'.=>.12,.'JSONValue'.=
bad80 3e 20 31 33 2c 0a 27 45 4f 46 27 20 3d 3e 20 31 34 2c 0a 27 4a 53 4f 4e 4f 62 6a 65 63 74 27 20 >.13,.'EOF'.=>.14,.'JSONObject'.
bada0 3d 3e 20 31 35 2c 0a 27 4a 53 4f 4e 41 72 72 61 79 27 20 3d 3e 20 31 36 2c 0a 27 7b 27 20 3d 3e =>.15,.'JSONArray'.=>.16,.'{'.=>
badc0 20 31 37 2c 0a 27 7d 27 20 3d 3e 20 31 38 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 72 4c 69 73 74 27 .17,.'}'.=>.18,.'JSONMemberList'
bade0 20 3d 3e 20 31 39 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 72 27 20 3d 3e 20 32 30 2c 0a 27 3a 27 20 .=>.19,.'JSONMember'.=>.20,.':'.
bae00 3d 3e 20 32 31 2c 0a 27 2c 27 20 3d 3e 20 32 32 2c 0a 27 5b 27 20 3d 3e 20 32 33 2c 0a 27 5d 27 =>.21,.','.=>.22,.'['.=>.23,.']'
bae20 20 3d 3e 20 32 34 2c 0a 27 4a 53 4f 4e 45 6c 65 6d 65 6e 74 4c 69 73 74 27 20 3d 3e 20 32 35 2c .=>.24,.'JSONElementList'.=>.25,
bae40 0a 27 24 61 63 63 65 70 74 27 20 3d 3e 20 30 2c 0a 27 24 65 6e 64 27 20 3d 3e 20 31 2c 0a 29 3b .'$accept'.=>.0,.'$end'.=>.1,.);
bae60 0a 0a 70 72 69 76 61 74 65 20 24 74 65 72 6d 69 6e 61 6c 73 5f 20 3d 20 61 72 72 61 79 28 0a 32 ..private.$terminals_.=.array(.2
bae80 20 3d 3e 20 22 65 72 72 6f 72 22 2c 0a 34 20 3d 3e 20 22 53 54 52 49 4e 47 22 2c 0a 36 20 3d 3e .=>."error",.4.=>."STRING",.6.=>
baea0 20 22 4e 55 4d 42 45 52 22 2c 0a 38 20 3d 3e 20 22 4e 55 4c 4c 22 2c 0a 31 30 20 3d 3e 20 22 54 ."NUMBER",.8.=>."NULL",.10.=>."T
baec0 52 55 45 22 2c 0a 31 31 20 3d 3e 20 22 46 41 4c 53 45 22 2c 0a 31 34 20 3d 3e 20 22 45 4f 46 22 RUE",.11.=>."FALSE",.14.=>."EOF"
baee0 2c 0a 31 37 20 3d 3e 20 22 7b 22 2c 0a 31 38 20 3d 3e 20 22 7d 22 2c 0a 32 31 20 3d 3e 20 22 3a ,.17.=>."{",.18.=>."}",.21.=>.":
baf00 22 2c 0a 32 32 20 3d 3e 20 22 2c 22 2c 0a 32 33 20 3d 3e 20 22 5b 22 2c 0a 32 34 20 3d 3e 20 22 ",.22.=>.",",.23.=>."[",.24.=>."
baf20 5d 22 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 64 75 63 74 69 6f 6e 73 5f 20 3d 20 ]",.);..private.$productions_.=.
baf40 61 72 72 61 79 28 0a 30 2c 0a 61 72 72 61 79 28 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 35 2c 20 array(.0,.array(3,.1),.array(5,.
baf60 31 29 2c 0a 61 72 72 61 79 28 37 2c 20 31 29 2c 0a 61 72 72 61 79 28 39 2c 20 31 29 2c 0a 61 72 1),.array(7,.1),.array(9,.1),.ar
baf80 72 61 79 28 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 32 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 ray(9,.1),.array(12,.2),.array(1
bafa0 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 20 31 3,.1),.array(13,.1),.array(13,.1
bafc0 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 0a 61 ),.array(13,.1),.array(13,.1),.a
bafe0 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 35 2c 20 32 29 2c 0a 61 72 72 61 79 rray(13,.1),.array(15,.2),.array
bb000 28 31 35 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 30 2c 20 33 29 2c 0a 61 72 72 61 79 28 31 39 2c (15,.3),.array(20,.3),.array(19,
bb020 20 31 29 2c 0a 61 72 72 61 79 28 31 39 2c 20 33 29 2c 0a 61 72 72 61 79 28 31 36 2c 20 32 29 2c .1),.array(19,.3),.array(16,.2),
bb040 0a 61 72 72 61 79 28 31 36 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 35 2c 20 31 29 2c 0a 61 72 72 .array(16,.3),.array(25,.1),.arr
bb060 61 79 28 32 35 2c 20 33 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 61 62 6c 65 20 3d 20 61 ay(25,.3).);..private.$table.=.a
bb080 72 72 61 79 28 61 72 72 61 79 28 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c rray(array(3.=>.5,.4.=>.array(1,
bb0a0 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 33 29 2c 20 37 12),.5.=>.6,.6.=>.array(1,13),.7
bb0c0 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 3e 20 34 2c 20 .=>.3,.8.=>.array(1,9),.9.=>.4,.
bb0e0 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 72 61 79 28 31 10.=>.array(1,10),.11.=>.array(1
bb100 2c 31 31 29 2c 20 31 32 20 3d 3e 20 31 2c 20 31 33 20 3d 3e 20 32 2c 20 31 35 20 3d 3e 20 37 2c ,11),.12.=>.1,.13.=>.2,.15.=>.7,
bb120 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 20 32 33 20 .16.=>.8,.17.=>.array(1,14),.23.
bb140 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 20 3d 3e 20 61 72 72 =>.array(1,15)),.array(.1.=>.arr
bb160 61 79 28 33 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 36 29 ay(3)),.array(.14.=>.array(1,16)
bb180 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 31 38 20 3d ),.array(.14.=>.array(2,7),.18.=
bb1a0 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 >.array(2,7),.22.=>.array(2,7),.
bb1c0 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 24.=>.array(2,7)),.array(.14.=>.
bb1e0 61 72 72 61 79 28 32 2c 38 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 32 32 array(2,8),.18.=>.array(2,8),.22
bb200 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 .=>.array(2,8),.24.=>.array(2,8)
bb220 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 31 38 20 3d ),.array(.14.=>.array(2,9),.18.=
bb240 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 >.array(2,9),.22.=>.array(2,9),.
bb260 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 24.=>.array(2,9)),.array(.14.=>.
bb280 61 72 72 61 79 28 32 2c 31 30 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 array(2,10),.18.=>.array(2,10),.
bb2a0 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 22.=>.array(2,10),.24.=>.array(2
bb2c0 2c 31 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 31 29 2c ,10)),.array(.14.=>.array(2,11),
bb2e0 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 .18.=>.array(2,11),.22.=>.array(
bb300 32 2c 31 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 29 2c 20 61 72 72 61 79 2,11),.24.=>.array(2,11)),.array
bb320 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 (.14.=>.array(2,12),.18.=>.array
bb340 28 32 2c 31 32 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 32 34 20 3d 3e (2,12),.22.=>.array(2,12),.24.=>
bb360 20 61 72 72 61 79 28 32 2c 31 32 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 .array(2,12)),.array(.14.=>.arra
bb380 79 28 32 2c 33 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 32 32 20 3d 3e 20 y(2,3),.18.=>.array(2,3),.22.=>.
bb3a0 61 72 72 61 79 28 32 2c 33 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 29 2c 20 61 array(2,3),.24.=>.array(2,3)),.a
bb3c0 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 31 38 20 3d 3e 20 61 72 rray(.14.=>.array(2,4),.18.=>.ar
bb3e0 72 61 79 28 32 2c 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 32 34 20 3d ray(2,4),.22.=>.array(2,4),.24.=
bb400 3e 20 61 72 72 61 79 28 32 2c 34 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 >.array(2,4)),.array(.14.=>.arra
bb420 79 28 32 2c 35 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 32 32 20 3d 3e 20 y(2,5),.18.=>.array(2,5),.22.=>.
bb440 61 72 72 61 79 28 32 2c 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 29 2c 20 61 array(2,5),.24.=>.array(2,5)),.a
bb460 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 31 38 20 3d 3e 20 61 72 rray(.14.=>.array(2,1),.18.=>.ar
bb480 72 61 79 28 32 2c 31 29 2c 20 32 31 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 32 20 3d ray(2,1),.21.=>.array(2,1),.22.=
bb4a0 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 29 2c >.array(2,1),.24.=>.array(2,1)),
bb4c0 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 31 38 20 3d 3e 20 .array(.14.=>.array(2,2),.18.=>.
bb4e0 61 72 72 61 79 28 32 2c 32 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 32 34 array(2,2),.22.=>.array(2,2),.24
bb500 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 32 30 2c .=>.array(2,2)),.array(.3.=>.20,
bb520 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 31 .4.=>.array(1,12),.18.=>.array(1
bb540 2c 31 37 29 2c 20 31 39 20 3d 3e 20 31 38 2c 20 32 30 20 3d 3e 20 31 39 20 29 2c 20 61 72 72 61 ,17),.19.=>.18,.20.=>.19.),.arra
bb560 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 29 2c 20 35 20 3d y(.3.=>.5,.4.=>.array(1,12),.5.=
bb580 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 3e 20 33 2c 20 38 >.6,.6.=>.array(1,13),.7.=>.3,.8
bb5a0 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 20 3d 3e 20 61 72 .=>.array(1,9),.9.=>.4,.10.=>.ar
bb5c0 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 31 29 2c 20 31 33 ray(1,10),.11.=>.array(1,11),.13
bb5e0 20 3d 3e 20 32 33 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 .=>.23,.15.=>.7,.16.=>.8,.17.=>.
bb600 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 35 29 2c 20 array(1,14),.23.=>.array(1,15),.
bb620 32 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 31 29 2c 20 32 35 20 3d 3e 20 32 32 20 29 2c 20 61 24.=>.array(1,21),.25.=>.22.),.a
bb640 72 72 61 79 28 20 31 20 3d 3e 20 61 72 72 61 79 28 32 2c 36 29 29 2c 20 61 72 72 61 79 28 20 31 rray(.1.=>.array(2,6)),.array(.1
bb660 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 4.=>.array(2,13),.18.=>.array(2,
bb680 31 33 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 32 34 20 3d 3e 20 61 72 13),.22.=>.array(2,13),.24.=>.ar
bb6a0 72 61 79 28 32 2c 31 33 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 31 ray(2,13)),.array(.18.=>.array(1
bb6c0 2c 32 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 35 29 29 2c 20 61 72 72 61 79 28 ,24),.22.=>.array(1,25)),.array(
bb6e0 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 36 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 .18.=>.array(2,16),.22.=>.array(
bb700 32 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 32 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 36 29 2,16)),.array(.21.=>.array(1,26)
bb720 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 38 29 2c 20 31 38 20 ),.array(.14.=>.array(2,18),.18.
bb740 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 =>.array(2,18),.22.=>.array(2,18
bb760 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 29 2c 20 61 72 72 61 79 28 20 32 32 ),.24.=>.array(2,18)),.array(.22
bb780 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 .=>.array(1,28),.24.=>.array(1,2
bb7a0 37 29 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 30 29 2c 20 32 7)),.array(.22.=>.array(2,20),.2
bb7c0 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 30 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 4.=>.array(2,20)),.array(.14.=>.
bb7e0 61 72 72 61 79 28 32 2c 31 34 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 array(2,14),.18.=>.array(2,14),.
bb800 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 22.=>.array(2,14),.24.=>.array(2
bb820 2c 31 34 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 ,14)),.array(.3.=>.20,.4.=>.arra
bb840 79 28 31 2c 31 32 29 2c 20 32 30 20 3d 3e 20 32 39 20 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e y(1,12),.20.=>.29.),.array(.3.=>
bb860 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 20 36 20 .5,.4.=>.array(1,12),.5.=>.6,.6.
bb880 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 61 72 72 =>.array(1,13),.7.=>.3,.8.=>.arr
bb8a0 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 31 2c 31 ay(1,9),.9.=>.4,.10.=>.array(1,1
bb8c0 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 33 30 2c 0),.11.=>.array(1,11),.13.=>.30,
bb8e0 20 31 35 20 3d 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 .15.=>.7,.16.=>.8,.17.=>.array(1
bb900 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 ,14),.23.=>.array(1,15)),.array(
bb920 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 .14.=>.array(2,19),.18.=>.array(
bb940 32 2c 31 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 32 34 20 3d 3e 20 2,19),.22.=>.array(2,19),.24.=>.
bb960 61 72 72 61 79 28 32 2c 31 39 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d array(2,19)),.array(.3.=>.5,.4.=
bb980 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 72 61 >.array(1,12),.5.=>.6,.6.=>.arra
bb9a0 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 39 29 y(1,13),.7.=>.3,.8.=>.array(1,9)
bb9c0 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 31 20 ,.9.=>.4,.10.=>.array(1,10),.11.
bb9e0 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 33 31 2c 20 31 35 20 3d 3e 20 =>.array(1,11),.13.=>.31,.15.=>.
bba00 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 20 32 7,.16.=>.8,.17.=>.array(1,14),.2
bba20 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 3.=>.array(1,15)),.array(.18.=>.
bba40 61 72 72 61 79 28 32 2c 31 37 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 37 29 29 2c array(2,17),.22.=>.array(2,17)),
bba60 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 2c 20 32 32 20 3d 3e .array(.18.=>.array(2,15),.22.=>
bba80 20 61 72 72 61 79 28 32 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 .array(2,15)),.array(.22.=>.arra
bbaa0 79 28 32 2c 32 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 31 29 29 2c 0a 29 3b 0a y(2,21),.24.=>.array(2,21)),.);.
bbac0 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 .private.$defaultActions.=.array
bbae0 28 0a 31 36 20 3d 3e 20 61 72 72 61 79 28 32 2c 20 36 29 0a 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c (.16.=>.array(2,.6).);......publ
bbb00 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 6e 74 28 24 69 6e 70 75 74 29 0a 7b 0a 74 72 79 20 7b ic.function.lint($input).{.try.{
bbb20 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 69 6e 70 75 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 .$this->parse($input);.}.catch.(
bbb40 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 ParsingException.$e).{.return.$e
bbb60 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 70 61 72 73 ;.}.}.......public.function.pars
bbb80 65 28 24 69 6e 70 75 74 2c 20 24 66 6c 61 67 73 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 e($input,.$flags.=.0).{.$this->f
bbba0 6c 61 67 73 20 3d 20 24 66 6c 61 67 73 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 lags.=.$flags;..$this->stack.=.a
bbbc0 72 72 61 79 28 30 29 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 6e rray(0);.$this->vstack.=.array(n
bbbe0 75 6c 6c 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a ull);.$this->lstack.=.array();..
bbc00 24 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 30 3b 0a 24 79 79 $yytext.=.'';.$yylineno.=.0;.$yy
bbc20 6c 65 6e 67 20 3d 20 30 3b 0a 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 30 3b 0a 24 54 45 52 52 leng.=.0;.$recovering.=.0;.$TERR
bbc40 4f 52 20 3d 20 32 3b 0a 24 45 4f 46 20 3d 20 31 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 78 65 72 20 OR.=.2;.$EOF.=.1;..$this->lexer.
bbc60 3d 20 6e 65 77 20 4c 65 78 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 65 74 =.new.Lexer();.$this->lexer->set
bbc80 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e Input($input);..$yyloc.=.$this->
bbca0 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d lexer->yylloc;.$this->lstack[].=
bbcc0 20 24 79 79 6c 6f 63 3b 0a 0a 24 73 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 65 45 72 .$yyloc;..$symbol.=.null;.$preEr
bbce0 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 73 74 61 74 65 20 3d 20 6e 75 6c 6c 3b rorSymbol.=.null;.$state.=.null;
bbd00 0a 24 61 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 61 20 3d 20 6e 75 6c 6c 3b 0a 24 72 20 3d .$action.=.null;.$a.=.null;.$r.=
bbd20 20 6e 75 6c 6c 3b 0a 24 79 79 76 61 6c 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 24 70 .null;.$yyval.=.new.stdClass;.$p
bbd40 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 6e 65 77 53 74 61 74 65 20 .=.null;.$len.=.null;.$newState.
bbd60 3d 20 6e 75 6c 6c 3b 0a 24 65 78 70 65 63 74 65 64 20 3d 20 6e 75 6c 6c 3b 0a 24 65 72 72 53 74 =.null;.$expected.=.null;.$errSt
bbd80 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 20 24 73 74 61 r.=.null;..while.(true).{...$sta
bbda0 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 te.=.$this->stack[count($this->s
bbdc0 74 61 63 6b 29 2d 31 5d 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 tack)-1];....if.(isset($this->de
bbde0 66 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e faultActions[$state])).{.$action
bbe00 20 3d 20 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 61 74 65 5d .=.$this->defaultActions[$state]
bbe20 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 79 6d 62 6f 6c 20 3d 3d 20 6e 75 6c 6c 29 20 ;.}.else.{.if.($symbol.==.null).
bbe40 7b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 20 24 61 {.$symbol.=.$this->lex();.}...$a
bbe60 63 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 ction.=.isset($this->table[$stat
bbe80 65 5d 5b 24 73 79 6d 62 6f 6c 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 e][$symbol]).?.$this->table[$sta
bbea0 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 te][$symbol].:.false;.}....if.(!
bbec0 24 61 63 74 69 6f 6e 20 7c 7c 20 21 24 61 63 74 69 6f 6e 5b 30 5d 29 20 7b 0a 69 66 20 28 21 24 $action.||.!$action[0]).{.if.(!$
bbee0 72 65 63 6f 76 65 72 69 6e 67 29 20 7b 0a 0a 20 24 65 78 70 65 63 74 65 64 20 3d 20 61 72 72 61 recovering).{...$expected.=.arra
bbf00 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 y();.foreach.($this->table[$stat
bbf20 65 5d 20 61 73 20 24 70 20 3d 3e 20 24 69 67 6e 6f 72 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 e].as.$p.=>.$ignore).{.if.(isset
bbf40 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 29 20 26 26 20 24 70 20 3e 20 ($this->terminals_[$p]).&&.$p.>.
bbf60 32 29 20 7b 0a 24 65 78 70 65 63 74 65 64 5b 5d 20 3d 20 22 27 22 20 2e 20 24 74 68 69 73 2d 3e 2).{.$expected[].=."'"...$this->
bbf80 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 20 2e 20 22 27 22 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 terminals_[$p]..."'";.}.}..$mess
bbfa0 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 22 27 53 54 52 49 4e age.=.null;.if.(in_array("'STRIN
bbfc0 47 27 22 2c 20 24 65 78 70 65 63 74 65 64 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 73 75 62 73 G'",.$expected).&&.in_array(subs
bbfe0 74 72 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 20 30 2c 20 31 29 2c 20 61 tr($this->lexer->match,.0,.1),.a
bc000 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 49 rray('"',."'"))).{.$message.=."I
bc020 6e 76 61 6c 69 64 20 73 74 72 69 6e 67 22 3b 0a 69 66 20 28 22 27 22 20 3d 3d 3d 20 73 75 62 73 nvalid.string";.if.("'".===.subs
bc040 74 72 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 20 30 2c 20 31 29 29 20 7b tr($this->lexer->match,.0,.1)).{
bc060 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 75 .$message..=.",.it.appears.you.u
bc080 73 65 64 20 73 69 6e 67 6c 65 20 71 75 6f 74 65 73 20 69 6e 73 74 65 61 64 20 6f 66 20 64 6f 75 sed.single.quotes.instead.of.dou
bc0a0 62 6c 65 20 71 75 6f 74 65 73 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 ble.quotes";.}.elseif.(preg_matc
bc0c0 68 28 27 7b 22 2e 2b 3f 28 5c 5c 5c 5c 5b 5e 22 62 66 6e 72 74 2f 5c 5c 5c 5c 75 5d 29 7d 27 2c h('{".+?(\\\\[^"bfnrt/\\\\u])}',
bc0e0 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 .$this->lexer->getUpcomingInput(
bc100 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 ),.$match)).{.$message..=.",.it.
bc120 61 70 70 65 61 72 73 20 79 6f 75 20 68 61 76 65 20 61 6e 20 75 6e 65 73 63 61 70 65 64 20 62 61 appears.you.have.an.unescaped.ba
bc140 63 6b 73 6c 61 73 68 20 61 74 3a 20 22 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 69 ckslash.at:.".$match[1];.}.elsei
bc160 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 22 28 3f 3a 5b 5e 22 5d 2b 7c 5c 5c 5c 5c 22 29 f.(preg_match('{"(?:[^"]+|\\\\")
bc180 2a 24 7d 6d 27 2c 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 *$}m',.$this->lexer->getUpcoming
bc1a0 49 6e 70 75 74 28 29 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 61 70 Input())).{.$message..=.",.it.ap
bc1c0 70 65 61 72 73 20 79 6f 75 20 66 6f 72 67 6f 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 64 20 74 pears.you.forgot.to.terminated.t
bc1e0 68 65 20 73 74 72 69 6e 67 2c 20 6f 72 20 61 74 74 65 6d 70 74 65 64 20 74 6f 20 77 72 69 74 65 he.string,.or.attempted.to.write
bc200 20 61 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 77 68 69 63 68 20 69 73 20 69 6e 76 .a.multiline.string.which.is.inv
bc220 61 6c 69 64 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 alid";.}.}..$errStr.=.'Parse.err
bc240 6f 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 or.on.line.'...($yylineno+1)..."
bc260 3a 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 :\n";.$errStr..=.$this->lexer->s
bc280 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e 22 3b 0a 69 66 20 28 24 6d 65 73 73 61 howPosition()..."\n";.if.($messa
bc2a0 67 65 29 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 ge).{.$errStr..=.$message;.}.els
bc2c0 65 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 28 63 6f 75 6e 74 28 24 65 78 70 65 63 74 65 64 29 e.{.$errStr..=.(count($expected)
bc2e0 20 3e 20 31 29 20 3f 20 22 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 3a 20 22 20 3a 20 22 45 .>.1).?."Expected.one.of:.".:."E
bc300 78 70 65 63 74 65 64 3a 20 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 27 xpected:.";.$errStr..=.implode('
bc320 2c 20 27 2c 20 24 65 78 70 65 63 74 65 64 29 3b 0a 7d 0a 0a 69 66 20 28 27 2c 27 20 3d 3d 3d 20 ,.',.$expected);.}..if.(','.===.
bc340 73 75 62 73 74 72 28 74 72 69 6d 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 50 61 73 substr(trim($this->lexer->getPas
bc360 74 49 6e 70 75 74 28 29 29 2c 20 2d 31 29 29 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 20 2d tInput()),.-1)).{.$errStr..=.".-
bc380 20 49 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 68 61 76 65 20 61 6e 20 65 78 74 72 61 20 74 72 .It.appears.you.have.an.extra.tr
bc3a0 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 22 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 ailing.comma";.}..$this->parseEr
bc3c0 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 3d 3e 20 24 74 ror($errStr,.array(.'text'.=>.$t
bc3e0 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 3d 3e 20 21 65 his->lexer->match,.'token'.=>.!e
bc400 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 62 6f 6c 5d 29 mpty($this->terminals_[$symbol])
bc420 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 6c 5d 20 3a 20 .?.$this->terminals_[$symbol].:.
bc440 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 65 78 65 72 2d $symbol,.'line'.=>.$this->lexer-
bc460 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 0a 27 65 78 70 >yylineno,.'loc'.=>.$yyloc,.'exp
bc480 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 0a 0a 20 69 66 ected'.=>.$expected,.));.}....if
bc4a0 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 73 79 6d 62 6f .($recovering.==.3).{.if.($symbo
bc4c0 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 69 6e 67 45 78 l.==.$EOF).{.throw.new.ParsingEx
bc4e0 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 20 68 61 6c 74 ception($errStr.?:.'Parsing.halt
bc500 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 2d 3e 6c 65 78 ed.');.}....$yyleng.=.$this->lex
bc520 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 2d 3e 6c 65 78 er->yyleng;.$yytext.=.$this->lex
bc540 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 69 73 2d 3e 6c er->yytext;.$yylineno.=.$this->l
bc560 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 68 69 73 2d 3e exer->yylineno;.$yyloc.=.$this->
bc580 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 68 69 73 2d 3e lexer->yylloc;.$symbol.=.$this->
bc5a0 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 0a 20 69 66 20 lex();.}....while.(true).{...if.
bc5c0 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 24 74 68 69 73 (array_key_exists($TERROR,.$this
bc5e0 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 7d 0a 69 66 20 ->table[$state])).{.break;.}.if.
bc600 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 61 72 73 69 6e ($state.==.0).{.throw.new.Parsin
bc620 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 20 68 gException($errStr.?:.'Parsing.h
bc640 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 28 31 29 3b 0a alted.');.}.$this->popStack(1);.
bc660 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 28 24 74 68 69 $state.=.$this->stack[count($thi
bc680 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 79 6d 62 6f 6c s->stack)-1];.}..$preErrorSymbol
bc6a0 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 52 52 4f 52 3b .=.$symbol;...$symbol.=.$TERROR;
bc6c0 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 75 6e 74 28 24 ...$state.=.$this->stack[count($
bc6e0 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 69 73 73 65 74 this->stack)-1];.$action.=.isset
bc700 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 4f 52 5d 29 20 ($this->table[$state][$TERROR]).
bc720 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 52 4f 52 5d 20 ?.$this->table[$state][$TERROR].
bc740 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 20 7d 0a 0a 0a :.false;.$recovering.=.3;...}...
bc760 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 26 20 63 6f 75 .if.(is_array($action[0]).&&.cou
bc780 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 77 20 50 61 72 nt($action).>.1).{.throw.new.Par
bc7a0 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 20 6d 75 6c 74 singException('Parse.Error:.mult
bc7c0 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 61 74 65 3a 20 iple.actions.possible.at.state:.
bc7e0 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 24 73 79 6d 62 '...$state...',.token:.'...$symb
bc800 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 20 7b 0a 63 61 ol);.}..switch.($action[0]).{.ca
bc820 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 79 6d 62 6f 6c se.1:...$this->stack[].=.$symbol
bc840 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 6c 65 78 65 72 ;.$this->vstack[].=.$this->lexer
bc860 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 20 24 74 68 69 ->yytext;.$this->lstack[].=.$thi
bc880 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 61 63 6b 5b 5d s->lexer->yylloc;.$this->stack[]
bc8a0 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 6e 75 6c 6c 3b .=.$action[1];...$symbol.=.null;
bc8c0 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 24 79 79 6c 65 .if.(!$preErrorSymbol).{...$yyle
bc8e0 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 24 79 79 74 65 ng.=.$this->lexer->yyleng;.$yyte
bc900 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 24 79 79 6c 69 xt.=.$this->lexer->yytext;.$yyli
bc920 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 6e 6f 3b 0a 24 neno.=.$this->lexer->yylineno;.$
bc940 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 69 66 yyloc.=.$this->lexer->yylloc;.if
bc960 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 65 72 69 6e 67 .($recovering.>.0).{.$recovering
bc980 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 24 70 72 65 45 --;.}.}.else.{...$symbol.=.$preE
bc9a0 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 20 3d 20 6e 75 rrorSymbol;.$preErrorSymbol.=.nu
bc9c0 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 6e 20 3d 20 24 ll;.}.break;..case.2:...$len.=.$
bc9e0 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 31 5d 5d 5b 31 this->productions_[$action[1]][1
bca00 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 2d 3e 76 73 74 ];....$yyval->token.=.$this->vst
bca20 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 24 6c 65 6e 5d ack[count($this->vstack).-.$len]
bca40 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 28 20 0a 20 27 ;.....$yyval->store.=.array(...'
bca60 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 6b 5b 63 6f 75 first_line'.=>.$this->lstack[cou
bca80 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 3a 20 31 29 5d nt($this->lstack).-.($len.?:.1)]
bcaa0 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 20 3d 3e 20 24 ['first_line'],.'last_line'.=>.$
bcac0 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 6b this->lstack[count($this->lstack
bcae0 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 5f 63 6f 6c 75 ).-.1]['last_line'],.'first_colu
bcb00 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 24 74 68 69 73 mn'.=>.$this->lstack[count($this
bcb20 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 69 72 73 74 5f ->lstack).-.($len.?:.1)]['first_
bcb40 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 74 68 69 73 column'],.'last_column'.=>.$this
bcb60 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 6b 29 20 2d 20 ->lstack[count($this->lstack).-.
bcb80 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 24 74 68 69 73 1]['last_column'],.);.$r.=.$this
bcba0 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 74 65 78 74 2c ->performAction($yyval,.$yytext,
bcbc0 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 6e 5b 31 5d 2c .$yyleng,.$yylineno,.$action[1],
bcbe0 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 63 6b 29 3b 0a .$this->vstack,.$this->lstack);.
bcc00 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 65 64 29 20 7b .if.(!$r.instanceof.Undefined).{
bcc20 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 24 74 68 69 73 .return.$r;.}..if.($len).{.$this
bcc40 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 3e 73 74 61 63 ->popStack($len);.}..$this->stac
bcc60 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 61 63 74 69 6f k[].=.$this->productions_[$actio
bcc80 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 20 3d 20 24 79 n[1]][0];...$this->vstack[].=.$y
bcca0 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 5d 20 3d 20 24 yval->token;.$this->lstack[].=.$
bccc0 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 74 68 69 73 2d yyval->store;.$newState.=.$this-
bcce0 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 74 68 69 73 2d >table[$this->stack[count($this-
bcd00 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 75 6e 74 28 24 >stack)-2]][$this->stack[count($
bcd20 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 61 63 6b 5b 5d this->stack)-1]];.$this->stack[]
bcd40 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 33 3a 20 0a 0a .=.$newState;.break;..case.3:...
bcd60 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 74 72 75 65 3b 0a 7d return.true;.}.}..return.true;.}
bcd80 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 72 6f 72 28 ..protected.function.parseError(
bcda0 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 73 69 6e 67 $str,.$hash).{.throw.new.Parsing
bcdc0 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 20 0a 20 0a Exception($str,.$hash);.}.......
bcde0 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 69 6f 6e 28 .private.function.performAction(
bce00 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 79 6c 65 6e stdClass.$yyval,.$yytext,.$yylen
bce20 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 6b 65 6e 73 g,.$yylineno,.$yystate,.&$tokens
bce40 29 0a 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 2d 20 31 3b ).{...$len.=.count($tokens).-.1;
bce60 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 0a 24 79 79 .switch.($yystate).{.case.1:.$yy
bce80 74 65 78 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 28 text.=.preg_replace_callback('{(
bcea0 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 41 2d 46 ?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F
bcec0 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 69 6e 67 0-9]{4})}',.array($this,.'string
bcee0 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 79 76 61 Interpolation'),.$yytext);.$yyva
bcf00 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 73 65 20 l->token.=.$yytext;.break;.case.
bcf20 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 3d 3d 20 2:.if.(strpos($yytext,.'e').!==.
bcf40 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 20 21 3d false.||.strpos($yytext,.'E').!=
bcf60 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 6f 61 74 =.false).{.$yyval->token.=.float
bcf80 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 2d 3e 74 val($yytext);.}.else.{.$yyval->t
bcfa0 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 3d 3d 20 oken.=.strpos($yytext,.'.').===.
bcfc0 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 61 74 76 false.?.intval($yytext).:.floatv
bcfe0 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 0a 24 79 al($yytext);.}.break;.case.3:.$y
bd000 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 73 65 20 yval->token.=.null;.break;.case.
bd020 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 6b 3b 0a 4:.$yyval->token.=.true;.break;.
bd040 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 3b 0a 62 case.5:.$yyval->token.=.false;.b
bd060 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 74 6f 6b reak;.case.6:.return.$yyval->tok
bd080 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 3a 0a 24 en.=.$tokens[$len-1];.case.13:.$
bd0a0 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 62 72 65 yyval->token.=.new.stdClass;.bre
bd0c0 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 24 74 6f ak;.case.14:.$yyval->token.=.$to
bd0e0 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 0a 24 79 kens[$len-1];.break;.case.15:.$y
bd100 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 6c 65 6e yval->token.=.array($tokens[$len
bd120 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 61 73 65 -2],.$tokens[$len]);.break;.case
bd140 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 6c 61 73 .16:.$yyval->token.=.new.stdClas
bd160 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 30 5d 20 s;.$property.=.$tokens[$len][0].
bd180 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 24 6c 65 ===.''.?.'_empty_'.:.$tokens[$le
bd1a0 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 74 79 20 n][0];.$yyval->token->$property.
bd1c0 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 73 65 20 =.$tokens[$len][1];.break;.case.
bd1e0 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 6c 65 6e 17:.$yyval->token.=.$tokens[$len
bd200 2d 32 5d 3b 0a 24 6b 65 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d 3d 3d -2];.$key.=.$tokens[$len][0].===
bd220 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 24 6c 65 6e 5d 5b .''.?.'_empty_'.:.$tokens[$len][
bd240 30 5d 3b 0a 69 66 20 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 44 45 0];.if.(($this->flags.&.self::DE
bd260 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c 49 43 54 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f TECT_KEY_CONFLICTS).&&.isset($to
bd280 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 7b 0a 24 65 72 72 53 74 72 kens[$len-2]->{$key})).{.$errStr
bd2a0 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 79 79 .=.'Parse.error.on.line.'...($yy
bd2c0 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 74 lineno+1)...":\n";.$errStr..=.$t
bd2e0 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e his->lexer->showPosition()..."\n
bd300 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 44 75 70 6c 69 63 61 74 65 20 6b 65 79 3a 20 22 2e ";.$errStr..=."Duplicate.key:.".
bd320 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 $tokens[$len][0];.throw.new.Pars
bd340 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 29 3b 0a 7d 20 65 6c 73 65 69 66 20 ingException($errStr);.}.elseif.
bd360 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 41 4c 4c 4f 57 5f 44 55 50 (($this->flags.&.self::ALLOW_DUP
bd380 4c 49 43 41 54 45 5f 4b 45 59 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c LICATE_KEYS).&&.isset($tokens[$l
bd3a0 65 6e 2d 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 7b 0a 24 64 75 70 6c 69 63 61 74 65 43 6f 75 6e en-2]->{$key})).{.$duplicateCoun
bd3c0 74 20 3d 20 31 3b 0a 64 6f 20 7b 0a 24 64 75 70 6c 69 63 61 74 65 4b 65 79 20 3d 20 24 6b 65 79 t.=.1;.do.{.$duplicateKey.=.$key
bd3e0 20 2e 20 27 2e 27 20 2e 20 24 64 75 70 6c 69 63 61 74 65 43 6f 75 6e 74 2b 2b 3b 0a 7d 20 77 68 ...'.'...$duplicateCount++;.}.wh
bd400 69 6c 65 20 28 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 24 64 75 70 ile.(isset($tokens[$len-2]->$dup
bd420 6c 69 63 61 74 65 4b 65 79 29 29 3b 0a 24 6b 65 79 20 3d 20 24 64 75 70 6c 69 63 61 74 65 4b 65 licateKey));.$key.=.$duplicateKe
bd440 79 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 24 6b 65 79 20 3d 20 24 74 6f y;.}.$tokens[$len-2]->$key.=.$to
bd460 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 38 3a 0a 24 kens[$len][1];.break;.case.18:.$
bd480 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 62 72 65 61 6b 3b 0a 63 yyval->token.=.array();.break;.c
bd4a0 61 73 65 20 31 39 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 ase.19:.$yyval->token.=.$tokens[
bd4c0 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 30 3a 0a 24 79 79 76 61 6c 2d $len-1];.break;.case.20:.$yyval-
bd4e0 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 3b 0a 62 >token.=.array($tokens[$len]);.b
bd500 72 65 61 6b 3b 0a 63 61 73 65 20 32 31 3a 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 5d reak;.case.21:.$tokens[$len-2][]
bd520 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 .=.$tokens[$len];.$yyval->token.
bd540 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 72 65 74 =.$tokens[$len-2];.break;.}..ret
bd560 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 urn.new.Undefined();.}..private.
bd580 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 28 24 6d 61 function.stringInterpolation($ma
bd5a0 74 63 68 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 63 61 73 65 tch).{.switch.($match[0]).{.case
bd5c0 20 27 5c 5c 5c 5c 27 3a 0a 72 65 74 75 72 6e 20 27 5c 5c 27 3b 0a 63 61 73 65 20 27 5c 22 27 3a .'\\\\':.return.'\\';.case.'\"':
bd5e0 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 73 65 20 27 5c 62 27 3a 0a 72 65 74 75 72 6e 20 63 .return.'"';.case.'\b':.return.c
bd600 68 72 28 38 29 3b 0a 63 61 73 65 20 27 5c 66 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 31 32 29 hr(8);.case.'\f':.return.chr(12)
bd620 3b 0a 63 61 73 65 20 27 5c 6e 27 3a 0a 72 65 74 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 65 20 27 ;.case.'\n':.return."\n";.case.'
bd640 5c 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 72 22 3b 0a 63 61 73 65 20 27 5c 74 27 3a 0a 72 65 74 \r':.return."\r";.case.'\t':.ret
bd660 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 5c 2f 27 3a 0a 72 65 74 75 72 6e 20 22 2f 22 3b urn."\t";.case.'\/':.return."/";
bd680 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 68 74 6d 6c 5f 65 6e 74 69 74 79 5f 64 65 63 .default:.return.html_entity_dec
bd6a0 6f 64 65 28 27 26 23 78 27 2e 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 30 5d ode('&#x'.ltrim(substr($match[0]
bd6c0 2c 20 32 29 2c 20 27 30 27 29 2e 27 3b 27 2c 20 30 2c 20 27 55 54 46 2d 38 27 29 3b 0a 7d 0a 7d ,.2),.'0').';',.0,.'UTF-8');.}.}
bd6e0 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 63 6b 28 24 6e 29 0a ..private.function.popStack($n).
bd700 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 {.$this->stack.=.array_slice($th
bd720 69 73 2d 3e 73 74 61 63 6b 2c 20 30 2c 20 2d 20 28 32 20 2a 20 24 6e 29 29 3b 0a 24 74 68 69 73 is->stack,.0,.-.(2.*.$n));.$this
bd740 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 76 73 ->vstack.=.array_slice($this->vs
bd760 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 3d 20 tack,.0,.-.$n);.$this->lstack.=.
bd780 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 2c 20 30 2c 20 2d 20 array_slice($this->lstack,.0,.-.
bd7a0 24 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 0a 7b $n);.}..private.function.lex().{
bd7c0 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6c 65 78 28 29 20 3f 3a .$token.=.$this->lexer->lex().?:
bd7e0 20 31 3b 20 0a 20 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 74 6f 6b 65 6e 29 29 .1;.....if.(!is_numeric($token))
bd800 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 .{.$token.=.isset($this->symbols
bd820 5b 24 74 6f 6b 65 6e 5d 29 20 3f 20 24 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 6f 6b 65 [$token]).?.$this->symbols[$toke
bd840 6e 5d 20 3a 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d n].:.$token;.}..return.$token;.}
bd860 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 6c .}.<?php...........namespace.Sel
bd880 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 65 78 65 72 0a 7b 0a d\JsonLint;.......class.Lexer.{.
bd8a0 70 72 69 76 61 74 65 20 24 45 4f 46 20 3d 20 31 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6c 65 73 private.$EOF.=.1;.private.$rules
bd8c0 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 2f 5e 5c 73 2b 2f 27 2c 0a 31 20 3d 3e 20 27 2f .=.array(.0.=>.'/^\s+/',.1.=>.'/
bd8e0 5e 2d 3f 28 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 2b 29 28 5c 2e 5b 30 2d 39 5d 2b 29 ^-?([0-9]|[1-9][0-9]+)(\.[0-9]+)
bd900 3f 28 5b 65 45 5d 5b 2b 2d 5d 3f 5b 30 2d 39 5d 2b 29 3f 5c 62 2f 27 2c 0a 32 20 3d 3e 20 27 7b ?([eE][+-]?[0-9]+)?\b/',.2.=>.'{
bd920 5e 22 28 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 41 2d ^"(\\\\["bfnrt/\\\\]|\\\\u[a-fA-
bd940 46 30 2d 39 5d 7b 34 7d 7c 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 F0-9]{4}|[^\0-\x09\x0a-\x1f\\\\"
bd960 5d 29 2a 22 7d 27 2c 0a 33 20 3d 3e 20 27 2f 5e 5c 7b 2f 27 2c 0a 34 20 3d 3e 20 27 2f 5e 5c 7d ])*"}',.3.=>.'/^\{/',.4.=>.'/^\}
bd980 2f 27 2c 0a 35 20 3d 3e 20 27 2f 5e 5c 5b 2f 27 2c 0a 36 20 3d 3e 20 27 2f 5e 5c 5d 2f 27 2c 0a /',.5.=>.'/^\[/',.6.=>.'/^\]/',.
bd9a0 37 20 3d 3e 20 27 2f 5e 2c 2f 27 2c 0a 38 20 3d 3e 20 27 2f 5e 3a 2f 27 2c 0a 39 20 3d 3e 20 27 7.=>.'/^,/',.8.=>.'/^:/',.9.=>.'
bd9c0 2f 5e 74 72 75 65 5c 62 2f 27 2c 0a 31 30 20 3d 3e 20 27 2f 5e 66 61 6c 73 65 5c 62 2f 27 2c 0a /^true\b/',.10.=>.'/^false\b/',.
bd9e0 31 31 20 3d 3e 20 27 2f 5e 6e 75 6c 6c 5c 62 2f 27 2c 0a 31 32 20 3d 3e 20 27 2f 5e 24 2f 27 2c 11.=>.'/^null\b/',.12.=>.'/^$/',
bda00 0a 31 33 20 3d 3e 20 27 2f 5e 2e 2f 27 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 .13.=>.'/^./',.);..private.$cond
bda20 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 22 49 4e 49 54 49 41 4c 22 20 3d 3e 20 61 72 72 itions.=.array(."INITIAL".=>.arr
bda40 61 79 28 0a 22 72 75 6c 65 73 22 20 3d 3e 20 61 72 72 61 79 28 30 2c 31 2c 32 2c 33 2c 34 2c 35 ay(."rules".=>.array(0,1,2,3,4,5
bda60 2c 36 2c 37 2c 38 2c 39 2c 31 30 2c 31 31 2c 31 32 2c 31 33 29 2c 0a 22 69 6e 63 6c 75 73 69 76 ,6,7,8,9,10,11,12,13),."inclusiv
bda80 65 22 20 3d 3e 20 74 72 75 65 2c 0a 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 e".=>.true,.),.);..private.$cond
bdaa0 69 74 69 6f 6e 53 74 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 itionStack;.private.$input;.priv
bdac0 61 74 65 20 24 6d 6f 72 65 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 6e 65 3b 0a 70 72 69 76 61 74 ate.$more;.private.$done;.privat
bdae0 65 20 24 6d 61 74 63 68 65 64 3b 0a 0a 70 75 62 6c 69 63 20 24 6d 61 74 63 68 3b 0a 70 75 62 6c e.$matched;..public.$match;.publ
bdb00 69 63 20 24 79 79 6c 69 6e 65 6e 6f 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 65 6e 67 3b 0a 70 75 ic.$yylineno;.public.$yyleng;.pu
bdb20 62 6c 69 63 20 24 79 79 74 65 78 74 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 6c 6f 63 3b 0a 0a 70 blic.$yytext;.public.$yylloc;..p
bdb40 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 24 74 68 69 ublic.function.lex().{.$r.=.$thi
bdb60 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 66 20 55 6e s->next();.if.(!$r.instanceof.Un
bdb80 64 65 66 69 6e 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 defined).{.return.$r;.}..return.
bdba0 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 69 6f 6e $this->lex();.}..public.function
bdbc0 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 69 6e 70 75 74 .setInput($input).{.$this->input
bdbe0 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a .=.$input;.$this->more.=.false;.
bdc00 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 $this->done.=.false;.$this->yyli
bdc20 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 74 68 69 73 2d neno.=.$this->yyleng.=.0;.$this-
bdc40 3e 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 3d 20 24 74 68 69 73 >yytext.=.$this->matched.=.$this
bdc60 2d 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 ->match.=.'';.$this->conditionSt
bdc80 61 63 6b 20 3d 20 61 72 72 61 79 28 27 49 4e 49 54 49 41 4c 27 29 3b 0a 24 74 68 69 73 2d 3e 79 ack.=.array('INITIAL');.$this->y
bdca0 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c ylloc.=.array('first_line'.=>.1,
bdcc0 20 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 2c 20 27 6c 61 73 74 5f 6c 69 6e 65 .'first_column'.=>.0,.'last_line
bdce0 27 20 3d 3e 20 31 2c 20 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 29 3b 0a 0a 72 65 '.=>.1,.'last_column'.=>.0);..re
bdd00 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 6e 20 73 turn.$this;.}..public.function.s
bdd20 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 0a 7b 0a 24 70 72 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 howPosition().{.$pre.=.str_repla
bdd40 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 61 73 74 49 6e 70 75 74 ce("\n",.'',.$this->getPastInput
bdd60 28 29 29 3b 0a 24 63 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e ());.$c.=.str_repeat('-',.strlen
bdd80 28 24 70 72 65 29 29 3b 20 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 20 2e 20 73 74 72 5f 72 65 70 ($pre));...return.$pre...str_rep
bdda0 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 70 63 6f 6d 69 6e lace("\n",.'',.$this->getUpcomin
bddc0 67 49 6e 70 75 74 28 29 29 20 2e 20 22 5c 6e 22 20 2e 20 24 63 20 2e 20 22 5e 22 3b 0a 7d 0a 0a gInput())..."\n"...$c..."^";.}..
bdde0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 73 74 49 6e 70 75 74 28 29 0a 7b public.function.getPastInput().{
bde00 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 2c 20 .$past.=.substr($this->matched,.
bde20 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 72 6c 0,.strlen($this->matched).-.strl
bde40 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 28 73 74 72 6c en($this->match));..return.(strl
bde60 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 73 en($past).>.20.?.'...'.:.'')...s
bde80 75 62 73 74 72 28 24 70 61 73 74 2c 20 2d 32 30 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ubstr($past,.-20);.}..public.fun
bdea0 63 74 69 6f 6e 20 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 0a 7b 0a 24 6e 65 78 74 ction.getUpcomingInput().{.$next
bdec0 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 .=.$this->match;.if.(strlen($nex
bdee0 74 29 20 3c 20 32 30 29 20 7b 0a 24 6e 65 78 74 20 2e 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 t).<.20).{.$next..=.substr($this
bdf00 2d 3e 69 6e 70 75 74 2c 20 30 2c 20 32 30 20 2d 20 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 29 3b ->input,.0,.20.-.strlen($next));
bdf20 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 6e 65 78 74 2c 20 30 2c 20 32 30 29 20 .}..return.substr($next,.0,.20).
bdf40 2e 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 ..(strlen($next).>.20.?.'...'.:.
bdf60 27 27 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 70 61 72 73 65 '');.}..protected.function.parse
bdf80 45 72 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 5c Error($str,.$hash).{.throw.new.\
bdfa0 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 Exception($str);.}..private.func
bdfc0 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 7b tion.next().{.if.($this->done).{
bdfe0 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 73 .return.$this->EOF;.}.if.(!$this
be000 2d 3e 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 0a 7d ->input).{.$this->done.=.true;.}
be020 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 3b 0a ..$token.=.null;.$match.=.null;.
be040 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 66 20 $col.=.null;.$lines.=.null;..if.
be060 28 21 24 74 68 69 73 2d 3e 6d 6f 72 65 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d (!$this->more).{.$this->yytext.=
be080 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 75 6c 65 .'';.$this->match.=.'';.}..$rule
be0a0 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 52 75 6c 65 73 28 29 3b 0a 24 72 s.=.$this->getCurrentRules();.$r
be0c0 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 24 ulesLen.=.count($rules);..for.($
be0e0 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 20 i=0;.$i.<.$rulesLen;.$i++).{.if.
be100 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 5b (preg_match($this->rules[$rules[
be120 24 69 5d 5d 2c 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 70 $i]],.$this->input,.$match)).{.p
be140 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 5b 30 reg_match_all('/\n.*/',.$match[0
be160 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 3b 0a ],.$lines);.$lines.=.$lines[0];.
be180 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 2b 3d if.($lines).{.$this->yylineno.+=
be1a0 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 6f 63 .count($lines);.}..$this->yylloc
be1c0 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 73 2d .=.array(.'first_line'.=>.$this-
be1e0 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 6e 65 >yylloc['last_line'],.'last_line
be200 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 5f 63 '.=>.$this->yylineno+1,.'first_c
be220 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 63 6f olumn'.=>.$this->yylloc['last_co
be240 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 73 20 lumn'],.'last_column'.=>.$lines.
be260 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 2d 20 ?.strlen($lines[count($lines).-.
be280 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 63 6f 1]).-.1.:.$this->yylloc['last_co
be2a0 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 0a 24 lumn'].+.strlen($match[0]),.);.$
be2c0 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 69 73 this->yytext..=.$match[0];.$this
be2e0 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 61 74 ->match..=.$match[0];.$this->mat
be300 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 20 73 ches.=.$match;.$this->yyleng.=.s
be320 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 6d 6f 72 trlen($this->yytext);.$this->mor
be340 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 73 75 62 73 74 72 e.=.false;.$this->input.=.substr
be360 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 ($this->input,.strlen($match[0])
be380 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 5b 30 5d 3b 0a );.$this->matched..=.$match[0];.
be3a0 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 6f 6e 28 24 72 $token.=.$this->performAction($r
be3c0 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 74 61 63 6b 5b ules[$i],.$this->conditionStack[
be3e0 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 29 2d 31 5d 29 count($this->conditionStack)-1])
be400 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 65 6e 3b 0a 7d ;.if.($token).{.return.$token;.}
be420 0a 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 7d 0a 0a 69 ..return.new.Undefined();.}.}..i
be440 66 20 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 3d 3d 20 22 22 29 20 7b 0a 72 65 74 75 72 6e f.($this->input.===."").{.return
be460 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 65 45 72 72 6f .$this->EOF;.}..$this->parseErro
be480 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 20 2e 20 28 24 r(.'Lexical.error.on.line.'...($
be4a0 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 63 6f 67 6e 69 this->yylineno+1)..."..Unrecogni
be4c0 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 6f 73 69 74 69 zed.text.\n"...$this->showPositi
be4e0 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 27 74 6f 6b 65 on(),.array(.'text'.=>."",.'toke
be500 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 2d 3e 79 79 6c n'.=>.null,.'line'.=>.$this->yyl
be520 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 74 69 6f 6e 20 ineno,.).);.}..private.function.
be540 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 63 6f 6e 64 69 begin($condition).{.$this->condi
be560 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 0a 0a 70 72 69 tionStack[].=.$condition;.}..pri
be580 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 72 65 74 75 72 vate.function.popState().{.retur
be5a0 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 6e 53 74 61 63 n.array_pop($this->conditionStac
be5c0 6b 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 75 72 72 65 k);.}..private.function.getCurre
be5e0 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 64 69 74 ntRules().{.return.$this->condit
be600 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 75 6e 74 ions[$this->conditionStack[count
be620 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 72 75 6c ($this->conditionStack)-1]]['rul
be640 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 66 6f 72 es'];.}..private.function.perfor
be660 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 69 6f 6e mAction($avoiding_name_collision
be680 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 59 5f 53 s,.$YY_START).{.$YYSTATE.=.$YY_S
be6a0 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 63 6f 6c TART;.switch.($avoiding_name_col
be6c0 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 65 20 31 lisions).{.case.0:.break;.case.1
be6e0 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 68 69 73 :.return.6;.break;.case.2:.$this
be700 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 78 74 2c ->yytext.=.substr($this->yytext,
be720 20 31 2c 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2d 32 29 3b 0a 0a 72 65 74 75 72 6e 20 34 3b .1,.$this->yyleng-2);..return.4;
be740 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 74 75 .case.3:.return.17;.case.4:.retu
be760 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 20 36 rn.18;.case.5:.return.23;.case.6
be780 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 3b 0a :.return.24;.case.7:.return.22;.
be7a0 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 75 72 case.8:.return.21;.case.9:.retur
be7c0 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 20 31 n.10;.case.10:.return.11;.case.1
be7e0 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 34 3b 1:.return.8;.case.12:.return.14;
be800 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 7d 0a .case.13:.return.'INVALID';.}.}.
be820 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 6c 64 }.<?php...........namespace.Seld
be840 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 74 69 \JsonLint;..class.ParsingExcepti
be860 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 74 65 on.extends.\Exception.{.protecte
be880 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 5f 63 d.$details;..public.function.__c
be8a0 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 61 72 onstruct($message,.$details.=.ar
be8c0 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 61 69 ray()).{.$this->details.=.$detai
be8e0 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 67 65 ls;.parent::__construct($message
be900 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 6c 73 );.}..public.function.getDetails
be920 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 7d 0a ().{.return.$this->details;.}.}.
be940 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 73 <?php..namespace.JsonSchema\Cons
be960 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 20 traints;........class.Undefined.
be980 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 6e extends.Constraint.{....function
be9a0 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 24 .check($value,.$schema.=.null,.$
be9c0 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 69 path.=.null,.$i.=.null).{.if.(!i
be9e0 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 0a s_object($schema)).{.return;.}..
bea00 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 61 $path.=.$this->incrementPath($pa
bea20 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 6f th,.$i);....$this->validateCommo
bea40 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 61 nProperties($value,.$schema,.$pa
bea60 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 61 th);....$this->validateTypes($va
bea80 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 0a lue,.$schema,.$path,.$i);...}...
beaa0 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 54 .......public.function.validateT
beac0 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 61 ypes($value,.$schema.=.null,.$pa
beae0 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 73 th.=.null,.$i.=.null).{...if.(is
beb00 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 72 _array($value)).{.$this->checkAr
beb20 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 3b ray($value,.$schema,.$path,.$i);
beb40 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 69 .}....if.(is_object($value).&&.i
beb60 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 68 sset($schema->properties)).{.$th
beb80 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 2d is->checkObject($value,.$schema-
beba0 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 6d >properties,.$path,.isset($schem
bebc0 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 65 a->additionalProperties).?.$sche
bebe0 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 29 ma->additionalProperties.:.null)
bec00 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 0a ;.}....if.(is_string($value)).{.
bec20 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 65 $this->checkString($value,.$sche
bec40 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 65 ma,.$path,.$i);.}....if.(is_nume
bec60 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 65 ric($value)).{.$this->checkNumbe
bec80 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 7d r($value,.$schema,.$path,.$i);.}
beca0 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 0a ....if.(isset($schema->enum)).{.
becc0 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 61 $this->checkEnum($value,.$schema
bece0 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 65 ,.$path,.$i);.}.}..........prote
bed00 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 70 cted.function.validateCommonProp
bed20 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 24 erties($value,.$schema.=.null,.$
bed40 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 28 path.=.null,.$i.=.null).{...if.(
bed60 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 73 isset($schema->extends)).{.$this
bed80 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 61 ->checkUndefined($value,.$schema
beda0 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 28 ->extends,.$path,.$i);.}....if.(
bedc0 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 74 is_object($value).&&.$value.inst
bede0 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 73 anceOf.Undefined).{.if.(isset($s
bee00 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 71 chema->required).&&.$schema->req
bee20 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 20 uired).{.$this->addError($path,.
bee40 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 29 "is.missing.and.it.is.required")
bee60 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 76 ;.}.}.else.{.$this->checkType($v
bee80 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 28 alue,.$schema,.$path);.}....if.(
beea0 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 69 isset($schema->disallow)).{.$ini
beec0 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 24 tErrors.=.$this->getErrors();..$
beee0 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 63 this->checkUndefined($value,.$sc
bef00 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 63 hema->disallow,.$path);....if.(c
bef20 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 6e ount($this->getErrors()).==.coun
bef40 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 6f t($initErrors)).{.$this->addErro
bef60 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 20 r($path,.".disallowed.value.was.
bef80 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 72 matched");.}.else.{.$this->error
befa0 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 6e s.=.$initErrors;.}.}.}.}<?php..n
befc0 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;
befe0 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 74 ........class.Type.extends.Const
bf000 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 65 raint.{....function.check($value
bf020 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 3d .=.null,.$schema.=.null,.$path.=
bf040 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 65 .null,.$i.=.null).{.$type.=.isse
bf060 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 65 t($schema->type).?.$schema->type
bf080 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 69 .:.null;.$isValid.=.true;..if.(i
bf0a0 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 6e s_array($type)).{...$validatedOn
bf0c0 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 29 eType.=.false;.$errors.=.array()
bf0e0 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 69 ;.foreach.($type.as.$tp).{.$vali
bf100 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 64 dator.=.new.Type($this->checkMod
bf120 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 29 e);.$subSchema.=.new.\stdClass()
bf140 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 64 ;.$subSchema->type.=.$tp;.$valid
bf160 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 20 ator->check($value,.$subSchema,.
bf180 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 6f $path,.null);.$error.=.$validato
bf1a0 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 72 r->getErrors();..if.(!count($err
bf1c0 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 3b or)).{.$validatedOneType.=.true;
bf1e0 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 6f .break;.}.else.{.$errors.=.$erro
bf200 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 7b r;.}.}.if.(!$validatedOneType).{
bf220 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 73 .return.$this->addErrors($errors
bf240 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 29 );.}.}.elseif.(is_object($type))
bf260 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 2c .{.$this->checkUndefined($value,
bf280 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 69 .$type,.$path);.}.else.{.$isVali
bf2a0 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 20 d.=.$this->validateType($value,.
bf2c0 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 73 $type);.}..if.($isValid.===.fals
bf2e0 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 74 e).{.$this->addError($path,.gett
bf300 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 74 ype($value)...".value.found,.but
bf320 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 0a .a."...$type...".is.required");.
bf340 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 20 }.}..........protected.function.
bf360 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 20 validateType($value,.$type).{...
bf380 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 77 if.(!$type).{.return.true;.}..sw
bf3a0 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 0a itch.($type).{.case.'integer'.:.
bf3c0 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 65 return.(integer)$value.==.$value
bf3e0 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 27 .?.true.:.is_int($value);.case.'
bf400 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 6c number'.:.return.is_numeric($val
bf420 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 5f ue);.case.'boolean'.:.return.is_
bf440 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 65 bool($value);.case.'object'.:.re
bf460 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 27 turn.is_object($value);...case.'
bf480 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 29 array'.:.return.is_array($value)
bf4a0 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 69 ;.case.'string'.:.return.is_stri
bf4c0 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 6e ng($value);.case.'null'.:.return
bf4e0 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 72 .is_null($value);.case.'any'.:.r
bf500 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 5c eturn.true;.default:.throw.new.\
bf520 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 6a InvalidArgumentException((is_obj
bf540 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 29 ect($value).?.'object'.:.$value)
bf560 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 24 ...'.is.a.invalid.type.for.'...$
bf580 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 6f type);.}.}.}<?php..namespace.Jso
bf5a0 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 73 nSchema\Constraints;........clas
bf5c0 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 0a s.Schema.extends.Constraint.{...
bf5e0 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 2c .public.function.check($element,
bf600 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 24 .$schema.=.null,.$path.=.null,.$
bf620 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 6c i.=.null).{.if.($schema.!==.null
bf640 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 65 ).{...$this->checkUndefined($ele
bf660 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 66 ment,.$schema,.'',.'');.}.elseif
bf680 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 65 .(isset($element->{$this->inline
bf6a0 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 65 SchemaProperty})).{...$this->che
bf6c0 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 3e ckUndefined($element,.$element->
bf6e0 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 27 {$this->inlineSchemaProperty},.'
bf700 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 61 ',.'');.}.else.{.throw.new.\Inva
bf720 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 20 lidArgumentException('no.schema.
bf740 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 7d found.to.verify.against');.}.}.}
bf760 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 73 <?php..namespace.JsonSchema\Cons
bf780 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 74 traints;........class.Number.ext
bf7a0 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 63 ends.Constraint.{....public.func
bf7c0 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 6e tion.check($element,.$schema.=.n
bf7e0 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).{.
bf800 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 26 ..if.(isset($schema->minimum).&&
bf820 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 0a .$element.<.$schema->minimum).{.
bf840 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 76 $this->addError($path,."must.hav
bf860 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 61 e.a.minimum.value.of."...$schema
bf880 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 65 ->minimum);.}....if.(isset($sche
bf8a0 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 65 ma->maximum).&&.$element.>.$sche
bf8c0 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 24 ma->maximum).{.$this->addError($
bf8e0 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 65 path,."must.have.a.maximum.value
bf900 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 20 .of."...$schema->maximum);.}....
bf920 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 20 if.(isset($schema->divisibleBy).
bf940 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 65 &&.$element.%.$schema->divisible
bf960 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 68 By.!=.0).{.$this->addError($path
bf980 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 65 ,."is.not.divisible.by."...$sche
bf9a0 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 61 ma->divisibleBy);.}.}.}<?php..na
bf9c0 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 0a mespace.JsonSchema\Constraints;.
bf9e0 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 73 .......class.Object.extends.Cons
bfa00 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 6d traint.{....function.check($elem
bfa20 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 3d ent,.$definition.=.null,.$path.=
bfa40 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 7b .null,.$additionalProp.=.null).{
bfa60 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 6c ...$this->validateDefinition($el
bfa80 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 24 ement,.$definition,.$path);....$
bfaa0 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 20 this->validateElement($element,.
bfac0 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 50 $definition,.$path,.$additionalP
bfae0 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 6e rop);.}..........public.function
bfb00 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 65 .validateElement($element,.$obje
bfb20 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 6c ctDefinition.=.null,.$path.=.nul
bfb40 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 72 l,.$additionalProp.=.null).{.for
bfb60 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 20 each.($element.as.$i.=>.$value).
bfb80 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 74 {..$property.=.$this->getPropert
bfba0 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 29 y($element,.$i,.new.Undefined())
bfbc0 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 72 ;.$definition.=.$this->getProper
bfbe0 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 66 ty($objectDefinition,.$i);....if
bfc00 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 6e .($this->getProperty($definition
bfc20 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 24 ,.'required').&&.!$property).{.$
bfc40 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 65 this->addError($path,."the.prope
bfc60 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 0a rty."...$i...".is.required");.}.
bfc80 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 65 ...if.($additionalProp.===.false
bfca0 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 20 .&&.$this->inlineSchemaProperty.
bfcc0 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 2d !==.$i.&&.!$definition).{.$this-
bfce0 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 22 >addError($path,."The.property."
bfd00 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 65 ...$i...".is.not.defined.and.the
bfd20 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 74 .definition.does.not.allow.addit
bfd40 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 64 ional.properties");.}....if.($ad
bfd60 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 0a ditionalProp.&&.!$definition).{.
bfd80 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 61 $this->checkUndefined($value,.$a
bfda0 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 20 dditionalProp,.$path,.$i);.}....
bfdc0 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 64 $require.=.$this->getProperty($d
bfde0 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 71 efinition,.'requires');.if.($req
bfe00 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 65 uire.&&.!$this->getProperty($ele
bfe20 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 72 ment,.$require)).{.$this->addErr
bfe40 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 70 or($path,."the.presence.of.the.p
bfe60 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 74 roperty."...$i...".requires.that
bfe80 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 6e ."...$require...".also.be.presen
bfea0 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 28 t");.}....$this->checkUndefined(
bfec0 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 64 $value,.$definition.?.:.new.\std
bfee0 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 0a Class(),.$path,.$i);.}.}........
bff00 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 74 .public.function.validateDefinit
bff20 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 20 ion($element,.$objectDefinition.
bff40 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 20 =.null,.$path.=.null).{.foreach.
bff60 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 6c ($objectDefinition.as.$i.=>.$val
bff80 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 70 ue).{.$property.=.$this->getProp
bffa0 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 64 erty($element,.$i,.new.Undefined
bffc0 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 6f ());.$definition.=.$this->getPro
bffe0 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 74 perty($objectDefinition,.$i);.$t
c0000 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 24 his->checkUndefined($property,.$
c0020 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 0a definition,.$path,.$i);.}.}.....
c0040 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 65 .....protected.function.getPrope
c0060 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 61 rty($element,.$property,.$fallba
c0080 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 65 ck.=.null).{.if.(is_array($eleme
c00a0 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 28 nt).).{.return.array_key_exists(
c00c0 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 5b $property,.$element).?.$element[
c00e0 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 7b $property].:.$fallback;.}.else.{
c0100 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 74 .return.isset($element->$propert
c0120 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 6c y).?.$element->$property.:.$fall
c0140 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 6e back;.}.}.}<?php..namespace.Json
c0160 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 66 Schema\Constraints;.......interf
c0180 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 66 ace.ConstraintInterface.{......f
c01a0 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 74 unction.getErrors();.......funct
c01c0 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 0a ion.addErrors(array.$errors);...
c01e0 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 6d .....function.addError($path,.$m
c0200 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 28 essage);.......function.isValid(
c0220 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 6c );...........function.check($val
c0240 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 6c ue,.$schema.=.null,.$path.=.null
c0260 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 20 ,.$i.=.null);.}<?php..namespace.
c0280 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 61 JsonSchema\Constraints;........a
c02a0 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 65 bstract.class.Constraint.impleme
c02c0 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 63 nts.ConstraintInterface.{.protec
c02e0 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 44 ted.$checkMode.=.self::CHECK_MOD
c0300 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 72 E_NORMAL;.protected.$errors.=.ar
c0320 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 72 ray();.protected.$inlineSchemaPr
c0340 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 4b operty.=.'$schema';..const.CHECK
c0360 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 4f _MODE_NORMAL.=.1;.const.CHECK_MO
c0380 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 6e DE_TYPE_CAST.=.2;.....public.fun
c03a0 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 73 ction.__construct($checkMode.=.s
c03c0 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 2d elf::CHECK_MODE_NORMAL).{.$this-
c03e0 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 70 >checkMode.=.$checkMode;.}.....p
c0400 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 24 ublic.function.addError($path,.$
c0420 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 72 message).{.$this->errors[].=.arr
c0440 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 67 ay(.'property'.=>.$path,.'messag
c0460 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 66 e'.=>.$message.);.}.....public.f
c0480 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 29 unction.addErrors(array.$errors)
c04a0 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 24 .{.$this->errors.=.array_merge($
c04c0 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 75 this->errors,.$errors);.}.....pu
c04e0 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 75 blic.function.getErrors().{.retu
c0500 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 53 rn.array_unique($this->errors,.S
c0520 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 65 ORT_REGULAR);.}.........protecte
c0540 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 20 d.function.incrementPath($path,.
c0560 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 73 $i).{.if.($path.!==.'').{.if.(is
c0580 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 20 _int($i)).{.$path..=.'['...$i...
c05a0 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 74 ']';.}.else.if.($i.==.'').{.$pat
c05c0 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 2e h..=.'';.}.else.{.$path..=.'.'..
c05e0 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 72 .$i;.}.}.else.{.$path.=.$i;.}..r
c0600 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 65 eturn.$path;.}..........protecte
c0620 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 73 d.function.checkArray($value,.$s
c0640 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 3d chema.=.null,.$path.=.null,.$i.=
c0660 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 63 .null).{.$validator.=.new.Collec
c0680 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 74 tion($this->checkMode);.$validat
c06a0 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 68 or->check($value,.$schema,.$path
c06c0 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 61 ,.$i);..$this->addErrors($valida
c06e0 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 72 tor->getErrors());.}..........pr
c0700 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 61 otected.function.checkObject($va
c0720 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
c0740 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 77 l,.$i.=.null).{.$validator.=.new
c0760 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 69 .Object($this->checkMode);.$vali
c0780 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
c07a0 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
c07c0 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());.}.........
c07e0 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 76 .protected.function.checkType($v
c0800 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
c0820 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
c0840 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 64 w.Type($this->checkMode);.$valid
c0860 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 61 ator->check($value,.$schema,.$pa
c0880 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 69 th,.$i);..$this->addErrors($vali
c08a0 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 0a dator->getErrors());.}..........
c08c0 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 65 protected.function.checkUndefine
c08e0 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 20 d($value,.$schema.=.null,.$path.
c0900 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 20 =.null,.$i.=.null).{.$validator.
c0920 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 65 =.new.Undefined($this->checkMode
c0940 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 63 );.$validator->check($value,.$sc
c0960 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 72 hema,.$path,.$i);..$this->addErr
c0980 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 0a ors($validator->getErrors());.}.
c09a0 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 63 .........protected.function.chec
c09c0 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 20 kString($value,.$schema.=.null,.
c09e0 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 69 $path.=.null,.$i.=.null).{.$vali
c0a00 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 4d dator.=.new.String($this->checkM
c0a20 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 20 ode);.$validator->check($value,.
c0a40 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 64 $schema,.$path,.$i);..$this->add
c0a60 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 3b Errors($validator->getErrors());
c0a80 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 63 .}..........protected.function.c
c0aa0 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 6c heckNumber($value,.$schema.=.nul
c0ac0 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 76 l,.$path.=.null,.$i.=.null).{.$v
c0ae0 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 65 alidator.=.new.Number($this->che
c0b00 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
c0b20 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->
c0b40 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(
c0b60 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 6f ));.}..........protected.functio
c0b80 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 75 n.checkEnum($value,.$schema.=.nu
c0ba0 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).{.$
c0bc0 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 63 validator.=.new.Enum($this->chec
c0be0 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 65 kMode);.$validator->check($value
c0c00 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 61 ,.$schema,.$path,.$i);..$this->a
c0c20 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 29 ddErrors($validator->getErrors()
c0c40 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 64 );.}.....public.function.isValid
c0c60 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 3b ().{.return.!$this->getErrors();
c0c80 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 5c .}.}<?php..namespace.JsonSchema\
c0ca0 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 63 Constraints;........class.Collec
c0cc0 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 62 tion.extends.Constraint.{....pub
c0ce0 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 65 lic.function.check($value,.$sche
c0d00 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 75 ma.=.null,.$path.=.null,.$i.=.nu
c0d20 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 74 ll).{...if.(isset($schema->minIt
c0d40 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 2d ems).&&.count($value).<.$schema-
c0d60 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 61 >minItems).{.$this->addError($pa
c0d80 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 20 th,."There.must.be.a.minimum.of.
c0da0 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 65 "...$schema->minItems...".in.the
c0dc0 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 2d .array");.}...if.(isset($schema-
c0de0 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 73 >maxItems).&&.count($value).>.$s
c0e00 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 72 chema->maxItems).{.$this->addErr
c0e20 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 6d or($path,."There.must.be.a.maxim
c0e40 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 20 um.of."...$schema->maxItems...".
c0e60 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 28 in.the.array");.}.....if.(isset(
c0e80 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 75 $schema->uniqueItems).&&.array_u
c0ea0 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 73 nique($value).!=.$value).{.$this
c0ec0 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 20 ->addError($path,."There.are.no.
c0ee0 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 22 duplicates.allowed.in.the.array"
c0f00 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 73 );.}....if.(isset($schema->items
c0f20 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 65 )).{.$this->validateItems($value
c0f40 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 0a ,.$schema,.$path,.$i);.}.}......
c0f60 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 49 ....protected.function.validateI
c0f80 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 61 tems($value,.$schema.=.null,.$pa
c0fa0 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 5f th.=.null,.$i.=.null).{.if.(!is_
c0fc0 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 61 array($schema->items)).{...forea
c0fe0 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 45 ch.($value.as.$k.=>.$v).{.$initE
c1000 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 69 rrors.=.$this->getErrors();....i
c1020 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 65 f.(!isset($schema->additionalIte
c1040 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 20 ms).||.$schema->additionalItems.
c1060 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 6e ===.false).{.$this->checkUndefin
c1080 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 6b ed($v,.$schema->items,.$path,.$k
c10a0 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 3c );.}....if.(count($initErrors).<
c10c0 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 69 .count($this->getErrors()).&&.(i
c10e0 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 26 sset($schema->additionalItems).&
c1100 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
c1120 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 3e alse)).{.$secondErrors.=.$this->
c1140 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 6e getErrors();.$this->checkUndefin
c1160 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 2c ed($v,.$schema->additionalItems,
c1180 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 63 .$path,.$k);.}....if.(isset($sec
c11a0 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 72 ondErrors).&&.count($secondError
c11c0 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 73 s).<.$this->getErrors()).{.$this
c11e0 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 65 ->errors.=.$secondErrors;.}.else
c1200 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 6e if.(isset($secondErrors).&&.coun
c1220 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 2d t($secondErrors).==.count($this-
c1240 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 3d >getErrors())).{.$this->errors.=
c1260 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 72 .$initErrors;.}.}.}.else.{...for
c1280 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 28 each.($value.as.$k.=>.$v).{.if.(
c12a0 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 74 array_key_exists($k,.$schema->it
c12c0 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 76 ems)).{.$this->checkUndefined($v
c12e0 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 29 ,.$schema->items[$k],.$path,.$k)
c1300 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 74 ;.}.else.{...if.(array_key_exist
c1320 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 26 s('additionalItems',.$schema).&&
c1340 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 61 .$schema->additionalItems.!==.fa
c1360 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 2c lse).{.$this->checkUndefined($v,
c1380 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 68 .$schema->additionalItems,.$path
c13a0 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 28 ,.$k);.}.else.{.$this->addError(
c13c0 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 2e .$path,.'The.item.'...$i...'['..
c13e0 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 6f .$k...'].is.not.defined.in.the.o
c1400 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 65 bjTypeDef.and.the.objTypeDef.doe
c1420 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 65 s.not.allow.additional.propertie
c1440 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 24 s'.);.}.}.}....for.($k.=.count($
c1460 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 6d value);.$k.<.count($schema->item
c1480 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 65 s);.$k++).{.$this->checkUndefine
c14a0 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 6d d(new.Undefined(),.$schema->item
c14c0 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 0a s[$k],.$path,.$k);.}.}.}.}<?php.
c14e0 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 74 .namespace.JsonSchema\Constraint
c1500 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 6e s;........class.Enum.extends.Con
c1520 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 65 straint.{....public.function.che
c1540 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 61 ck($element,.$schema.=.null,.$pa
c1560 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 20 th.=.null,.$i.=.null).{.foreach.
c1580 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 65 ($schema->enum.as.$possibleValue
c15a0 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 65 ).{.if.($possibleValue.==.$eleme
c15c0 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 0a nt).{.$found.=.true;.break;.}.}.
c15e0 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 64 .if.(!isset($found)).{.$this->ad
c1600 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 76 dError($path,."does.not.have.a.v
c1620 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 6c alue.in.the.enumeration."...impl
c1640 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 7d ode(',.',.$schema->enum));.}.}.}
c1660 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 73 <?php..namespace.JsonSchema\Cons
c1680 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 74 traints;........class.String.ext
c16a0 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 63 ends.Constraint.{....public.func
c16c0 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 6e tion.check($element,.$schema.=.n
c16e0 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).{.
c1700 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 20 ..if.(isset($schema->maxLength).
c1720 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 6d &&.strlen($element).>.$schema->m
c1740 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 74 axLength).{.$this->addError($pat
c1760 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 2d h,."must.be.at.most."...$schema-
c1780 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 29 >maxLength...".characters.long")
c17a0 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 6e ;.}....if.(isset($schema->minLen
c17c0 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 65 gth).&&.strlen($element).<.$sche
c17e0 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 72 ma->minLength).{.$this->addError
c1800 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 73 ($path,."must.be.at.least."...$s
c1820 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 20 chema->minLength...".characters.
c1840 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 3e long");.}....if.(isset($schema->
c1860 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 73 pattern).&&.!preg_match('/'...$s
c1880 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 29 chema->pattern...'/',.$element))
c18a0 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 20 .{.$this->addError($path,."does.
c18c0 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 20 not.match.the.regex.pattern."...
c18e0 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 6e $schema->pattern);.}.}.}<?php..n
c1900 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 63 amespace.JsonSchema;..use.JsonSc
c1920 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 6f hema\Constraints\Schema;.use.Jso
c1940 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 0a nSchema\Constraints\Constraint;.
c1960 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 20 ........class.Validator.extends.
c1980 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 65 Constraint.{........function.che
c19a0 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 68 ck($value,.$schema.=.null,.$path
c19c0 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
c19e0 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 3b .=.new.Schema($this->checkMode);
c1a00 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 65 .$validator->check($value,.$sche
c1a20 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 72 ma);.$this->addErrors($validator
c1a40 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 0a 72 65 71 75 ->getErrors());.}.}<?php....requ
c1a60 69 72 65 5f 6f 6e 63 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 ire_once.__DIR__...'/composer'..
c1a80 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 .'/autoload_real.php';..return.C
c1aa0 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 62 38 31 65 30 62 38 39 37 64 61 omposerAutoloaderInitb81e0b897da
c1ac0 66 66 62 66 37 38 32 35 39 34 66 65 34 66 34 32 30 33 33 35 30 3a 3a 67 65 74 4c 6f 61 64 65 72 ffbf782594fe4f4203350::getLoader
c1ae0 28 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 69 72 6e 61 6d ();.<?php....$vendorDir.=.dirnam
c1b00 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d e(dirname(__FILE__));.$baseDir.=
c1b20 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
c1b40 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
c1b60 73 5c 5c 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 s\\'.=>.$vendorDir...'/symfony/p
c1b80 72 6f 63 65 73 73 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 rocess',.'Symfony\\Component\\Fi
c1ba0 6e 64 65 72 5c 5c 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 nder\\'.=>.$vendorDir...'/symfon
c1bc0 79 2f 66 69 6e 64 65 72 27 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c y/finder',.'Symfony\\Component\\
c1be0 43 6f 6e 73 6f 6c 65 5c 5c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d Console\\'.=>.$vendorDir...'/sym
c1c00 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 27 2c 0a 27 53 65 6c 64 5c 5c 4a 73 6f 6e 4c 69 6e 74 27 20 fony/console',.'Seld\\JsonLint'.
c1c20 3d 3e 20 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 =>.$vendorDir...'/seld/jsonlint/
c1c40 73 72 63 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 src',.'JsonSchema'.=>.$vendorDir
c1c60 20 2e 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 ...'/justinrainbow/json-schema/s
c1c80 72 63 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 rc',.'Composer'.=>.$baseDir...'/
c1ca0 73 72 63 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 src',.);.<?php....$vendorDir.=.d
c1cc0 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 65 irname(dirname(__FILE__));.$base
c1ce0 44 69 72 20 3d 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 Dir.=.dirname($vendorDir);..retu
c1d00 72 6e 20 61 72 72 61 79 28 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 rn.array(.);.<?php....class.Comp
c1d20 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 62 38 31 65 30 62 38 39 37 64 61 66 66 62 oserAutoloaderInitb81e0b897daffb
c1d40 66 37 38 32 35 39 34 66 65 34 66 34 32 30 33 33 35 30 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 f782594fe4f4203350.{.private.sta
c1d60 74 69 63 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 tic.$loader;..public.static.func
c1d80 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 28 24 63 6c 61 73 73 29 0a 7b 0a 69 tion.loadClassLoader($class).{.i
c1da0 66 20 28 27 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 f.('Composer\Autoload\ClassLoade
c1dc0 72 27 20 3d 3d 3d 20 24 63 6c 61 73 73 29 20 7b 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f r'.===.$class).{.require.__DIR__
c1de0 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c ...'/ClassLoader.php';.}.}..publ
c1e00 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 61 64 65 72 28 29 0a 7b ic.static.function.getLoader().{
c1e20 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 29 20 7b 0a 72 .if.(null.!==.self::$loader).{.r
c1e40 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 73 70 6c 5f 61 75 74 6f eturn.self::$loader;.}..spl_auto
c1e60 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 load_register(array('ComposerAut
c1e80 6f 6c 6f 61 64 65 72 49 6e 69 74 62 38 31 65 30 62 38 39 37 64 61 66 66 62 66 37 38 32 35 39 34 oloaderInitb81e0b897daffbf782594
c1ea0 66 65 34 66 34 32 30 33 33 35 30 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 fe4f4203350',.'loadClassLoader')
c1ec0 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 20 3d 20 24 ,.true,.true);.self::$loader.=.$
c1ee0 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c loader.=.new.\Composer\Autoload\
c1f00 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 ClassLoader();.spl_autoload_unre
c1f20 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 gister(array('ComposerAutoloader
c1f40 49 6e 69 74 62 38 31 65 30 62 38 39 37 64 61 66 66 62 66 37 38 32 35 39 34 66 65 34 66 34 32 30 Initb81e0b897daffbf782594fe4f420
c1f60 33 33 35 30 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 3b 0a 0a 24 76 65 3350',.'loadClassLoader'));..$ve
c1f80 6e 64 6f 72 44 69 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 ndorDir.=.dirname(__DIR__);.$bas
c1fa0 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 24 6d 61 eDir.=.dirname($vendorDir);..$ma
c1fc0 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 p.=.require.__DIR__...'/autoload
c1fe0 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 70 20 _namespaces.php';.foreach.($map.
c2000 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
c2020 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 0a 24 63 r->add($namespace,.$path);.}..$c
c2040 6c 61 73 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 lassMap.=.require.__DIR__...'/au
c2060 74 6f 6c 6f 61 64 5f 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 toload_classmap.php';.if.($class
c2080 4d 61 70 29 20 7b 0a 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 Map).{.$loader->addClassMap($cla
c20a0 73 73 4d 61 70 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 74 72 75 ssMap);.}..$loader->register(tru
c20c0 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a e);..return.$loader;.}.}.<?php..
c20e0 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
c2100 6f 6c 6f 61 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a oload;..........................
c2120 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 ....class.ClassLoader.{.private.
c2140 24 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 61 $prefixes.=.array();.private.$fa
c2160 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 75 llbackDirs.=.array();.private.$u
c2180 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 seIncludePath.=.false;.private.$
c21a0 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 classMap.=.array();..public.func
c21c0 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.getPrefixes().{.return.$thi
c21e0 73 2d 3e 70 72 65 66 69 78 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 s->prefixes;.}..public.function.
c2200 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 getFallbackDirs().{.return.$this
c2220 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->fallbackDirs;.}..public.functi
c2240 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d on.getClassMap().{.return.$this-
c2260 3e 63 6c 61 73 73 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >classMap;.}.....public.function
c2280 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 70 29 0a 7b 0a .addClassMap(array.$classMap).{.
c22a0 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c if.($this->classMap).{.$this->cl
c22c0 61 73 73 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 assMap.=.array_merge($this->clas
c22e0 73 4d 61 70 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 sMap,.$classMap);.}.else.{.$this
c2300 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ->classMap.=.$classMap;.}.}.....
c2320 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c ....public.function.add($prefix,
c2340 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 .$paths,.$prepend.=.false).{.if.
c2360 28 21 24 70 72 65 66 69 78 29 20 7b 0a 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 24 74 68 (!$prefix).{.if.($prepend).{.$th
c2380 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a is->fallbackDirs.=.array_merge(.
c23a0 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 (array).$paths,.$this->fallbackD
c23c0 69 72 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 irs.);.}.else.{.$this->fallbackD
c23e0 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 irs.=.array_merge(.$this->fallba
c2400 63 6b 44 69 72 73 2c 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a 0a 72 65 74 ckDirs,.(array).$paths.);.}..ret
c2420 75 72 6e 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 urn;.}.if.(!isset($this->prefixe
c2440 73 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 s[$prefix])).{.$this->prefixes[$
c2460 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 0a 0a 72 65 74 75 72 prefix].=.(array).$paths;..retur
c2480 6e 3b 0a 7d 0a 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 n;.}.if.($prepend).{.$this->pref
c24a0 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 0a 28 61 72 ixes[$prefix].=.array_merge(.(ar
c24c0 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 ray).$paths,.$this->prefixes[$pr
c24e0 65 66 69 78 5d 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 efix].);.}.else.{.$this->prefixe
c2500 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 0a 24 74 68 69 73 2d s[$prefix].=.array_merge(.$this-
c2520 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 2c 0a 28 61 72 72 61 79 29 20 24 70 61 74 >prefixes[$prefix],.(array).$pat
c2540 68 73 0a 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 6f 6e hs.);.}.}........public.function
c2560 20 73 65 74 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 .set($prefix,.$paths).{.if.(!$pr
c2580 65 66 69 78 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 28 61 efix).{.$this->fallbackDirs.=.(a
c25a0 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 74 68 69 73 2d 3e rray).$paths;..return;.}.$this->
c25c0 70 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 prefixes[$prefix].=.(array).$pat
c25e0 68 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 55 hs;.}.......public.function.setU
c2600 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 7b seIncludePath($useIncludePath).{
c2620 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 63 .$this->useIncludePath.=.$useInc
c2640 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 69 ludePath;.}........public.functi
c2660 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 20 on.getUseIncludePath().{.return.
c2680 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 70 $this->useIncludePath;.}.......p
c26a0 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 64 ublic.function.register($prepend
c26c0 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 65 .=.false).{.spl_autoload_registe
c26e0 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 75 r(array($this,.'loadClass'),.tru
c2700 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 74 e,.$prepend);.}.....public.funct
c2720 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 5f ion.unregister().{.spl_autoload_
c2740 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 61 unregister(array($this,.'loadCla
c2760 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 20 ss'));.}........public.function.
c2780 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 20 loadClass($class).{.if.($file.=.
c27a0 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 75 $this->findFile($class)).{.inclu
c27c0 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 0a de.$file;..return.true;.}.}.....
c27e0 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 6c ....public.function.findFile($cl
c2800 61 73 73 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a ass).{.if.('\\'.==.$class[0]).{.
c2820 24 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 7d 0a 0a 69 $class.=.substr($class,.1);.}..i
c2840 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d f.(isset($this->classMap[$class]
c2860 29 29 20 7b 0a 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 6c 61 )).{.return.$this->classMap[$cla
c2880 73 73 5d 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 72 ss];.}..if.(false.!==.$pos.=.str
c28a0 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 61 rpos($class,.'\\')).{...$classPa
c28c0 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 59 th.=.str_replace('\\',.DIRECTORY
c28e0 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 70 _SEPARATOR,.substr($class,.0,.$p
c2900 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 61 os))...DIRECTORY_SEPARATOR;.$cla
c2920 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 31 ssName.=.substr($class,.$pos.+.1
c2940 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 3b );.}.else.{...$classPath.=.null;
c2960 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 50 .$className.=.$class;.}..$classP
c2980 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 52 ath..=.str_replace('_',.DIRECTOR
c29a0 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 70 Y_SEPARATOR,.$className)...'.php
c29c0 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 20 ';..foreach.($this->prefixes.as.
c29e0 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 74 $prefix.=>.$dirs).{.if.(0.===.st
c2a00 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 68 rpos($class,.$prefix)).{.foreach
c2a20 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 73 .($dirs.as.$dir).{.if.(file_exis
c2a40 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 20 ts($dir...DIRECTORY_SEPARATOR...
c2a60 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 52 $classPath)).{.return.$dir...DIR
c2a80 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 7d ECTORY_SEPARATOR...$classPath;.}
c2aa0 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 6b .}.}.}..foreach.($this->fallback
c2ac0 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 28 Dirs.as.$dir).{.if.(file_exists(
c2ae0 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 6c $dir...DIRECTORY_SEPARATOR...$cl
c2b00 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 54 assPath)).{.return.$dir...DIRECT
c2b20 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 0a ORY_SEPARATOR...$classPath;.}.}.
c2b40 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 66 .if.($this->useIncludePath.&&.$f
c2b60 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 74 ile.=.stream_resolve_include_pat
c2b80 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 7d h($classPath)).{.return.$file;.}
c2ba0 0a 0a 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 6c 61 73 73 5d ..return.$this->classMap[$class]
c2bc0 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 69 66 20 28 50 48 50 5f 53 41 50 .=.false;.}.}.<?php..if.(PHP_SAP
c2be0 49 20 21 3d 3d 20 27 63 6c 69 27 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 27 57 61 72 6e 69 6e 67 I.!==.'cli').{.....echo.'Warning
c2c00 3a 20 43 6f 6d 70 6f 73 65 72 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 76 6f 6b 65 64 20 76 69 61 :.Composer.should.be.invoked.via
c2c20 20 74 68 65 20 43 4c 49 20 76 65 72 73 69 6f 6e 20 6f 66 20 50 48 50 2c 20 6e 6f 74 20 74 68 65 .the.CLI.version.of.PHP,.not.the
c2c40 20 27 2e 50 48 50 5f 53 41 50 49 2e 27 20 53 41 50 49 27 2e 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 0a .'.PHP_SAPI.'.SAPI'.PHP_EOL;.}..
c2c60 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 73 72 63 2f 62 6f 6f 74 73 74 72 require.__DIR__.'/../src/bootstr
c2c80 61 70 2e 70 68 70 27 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 ap.php';..use.Composer\Console\A
c2ca0 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 2d 31 29 pplication;..error_reporting(-1)
c2cc0 3b 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 5f 73 65 74 27 ;..if.(function_exists('ini_set'
c2ce0 29 29 20 7b 0a 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 64 69 73 70 6c 61 79 5f 65 72 72 6f 72 )).{.....@ini_set('display_error
c2d00 73 27 2c 20 31 29 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 20 3d 20 66 75 s',.1);......$memoryInBytes.=.fu
c2d20 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 75 6e 69 74 20 nction.($value).{.........$unit.
c2d40 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 2d 31 2c 20 =.strtolower(substr($value,.-1,.
c2d60 31 29 29 3b 0a 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 3d 20 28 69 6e 74 29 20 24 76 61 6c 1));.........$value.=.(int).$val
c2d80 75 65 3b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 24 75 6e 69 74 29 20 7b 0a 20 20 20 20 ue;.........switch($unit).{.....
c2da0 20 20 20 20 20 20 20 20 63 61 73 65 20 27 67 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........case.'g':...............
c2dc0 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..$value.*=.1024;...............
c2de0 20 20 2f 2f 20 6e 6f 20 62 72 65 61 6b 20 28 63 75 6d 75 6c 61 74 69 76 65 20 6d 75 6c 74 69 70 ..//.no.break.(cumulative.multip
c2e00 6c 69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6d 27 3a 0a 20 20 20 20 lier).............case.'m':.....
c2e20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 ............$value.*=.1024;.....
c2e40 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 20 62 72 65 61 6b 20 28 63 75 6d 75 6c 61 74 ............//.no.break.(cumulat
c2e60 69 76 65 20 6d 75 6c 74 69 70 6c 69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 ive.multiplier).............case
c2e80 20 27 6b 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 .'k':.................$value.*=.
c2ea0 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 1024;.........}..........return.
c2ec0 24 76 61 6c 75 65 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 $value;.....};......$memoryLimit
c2ee0 20 3d 20 74 72 69 6d 28 69 6e 69 5f 67 65 74 28 27 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 27 29 29 .=.trim(ini_get('memory_limit'))
c2f00 3b 0a 20 20 20 20 2f 2f 20 49 6e 63 72 65 61 73 65 20 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 20 69 ;.....//.Increase.memory_limit.i
c2f20 66 20 69 74 20 69 73 20 6c 6f 77 65 72 20 74 68 61 6e 20 35 31 32 4d 0a 20 20 20 20 69 66 20 28 f.it.is.lower.than.512M.....if.(
c2f40 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 21 3d 20 2d 31 20 26 26 20 24 6d 65 6d 6f 72 79 49 6e 42 $memoryLimit.!=.-1.&&.$memoryInB
c2f60 79 74 65 73 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 20 3c 20 35 31 32 20 2a 20 31 30 32 34 20 ytes($memoryLimit).<.512.*.1024.
c2f80 2a 20 31 30 32 34 29 20 7b 0a 20 20 20 20 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 6d 65 6d 6f *.1024).{.........@ini_set('memo
c2fa0 72 79 5f 6c 69 6d 69 74 27 2c 20 27 35 31 32 4d 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 75 6e ry_limit',.'512M');.....}.....un
c2fc0 73 65 74 28 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 2c 20 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 set($memoryInBytes,.$memoryLimit
c2fe0 29 3b 0a 7d 0a 0a 2f 2f 20 72 75 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 70 70 6c 69 63 61 );.}..//.run.the.command.applica
c3000 74 69 6f 6e 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 tion.$application.=.new.Applicat
c3020 69 6f 6e 28 29 3b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 29 3b 0a 0a 43 6f 70 ion();.$application->run();..Cop
c3040 79 72 69 67 68 74 20 28 63 29 20 32 30 31 31 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 2c 20 4a yright.(c).2011.Nils.Adermann,.J
c3060 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 ordi.Boggiano..Permission.is.her
c3080 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 eby.granted,.free.of.charge,.to.
c30a0 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 any.person.obtaining.a.copy.of.t
c30c0 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 his.software.and.associated.docu
c30e0 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 mentation.files.(the."Software")
c3100 2c 20 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 ,.to.deal.in.the.Software.withou
c3120 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 t.restriction,.including.without
c3140 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 .limitation.the.rights.to.use,.c
c3160 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 opy,.modify,.merge,.publish,.dis
c3180 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c tribute,.sublicense,.and/or.sell
c31a0 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 .copies.of.the.Software,.and.to.
c31c0 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 permit.persons.to.whom.the.Softw
c31e0 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 are.is.furnished.to.do.so,.subje
c3200 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a ct.to.the.following.conditions:.
c3220 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 .The.above.copyright.notice.and.
c3240 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 this.permission.notice.shall.be.
c3260 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 included.in.all.copies.or.substa
c3280 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a ntial.portions.of.the.Software..
c32a0 0a 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 .THE.SOFTWARE.IS.PROVIDED."AS.IS
c32c0 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c ",.WITHOUT.WARRANTY.OF.ANY.KIND,
c32e0 20 45 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 .EXPRESS.OR.IMPLIED,.INCLUDING.B
c3300 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 UT.NOT.LIMITED.TO.THE.WARRANTIES
c3320 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 .OF.MERCHANTABILITY,.FITNESS.FOR
c3340 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 .A.PARTICULAR.PURPOSE.AND.NONINF
c3360 52 49 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 RINGEMENT..IN.NO.EVENT.SHALL.THE
c3380 0a 41 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 .AUTHORS.OR.COPYRIGHT.HOLDERS.BE
c33a0 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f .LIABLE.FOR.ANY.CLAIM,.DAMAGES.O
c33c0 52 20 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e R.OTHER.LIABILITY,.WHETHER.IN.AN
c33e0 20 41 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 .ACTION.OF.CONTRACT,.TORT.OR.OTH
c3400 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 ERWISE,.ARISING.FROM,.OUT.OF.OR.
c3420 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 IN.CONNECTION.WITH.THE.SOFTWARE.
c3440 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a OR.THE.USE.OR.OTHER.DEALINGS.IN.
c3460 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 0a e1 4b a1 8a 11 d6 6c f8 18 be 96 03 4f 7c 89 4a 11 THE.SOFTWARE....K....l.....O|.J.
c3480 e0 0c 5c 02 00 00 00 47 42 4d 42 ..\....GBMB