diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5e314ab..4c0d25a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,10 +2,11 @@
### [Check compatibility with Neard](https://github.com/crazy-max/neard/wiki/binPHP#latest) before downloading.
-## r9 (2016/07/14)
+## r9 (2016/10/06)
-* New bundles : 5.5.37, 5.6.23, 7.0.8
+* New bundles : 5.5.37, 5.5.38, 5.6.23, 5.6.26, 7.0.8, 7.0.11
* Add Memcache extension
+* Enable php_pdo_pgsql and php_pgsql extensions (required by PostgreSQL)
## r8 (2016/06/20)
diff --git a/bin/php5.2.17/php.ini b/bin/php5.2.17/php.ini
index df08514..bf93e79 100644
--- a/bin/php5.2.17/php.ini
+++ b/bin/php5.2.17/php.ini
@@ -697,9 +697,9 @@ extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.2.17/php.ini.nrd b/bin/php5.2.17/php.ini.nrd
index df08514..3bebf07 100644
--- a/bin/php5.2.17/php.ini.nrd
+++ b/bin/php5.2.17/php.ini.nrd
@@ -302,7 +302,7 @@ expose_php = On
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; Maximum execution time of each script, in seconds
-max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
+max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 512M ; Maximum amount of memory a script may consume (128MB)
@@ -697,9 +697,9 @@ extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.3.13/php.ini b/bin/php5.3.13/php.ini
index 7e657aa..cf90d06 100644
--- a/bin/php5.3.13/php.ini
+++ b/bin/php5.3.13/php.ini
@@ -990,9 +990,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.3.13/php.ini.nrd b/bin/php5.3.13/php.ini.nrd
index 7e657aa..cf90d06 100644
--- a/bin/php5.3.13/php.ini.nrd
+++ b/bin/php5.3.13/php.ini.nrd
@@ -990,9 +990,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.3.28/php.ini b/bin/php5.3.28/php.ini
index 95f908b..261ebc3 100644
--- a/bin/php5.3.28/php.ini
+++ b/bin/php5.3.28/php.ini
@@ -990,9 +990,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.3.28/php.ini.nrd b/bin/php5.3.28/php.ini.nrd
index 95f908b..261ebc3 100644
--- a/bin/php5.3.28/php.ini.nrd
+++ b/bin/php5.3.28/php.ini.nrd
@@ -990,9 +990,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.3.29/php.ini b/bin/php5.3.29/php.ini
index 26ce60d..4d8bbf8 100644
--- a/bin/php5.3.29/php.ini
+++ b/bin/php5.3.29/php.ini
@@ -988,9 +988,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.3.29/php.ini.nrd b/bin/php5.3.29/php.ini.nrd
index 26ce60d..4d8bbf8 100644
--- a/bin/php5.3.29/php.ini.nrd
+++ b/bin/php5.3.29/php.ini.nrd
@@ -988,9 +988,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.4.16/php.ini b/bin/php5.4.16/php.ini
index c6061e9..c45a3d0 100644
--- a/bin/php5.4.16/php.ini
+++ b/bin/php5.4.16/php.ini
@@ -1013,9 +1013,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.4.16/php.ini.nrd b/bin/php5.4.16/php.ini.nrd
index c6061e9..c45a3d0 100644
--- a/bin/php5.4.16/php.ini.nrd
+++ b/bin/php5.4.16/php.ini.nrd
@@ -1013,9 +1013,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.4.26/php.ini b/bin/php5.4.26/php.ini
index 96d038b..029351f 100644
--- a/bin/php5.4.26/php.ini
+++ b/bin/php5.4.26/php.ini
@@ -1013,9 +1013,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.4.26/php.ini.nrd b/bin/php5.4.26/php.ini.nrd
index 96d038b..029351f 100644
--- a/bin/php5.4.26/php.ini.nrd
+++ b/bin/php5.4.26/php.ini.nrd
@@ -1013,9 +1013,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.4.30/php.ini b/bin/php5.4.30/php.ini
index a4350e8..9146592 100644
--- a/bin/php5.4.30/php.ini
+++ b/bin/php5.4.30/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.4.30/php.ini.nrd b/bin/php5.4.30/php.ini.nrd
index a4350e8..9146592 100644
--- a/bin/php5.4.30/php.ini.nrd
+++ b/bin/php5.4.30/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
diff --git a/bin/php5.4.31/php.ini b/bin/php5.4.31/php.ini
index bc39ec1..1b25d49 100644
--- a/bin/php5.4.31/php.ini
+++ b/bin/php5.4.31/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.4.31/php.ini.nrd b/bin/php5.4.31/php.ini.nrd
index bc39ec1..1b25d49 100644
--- a/bin/php5.4.31/php.ini.nrd
+++ b/bin/php5.4.31/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.4.40/php.ini b/bin/php5.4.40/php.ini
index 8524119..d2974a7 100644
--- a/bin/php5.4.40/php.ini
+++ b/bin/php5.4.40/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.4.40/php.ini.nrd b/bin/php5.4.40/php.ini.nrd
index 8524119..d2974a7 100644
--- a/bin/php5.4.40/php.ini.nrd
+++ b/bin/php5.4.40/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.4.45/php.ini b/bin/php5.4.45/php.ini
index 224b0e3..307ec0e 100644
--- a/bin/php5.4.45/php.ini
+++ b/bin/php5.4.45/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.4.45/php.ini.nrd b/bin/php5.4.45/php.ini.nrd
index 224b0e3..307ec0e 100644
--- a/bin/php5.4.45/php.ini.nrd
+++ b/bin/php5.4.45/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.10/php.ini b/bin/php5.5.10/php.ini
index bc6cbfe..295c2eb 100644
--- a/bin/php5.5.10/php.ini
+++ b/bin/php5.5.10/php.ini
@@ -891,9 +891,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.10/php.ini.nrd b/bin/php5.5.10/php.ini.nrd
index bc6cbfe..295c2eb 100644
--- a/bin/php5.5.10/php.ini.nrd
+++ b/bin/php5.5.10/php.ini.nrd
@@ -891,9 +891,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.14/php.ini b/bin/php5.5.14/php.ini
index 8c597f0..072da40 100644
--- a/bin/php5.5.14/php.ini
+++ b/bin/php5.5.14/php.ini
@@ -891,9 +891,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.14/php.ini.nrd b/bin/php5.5.14/php.ini.nrd
index 8c597f0..072da40 100644
--- a/bin/php5.5.14/php.ini.nrd
+++ b/bin/php5.5.14/php.ini.nrd
@@ -891,9 +891,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.16/php.ini b/bin/php5.5.16/php.ini
index 84ea0f3..1ca7a33 100644
--- a/bin/php5.5.16/php.ini
+++ b/bin/php5.5.16/php.ini
@@ -890,9 +890,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.16/php.ini.nrd b/bin/php5.5.16/php.ini.nrd
index 84ea0f3..1ca7a33 100644
--- a/bin/php5.5.16/php.ini.nrd
+++ b/bin/php5.5.16/php.ini.nrd
@@ -890,9 +890,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.24/php.ini b/bin/php5.5.24/php.ini
index d101bd6..56664d9 100644
--- a/bin/php5.5.24/php.ini
+++ b/bin/php5.5.24/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.24/php.ini.nrd b/bin/php5.5.24/php.ini.nrd
index d101bd6..56664d9 100644
--- a/bin/php5.5.24/php.ini.nrd
+++ b/bin/php5.5.24/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.30/php.ini b/bin/php5.5.30/php.ini
index 42a71bc..8fa0c45 100644
--- a/bin/php5.5.30/php.ini
+++ b/bin/php5.5.30/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.30/php.ini.nrd b/bin/php5.5.30/php.ini.nrd
index 42a71bc..8fa0c45 100644
--- a/bin/php5.5.30/php.ini.nrd
+++ b/bin/php5.5.30/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.31/php.ini b/bin/php5.5.31/php.ini
index 48e17f7..a2ce51f 100644
--- a/bin/php5.5.31/php.ini
+++ b/bin/php5.5.31/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.31/php.ini.nrd b/bin/php5.5.31/php.ini.nrd
index 48e17f7..a2ce51f 100644
--- a/bin/php5.5.31/php.ini.nrd
+++ b/bin/php5.5.31/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.32/php.ini b/bin/php5.5.32/php.ini
index 1179ae2..f05c798 100644
--- a/bin/php5.5.32/php.ini
+++ b/bin/php5.5.32/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.32/php.ini.nrd b/bin/php5.5.32/php.ini.nrd
index 1179ae2..f05c798 100644
--- a/bin/php5.5.32/php.ini.nrd
+++ b/bin/php5.5.32/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.34/php.ini b/bin/php5.5.34/php.ini
index 32a395f..a3518e2 100644
--- a/bin/php5.5.34/php.ini
+++ b/bin/php5.5.34/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.34/php.ini.nrd b/bin/php5.5.34/php.ini.nrd
index 32a395f..a3518e2 100644
--- a/bin/php5.5.34/php.ini.nrd
+++ b/bin/php5.5.34/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.35/php.ini b/bin/php5.5.35/php.ini
index 7553c95..9305210 100644
--- a/bin/php5.5.35/php.ini
+++ b/bin/php5.5.35/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.35/php.ini.nrd b/bin/php5.5.35/php.ini.nrd
index 7553c95..9305210 100644
--- a/bin/php5.5.35/php.ini.nrd
+++ b/bin/php5.5.35/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.36/php.ini b/bin/php5.5.36/php.ini
index d8bc404..88dba33 100644
--- a/bin/php5.5.36/php.ini
+++ b/bin/php5.5.36/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.36/php.ini.nrd b/bin/php5.5.36/php.ini.nrd
index d8bc404..88dba33 100644
--- a/bin/php5.5.36/php.ini.nrd
+++ b/bin/php5.5.36/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.37/php.ini b/bin/php5.5.37/php.ini
index 1a31866..015b099 100644
--- a/bin/php5.5.37/php.ini
+++ b/bin/php5.5.37/php.ini
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.37/php.ini.nrd b/bin/php5.5.37/php.ini.nrd
index 1a31866..015b099 100644
--- a/bin/php5.5.37/php.ini.nrd
+++ b/bin/php5.5.37/php.ini.nrd
@@ -887,9 +887,9 @@ extension=php_openssl.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
+extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
+extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
diff --git a/bin/php5.5.38/deplister.exe b/bin/php5.5.38/deplister.exe
new file mode 100644
index 0000000..484be00
Binary files /dev/null and b/bin/php5.5.38/deplister.exe differ
diff --git a/bin/php5.5.38/ext/php_bz2.dll b/bin/php5.5.38/ext/php_bz2.dll
new file mode 100644
index 0000000..ec8375a
Binary files /dev/null and b/bin/php5.5.38/ext/php_bz2.dll differ
diff --git a/bin/php5.5.38/ext/php_com_dotnet.dll b/bin/php5.5.38/ext/php_com_dotnet.dll
new file mode 100644
index 0000000..3071271
Binary files /dev/null and b/bin/php5.5.38/ext/php_com_dotnet.dll differ
diff --git a/bin/php5.5.38/ext/php_curl.dll b/bin/php5.5.38/ext/php_curl.dll
new file mode 100644
index 0000000..ec05ced
Binary files /dev/null and b/bin/php5.5.38/ext/php_curl.dll differ
diff --git a/bin/php5.5.38/ext/php_enchant.dll b/bin/php5.5.38/ext/php_enchant.dll
new file mode 100644
index 0000000..a431ea0
Binary files /dev/null and b/bin/php5.5.38/ext/php_enchant.dll differ
diff --git a/bin/php5.5.38/ext/php_exif.dll b/bin/php5.5.38/ext/php_exif.dll
new file mode 100644
index 0000000..aabde69
Binary files /dev/null and b/bin/php5.5.38/ext/php_exif.dll differ
diff --git a/bin/php5.5.38/ext/php_fileinfo.dll b/bin/php5.5.38/ext/php_fileinfo.dll
new file mode 100644
index 0000000..64ed2c9
Binary files /dev/null and b/bin/php5.5.38/ext/php_fileinfo.dll differ
diff --git a/bin/php5.5.38/ext/php_gd2.dll b/bin/php5.5.38/ext/php_gd2.dll
new file mode 100644
index 0000000..1875e90
Binary files /dev/null and b/bin/php5.5.38/ext/php_gd2.dll differ
diff --git a/bin/php5.5.38/ext/php_gettext.dll b/bin/php5.5.38/ext/php_gettext.dll
new file mode 100644
index 0000000..f49727e
Binary files /dev/null and b/bin/php5.5.38/ext/php_gettext.dll differ
diff --git a/bin/php5.5.38/ext/php_gmp.dll b/bin/php5.5.38/ext/php_gmp.dll
new file mode 100644
index 0000000..22ebe3c
Binary files /dev/null and b/bin/php5.5.38/ext/php_gmp.dll differ
diff --git a/bin/php5.5.38/ext/php_imagick.dll b/bin/php5.5.38/ext/php_imagick.dll
new file mode 100644
index 0000000..d63d956
Binary files /dev/null and b/bin/php5.5.38/ext/php_imagick.dll differ
diff --git a/bin/php5.5.38/ext/php_imap.dll b/bin/php5.5.38/ext/php_imap.dll
new file mode 100644
index 0000000..040042c
Binary files /dev/null and b/bin/php5.5.38/ext/php_imap.dll differ
diff --git a/bin/php5.5.38/ext/php_interbase.dll b/bin/php5.5.38/ext/php_interbase.dll
new file mode 100644
index 0000000..960c9be
Binary files /dev/null and b/bin/php5.5.38/ext/php_interbase.dll differ
diff --git a/bin/php5.5.38/ext/php_intl.dll b/bin/php5.5.38/ext/php_intl.dll
new file mode 100644
index 0000000..6c11fd8
Binary files /dev/null and b/bin/php5.5.38/ext/php_intl.dll differ
diff --git a/bin/php5.5.38/ext/php_ldap.dll b/bin/php5.5.38/ext/php_ldap.dll
new file mode 100644
index 0000000..a4b4552
Binary files /dev/null and b/bin/php5.5.38/ext/php_ldap.dll differ
diff --git a/bin/php5.5.38/ext/php_mbstring.dll b/bin/php5.5.38/ext/php_mbstring.dll
new file mode 100644
index 0000000..c178fec
Binary files /dev/null and b/bin/php5.5.38/ext/php_mbstring.dll differ
diff --git a/bin/php5.5.38/ext/php_memcache.dll b/bin/php5.5.38/ext/php_memcache.dll
new file mode 100644
index 0000000..7e6300a
Binary files /dev/null and b/bin/php5.5.38/ext/php_memcache.dll differ
diff --git a/bin/php5.5.38/ext/php_mysql.dll b/bin/php5.5.38/ext/php_mysql.dll
new file mode 100644
index 0000000..ade9b71
Binary files /dev/null and b/bin/php5.5.38/ext/php_mysql.dll differ
diff --git a/bin/php5.5.38/ext/php_mysqli.dll b/bin/php5.5.38/ext/php_mysqli.dll
new file mode 100644
index 0000000..3ae0594
Binary files /dev/null and b/bin/php5.5.38/ext/php_mysqli.dll differ
diff --git a/bin/php5.5.38/ext/php_oci8.dll b/bin/php5.5.38/ext/php_oci8.dll
new file mode 100644
index 0000000..7c4f5f2
Binary files /dev/null and b/bin/php5.5.38/ext/php_oci8.dll differ
diff --git a/bin/php5.5.38/ext/php_oci8_11g.dll b/bin/php5.5.38/ext/php_oci8_11g.dll
new file mode 100644
index 0000000..be89f93
Binary files /dev/null and b/bin/php5.5.38/ext/php_oci8_11g.dll differ
diff --git a/bin/php5.5.38/ext/php_opcache.dll b/bin/php5.5.38/ext/php_opcache.dll
new file mode 100644
index 0000000..99d1777
Binary files /dev/null and b/bin/php5.5.38/ext/php_opcache.dll differ
diff --git a/bin/php5.5.38/ext/php_openssl.dll b/bin/php5.5.38/ext/php_openssl.dll
new file mode 100644
index 0000000..bb830c0
Binary files /dev/null and b/bin/php5.5.38/ext/php_openssl.dll differ
diff --git a/bin/php5.5.38/ext/php_pdo_firebird.dll b/bin/php5.5.38/ext/php_pdo_firebird.dll
new file mode 100644
index 0000000..ca744ce
Binary files /dev/null and b/bin/php5.5.38/ext/php_pdo_firebird.dll differ
diff --git a/bin/php5.5.38/ext/php_pdo_mysql.dll b/bin/php5.5.38/ext/php_pdo_mysql.dll
new file mode 100644
index 0000000..c4cdfff
Binary files /dev/null and b/bin/php5.5.38/ext/php_pdo_mysql.dll differ
diff --git a/bin/php5.5.38/ext/php_pdo_oci.dll b/bin/php5.5.38/ext/php_pdo_oci.dll
new file mode 100644
index 0000000..8711212
Binary files /dev/null and b/bin/php5.5.38/ext/php_pdo_oci.dll differ
diff --git a/bin/php5.5.38/ext/php_pdo_odbc.dll b/bin/php5.5.38/ext/php_pdo_odbc.dll
new file mode 100644
index 0000000..f47db66
Binary files /dev/null and b/bin/php5.5.38/ext/php_pdo_odbc.dll differ
diff --git a/bin/php5.5.38/ext/php_pdo_pgsql.dll b/bin/php5.5.38/ext/php_pdo_pgsql.dll
new file mode 100644
index 0000000..76b893b
Binary files /dev/null and b/bin/php5.5.38/ext/php_pdo_pgsql.dll differ
diff --git a/bin/php5.5.38/ext/php_pdo_sqlite.dll b/bin/php5.5.38/ext/php_pdo_sqlite.dll
new file mode 100644
index 0000000..4525b76
Binary files /dev/null and b/bin/php5.5.38/ext/php_pdo_sqlite.dll differ
diff --git a/bin/php5.5.38/ext/php_pgsql.dll b/bin/php5.5.38/ext/php_pgsql.dll
new file mode 100644
index 0000000..35aeb32
Binary files /dev/null and b/bin/php5.5.38/ext/php_pgsql.dll differ
diff --git a/bin/php5.5.38/ext/php_shmop.dll b/bin/php5.5.38/ext/php_shmop.dll
new file mode 100644
index 0000000..a83b8e9
Binary files /dev/null and b/bin/php5.5.38/ext/php_shmop.dll differ
diff --git a/bin/php5.5.38/ext/php_snmp.dll b/bin/php5.5.38/ext/php_snmp.dll
new file mode 100644
index 0000000..f6e7e41
Binary files /dev/null and b/bin/php5.5.38/ext/php_snmp.dll differ
diff --git a/bin/php5.5.38/ext/php_soap.dll b/bin/php5.5.38/ext/php_soap.dll
new file mode 100644
index 0000000..583808c
Binary files /dev/null and b/bin/php5.5.38/ext/php_soap.dll differ
diff --git a/bin/php5.5.38/ext/php_sockets.dll b/bin/php5.5.38/ext/php_sockets.dll
new file mode 100644
index 0000000..8b69404
Binary files /dev/null and b/bin/php5.5.38/ext/php_sockets.dll differ
diff --git a/bin/php5.5.38/ext/php_sqlite3.dll b/bin/php5.5.38/ext/php_sqlite3.dll
new file mode 100644
index 0000000..a6c7d73
Binary files /dev/null and b/bin/php5.5.38/ext/php_sqlite3.dll differ
diff --git a/bin/php5.5.38/ext/php_ssh2.dll b/bin/php5.5.38/ext/php_ssh2.dll
new file mode 100644
index 0000000..92ab88c
Binary files /dev/null and b/bin/php5.5.38/ext/php_ssh2.dll differ
diff --git a/bin/php5.5.38/ext/php_sybase_ct.dll b/bin/php5.5.38/ext/php_sybase_ct.dll
new file mode 100644
index 0000000..f88745b
Binary files /dev/null and b/bin/php5.5.38/ext/php_sybase_ct.dll differ
diff --git a/bin/php5.5.38/ext/php_tidy.dll b/bin/php5.5.38/ext/php_tidy.dll
new file mode 100644
index 0000000..87af3b8
Binary files /dev/null and b/bin/php5.5.38/ext/php_tidy.dll differ
diff --git a/bin/php5.5.38/ext/php_vld.dll b/bin/php5.5.38/ext/php_vld.dll
new file mode 100644
index 0000000..31c7712
Binary files /dev/null and b/bin/php5.5.38/ext/php_vld.dll differ
diff --git a/bin/php5.5.38/ext/php_xmlrpc.dll b/bin/php5.5.38/ext/php_xmlrpc.dll
new file mode 100644
index 0000000..1e1fe65
Binary files /dev/null and b/bin/php5.5.38/ext/php_xmlrpc.dll differ
diff --git a/bin/php5.5.38/ext/php_xsl.dll b/bin/php5.5.38/ext/php_xsl.dll
new file mode 100644
index 0000000..ee9819d
Binary files /dev/null and b/bin/php5.5.38/ext/php_xsl.dll differ
diff --git a/bin/php5.5.38/glib-2.dll b/bin/php5.5.38/glib-2.dll
new file mode 100644
index 0000000..39f3aa3
Binary files /dev/null and b/bin/php5.5.38/glib-2.dll differ
diff --git a/bin/php5.5.38/gmodule-2.dll b/bin/php5.5.38/gmodule-2.dll
new file mode 100644
index 0000000..02f0c00
Binary files /dev/null and b/bin/php5.5.38/gmodule-2.dll differ
diff --git a/bin/php5.5.38/icudt51.dll b/bin/php5.5.38/icudt51.dll
new file mode 100644
index 0000000..f3029ba
Binary files /dev/null and b/bin/php5.5.38/icudt51.dll differ
diff --git a/bin/php5.5.38/icuin51.dll b/bin/php5.5.38/icuin51.dll
new file mode 100644
index 0000000..e0a25fb
Binary files /dev/null and b/bin/php5.5.38/icuin51.dll differ
diff --git a/bin/php5.5.38/icuio51.dll b/bin/php5.5.38/icuio51.dll
new file mode 100644
index 0000000..949a9f5
Binary files /dev/null and b/bin/php5.5.38/icuio51.dll differ
diff --git a/bin/php5.5.38/icule51.dll b/bin/php5.5.38/icule51.dll
new file mode 100644
index 0000000..c59e482
Binary files /dev/null and b/bin/php5.5.38/icule51.dll differ
diff --git a/bin/php5.5.38/iculx51.dll b/bin/php5.5.38/iculx51.dll
new file mode 100644
index 0000000..d82b996
Binary files /dev/null and b/bin/php5.5.38/iculx51.dll differ
diff --git a/bin/php5.5.38/icutest51.dll b/bin/php5.5.38/icutest51.dll
new file mode 100644
index 0000000..159f167
Binary files /dev/null and b/bin/php5.5.38/icutest51.dll differ
diff --git a/bin/php5.5.38/icutu51.dll b/bin/php5.5.38/icutu51.dll
new file mode 100644
index 0000000..6aedda1
Binary files /dev/null and b/bin/php5.5.38/icutu51.dll differ
diff --git a/bin/php5.5.38/icuuc51.dll b/bin/php5.5.38/icuuc51.dll
new file mode 100644
index 0000000..75a15d5
Binary files /dev/null and b/bin/php5.5.38/icuuc51.dll differ
diff --git a/bin/php5.5.38/imagick/CORE_RL_bzlib_.dll b/bin/php5.5.38/imagick/CORE_RL_bzlib_.dll
new file mode 100644
index 0000000..72fbf1e
Binary files /dev/null and b/bin/php5.5.38/imagick/CORE_RL_bzlib_.dll differ
diff --git a/bin/php5.5.38/imagick/CORE_RL_glib_.dll b/bin/php5.5.38/imagick/CORE_RL_glib_.dll
new file mode 100644
index 0000000..0e06107
Binary files /dev/null and b/bin/php5.5.38/imagick/CORE_RL_glib_.dll differ
diff --git a/bin/php5.5.38/imagick/CORE_RL_lcms_.dll b/bin/php5.5.38/imagick/CORE_RL_lcms_.dll
new file mode 100644
index 0000000..e376fca
Binary files /dev/null and b/bin/php5.5.38/imagick/CORE_RL_lcms_.dll differ
diff --git a/bin/php5.5.38/imagick/CORE_RL_lqr_.dll b/bin/php5.5.38/imagick/CORE_RL_lqr_.dll
new file mode 100644
index 0000000..1b5b64d
Binary files /dev/null and b/bin/php5.5.38/imagick/CORE_RL_lqr_.dll differ
diff --git a/bin/php5.5.38/imagick/CORE_RL_magick_.dll b/bin/php5.5.38/imagick/CORE_RL_magick_.dll
new file mode 100644
index 0000000..e45c2bc
Binary files /dev/null and b/bin/php5.5.38/imagick/CORE_RL_magick_.dll differ
diff --git a/bin/php5.5.38/imagick/CORE_RL_ttf_.dll b/bin/php5.5.38/imagick/CORE_RL_ttf_.dll
new file mode 100644
index 0000000..452da6b
Binary files /dev/null and b/bin/php5.5.38/imagick/CORE_RL_ttf_.dll differ
diff --git a/bin/php5.5.38/imagick/CORE_RL_wand_.dll b/bin/php5.5.38/imagick/CORE_RL_wand_.dll
new file mode 100644
index 0000000..9975185
Binary files /dev/null and b/bin/php5.5.38/imagick/CORE_RL_wand_.dll differ
diff --git a/bin/php5.5.38/imagick/CORE_RL_zlib_.dll b/bin/php5.5.38/imagick/CORE_RL_zlib_.dll
new file mode 100644
index 0000000..9a2a0c9
Binary files /dev/null and b/bin/php5.5.38/imagick/CORE_RL_zlib_.dll differ
diff --git a/bin/php5.5.38/libeay32.dll b/bin/php5.5.38/libeay32.dll
new file mode 100644
index 0000000..8105431
Binary files /dev/null and b/bin/php5.5.38/libeay32.dll differ
diff --git a/bin/php5.5.38/libenchant.dll b/bin/php5.5.38/libenchant.dll
new file mode 100644
index 0000000..95b577c
Binary files /dev/null and b/bin/php5.5.38/libenchant.dll differ
diff --git a/bin/php5.5.38/libpq.dll b/bin/php5.5.38/libpq.dll
new file mode 100644
index 0000000..4dd8ebc
Binary files /dev/null and b/bin/php5.5.38/libpq.dll differ
diff --git a/bin/php5.5.38/libsasl.dll b/bin/php5.5.38/libsasl.dll
new file mode 100644
index 0000000..2393613
Binary files /dev/null and b/bin/php5.5.38/libsasl.dll differ
diff --git a/bin/php5.5.38/libssh2.dll b/bin/php5.5.38/libssh2.dll
new file mode 100644
index 0000000..1e6a578
Binary files /dev/null and b/bin/php5.5.38/libssh2.dll differ
diff --git a/bin/php5.5.38/license.txt b/bin/php5.5.38/license.txt
new file mode 100644
index 0000000..648b08f
--- /dev/null
+++ b/bin/php5.5.38/license.txt
@@ -0,0 +1,68 @@
+--------------------------------------------------------------------
+ The PHP License, version 3.01
+Copyright (c) 1999 - 2015 The PHP Group. All rights reserved.
+--------------------------------------------------------------------
+
+Redistribution and use in source and binary forms, with or without
+modification, is permitted provided that the following conditions
+are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ 3. The name "PHP" must not be used to endorse or promote products
+ derived from this software without prior written permission. For
+ written permission, please contact group@php.net.
+
+ 4. Products derived from this software may not be called "PHP", nor
+ may "PHP" appear in their name, without prior written permission
+ from group@php.net. You may indicate that your software works in
+ conjunction with PHP by saying "Foo for PHP" instead of calling
+ it "PHP Foo" or "phpfoo"
+
+ 5. The PHP Group may publish revised and/or new versions of the
+ license from time to time. Each version will be given a
+ distinguishing version number.
+ Once covered code has been published under a particular version
+ of the license, you may always continue to use it under the terms
+ of that version. You may also choose to use such covered code
+ under the terms of any subsequent version of the license
+ published by the PHP Group. No one other than the PHP Group has
+ the right to modify the terms applicable to covered code created
+ under this License.
+
+ 6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes PHP software, freely available from
+ ".
+
+THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
+ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP
+DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------
+
+This software consists of voluntary contributions made by many
+individuals on behalf of the PHP Group.
+
+The PHP Group can be contacted via Email at group@php.net.
+
+For more information on the PHP Group and the PHP project,
+please see .
+
+PHP includes the Zend Engine, freely available at
+.
diff --git a/bin/php5.5.38/neard.conf b/bin/php5.5.38/neard.conf
new file mode 100644
index 0000000..52bdaf8
--- /dev/null
+++ b/bin/php5.5.38/neard.conf
@@ -0,0 +1,9 @@
+phpVersion = "5.5.38"
+phpCliExe = "php.exe"
+phpCliSilentExe = "php-win.exe"
+phpConf = "php.ini"
+phpPearExe = "pear/pear.bat"
+
+apache24 = "php5apache2_4.dll"
+
+bundleRelease = "@RELEASE_VERSION@"
\ No newline at end of file
diff --git a/bin/php5.5.38/pear-install/go-pear.phar b/bin/php5.5.38/pear-install/go-pear.phar
new file mode 100644
index 0000000..b56db38
--- /dev/null
+++ b/bin/php5.5.38/pear-install/go-pear.phar
@@ -0,0 +1,97467 @@
+
+ * @author Greg Beaver
+ * @link http://www.synapticmedia.net Synaptic Media
+ * @version Id$
+ * @package PHP_Archive
+ * @category PHP
+ */
+
+class PHP_Archive
+{
+ const GZ = 0x00001000;
+ const BZ2 = 0x00002000;
+ const SIG = 0x00010000;
+ const SHA1 = 0x0002;
+ const MD5 = 0x0001;
+ const SHA256 = 0x0003;
+ const SHA512 = 0x0004;
+ const OPENSSL = 0x0010;
+ /**
+ * Whether this archive is compressed with zlib
+ *
+ * @var bool
+ */
+ private $_compressed;
+ /**
+ * @var string Real path to the .phar archive
+ */
+ private $_archiveName = null;
+ /**
+ * Current file name in the phar
+ * @var string
+ */
+ protected $currentFilename = null;
+ /**
+ * Length of current file in the phar
+ * @var string
+ */
+ protected $internalFileLength = null;
+ /**
+ * true if the current file is an empty directory
+ * @var string
+ */
+ protected $isDir = false;
+ /**
+ * Current file statistics (size, creation date, etc.)
+ * @var string
+ */
+ protected $currentStat = null;
+ /**
+ * @var resource|null Pointer to open .phar
+ */
+ protected $fp = null;
+ /**
+ * @var int Current Position of the pointer
+ */
+ protected $position = 0;
+
+ /**
+ * Map actual realpath of phars to meta-data about the phar
+ *
+ * Data is indexed by the alias that is used by internal files. In other
+ * words, if a file is included via:
+ *
+ * require_once 'phar://PEAR.phar/PEAR/Installer.php';
+ *
+ * then the alias is "PEAR.phar"
+ *
+ * Information stored is a boolean indicating whether this .phar is compressed
+ * with zlib, another for bzip2, phar-specific meta-data, and
+ * the precise offset of internal files
+ * within the .phar, used with the {@link $_manifest} to load actual file contents
+ * @var array
+ */
+ private static $_pharMapping = array();
+ /**
+ * Map real file paths to alias used
+ *
+ * @var array
+ */
+ private static $_pharFiles = array();
+ /**
+ * File listing for the .phar
+ *
+ * The manifest is indexed per phar.
+ *
+ * Files within the .phar are indexed by their relative path within the
+ * .phar. Each file has this information in its internal array
+ *
+ * - 0 = uncompressed file size
+ * - 1 = timestamp of when file was added to phar
+ * - 2 = offset of file within phar relative to internal file's start
+ * - 3 = compressed file size (actual size in the phar)
+ * @var array
+ */
+ private static $_manifest = array();
+ /**
+ * Absolute offset of internal files within the .phar, indexed by absolute
+ * path to the .phar
+ *
+ * @var array
+ */
+ private static $_fileStart = array();
+ /**
+ * file name of the phar
+ *
+ * @var string
+ */
+ private $_basename;
+
+
+ /**
+ * Default MIME types used for the web front controller
+ *
+ * @var array
+ */
+ public static $defaultmimes = array(
+ 'aif' => 'audio/x-aiff',
+ 'aiff' => 'audio/x-aiff',
+ 'arc' => 'application/octet-stream',
+ 'arj' => 'application/octet-stream',
+ 'art' => 'image/x-jg',
+ 'asf' => 'video/x-ms-asf',
+ 'asx' => 'video/x-ms-asf',
+ 'avi' => 'video/avi',
+ 'bin' => 'application/octet-stream',
+ 'bm' => 'image/bmp',
+ 'bmp' => 'image/bmp',
+ 'bz2' => 'application/x-bzip2',
+ 'css' => 'text/css',
+ 'doc' => 'application/msword',
+ 'dot' => 'application/msword',
+ 'dv' => 'video/x-dv',
+ 'dvi' => 'application/x-dvi',
+ 'eps' => 'application/postscript',
+ 'exe' => 'application/octet-stream',
+ 'gif' => 'image/gif',
+ 'gz' => 'application/x-gzip',
+ 'gzip' => 'application/x-gzip',
+ 'htm' => 'text/html',
+ 'html' => 'text/html',
+ 'ico' => 'image/x-icon',
+ 'jpe' => 'image/jpeg',
+ 'jpg' => 'image/jpeg',
+ 'jpeg' => 'image/jpeg',
+ 'js' => 'application/x-javascript',
+ 'log' => 'text/plain',
+ 'mid' => 'audio/x-midi',
+ 'mov' => 'video/quicktime',
+ 'mp2' => 'audio/mpeg',
+ 'mp3' => 'audio/mpeg3',
+ 'mpg' => 'audio/mpeg',
+ 'pdf' => 'aplication/pdf',
+ 'png' => 'image/png',
+ 'rtf' => 'application/rtf',
+ 'tif' => 'image/tiff',
+ 'tiff' => 'image/tiff',
+ 'txt' => 'text/plain',
+ 'xml' => 'text/xml',
+ );
+
+ public static $defaultphp = array(
+ 'php' => true
+ );
+
+ public static $defaultphps = array(
+ 'phps' => true
+ );
+
+ public static $deny = array('/.+\.inc$/');
+
+ public static function viewSource($archive, $file)
+ {
+ // security, idea borrowed from PHK
+ if (!file_exists($archive . '.introspect')) {
+ header("HTTP/1.0 404 Not Found");
+ return false;
+ }
+ if (self::_fileExists($archive, $_GET['viewsource'])) {
+ $source = highlight_file('phar://go-pear.phar/' .
+ $_GET['viewsource'], true);
+ header('Content-Type: text/html');
+ header('Content-Length: ' . strlen($source));
+ echo 'Source of ',
+ htmlspecialchars($_GET['viewsource']), '';
+ echo 'Source of ',
+ htmlspecialchars($_GET['viewsource']), '
';
+ if (isset($_GET['introspect'])) {
+ echo 'Return to ', htmlspecialchars($_GET['introspect']), '
';
+ }
+ echo $source;
+ return false;
+ } else {
+ header("HTTP/1.0 404 Not Found");
+ return false;
+ }
+
+ }
+
+ public static function introspect($archive, $dir)
+ {
+ // security, idea borrowed from PHK
+ if (!file_exists($archive . '.introspect')) {
+ header("HTTP/1.0 404 Not Found");
+ return false;
+ }
+ if (!$dir) {
+ $dir = '/';
+ }
+ $dir = self::processFile($dir);
+ if ($dir[0] != '/') {
+ $dir = '/' . $dir;
+ }
+ try {
+ $self = htmlspecialchars($_SERVER['PHP_SELF']);
+ $iterate = new DirectoryIterator('phar://go-pear.phar' . $dir);
+ echo 'Introspect ', htmlspecialchars($dir),
+ 'Introspect ', htmlspecialchars($dir),
+ '
';
+ if ($dir != '/') {
+ echo '- ..
';
+ }
+ foreach ($iterate as $entry) {
+ if ($entry->isDot()) continue;
+ $name = self::processFile($entry->getPathname());
+ $name = str_replace('phar://go-pear.phar/', '', $name);
+ if ($entry->isDir()) {
+ echo '- ',
+ htmlspecialchars($entry->getFilename()), '/ [directory]
';
+ } else {
+ echo '- ',
+ htmlspecialchars($entry->getFilename()), '
';
+ }
+ }
+ return false;
+ } catch (Exception $e) {
+ echo 'Directory not found: ',
+ htmlspecialchars($dir), '',
+ 'Directory not found: ', htmlspecialchars($dir), '
',
+ 'Try ',
+ 'This link
';
+ return false;
+ }
+ }
+
+ public static function webFrontController($initfile)
+ {
+ if (isset($_SERVER) && isset($_SERVER['REQUEST_URI'])) {
+ $uri = parse_url($_SERVER['REQUEST_URI']);
+ $archive = realpath($_SERVER['SCRIPT_FILENAME']);
+ $subpath = str_replace('/' . basename($archive), '', $uri['path']);
+ if (!$subpath || $subpath == '/') {
+ if (isset($_GET['viewsource'])) {
+ return self::viewSource($archive, $_GET['viewsource']);
+ }
+ if (isset($_GET['introspect'])) {
+ return self::introspect($archive, $_GET['introspect']);
+ }
+ $subpath = '/' . $initfile;
+ }
+ if (!self::_fileExists($archive, substr($subpath, 1))) {
+ header("HTTP/1.0 404 Not Found");
+ return false;
+ }
+ foreach (self::$deny as $pattern) {
+ if (preg_match($pattern, $subpath)) {
+ header("HTTP/1.0 404 Not Found");
+ return false;
+ }
+ }
+ $inf = pathinfo(basename($subpath));
+ if (!isset($inf['extension'])) {
+ header('Content-Type: text/plain');
+ header('Content-Length: ' .
+ self::_filesize($archive, substr($subpath, 1)));
+ readfile('phar://go-pear.phar' . $subpath);
+ return false;
+ }
+ if (isset(self::$defaultphp[$inf['extension']])) {
+ include 'phar://go-pear.phar' . $subpath;
+ return false;
+ }
+ if (isset(self::$defaultmimes[$inf['extension']])) {
+ header('Content-Type: ' . self::$defaultmimes[$inf['extension']]);
+ header('Content-Length: ' .
+ self::_filesize($archive, substr($subpath, 1)));
+ readfile('phar://go-pear.phar' . $subpath);
+ return false;
+ }
+ if (isset(self::$defaultphps[$inf['extension']])) {
+ header('Content-Type: text/html');
+ $c = highlight_file('phar://go-pear.phar' . $subpath, true);
+ header('Content-Length: ' . strlen($c));
+ echo $c;
+ return false;
+ }
+ header('Content-Type: text/plain');
+ header('Content-Length: ' .
+ self::_filesize($archive, substr($subpath, 1)));
+ readfile('phar://go-pear.phar' . $subpath);
+ }
+ }
+
+ /**
+ * Detect end of stub
+ *
+ * @param string $buffer stub past '__HALT_'.'COMPILER();'
+ * @return end of stub, prior to length of manifest.
+ */
+ private static final function _endOfStubLength($buffer)
+ {
+ $pos = 0;
+ if (!strlen($buffer)) {
+ return $pos;
+ }
+ if (($buffer[0] == ' ' || $buffer[0] == "\n") && @substr($buffer, 1, 2) == '')
+ {
+ $pos += 3;
+ if ($buffer[$pos] == "\r" && $buffer[$pos+1] == "\n") {
+ $pos += 2;
+ }
+ else if ($buffer[$pos] == "\n") {
+ $pos += 1;
+ }
+ }
+ return $pos;
+ }
+
+ /**
+ * Allows loading an external Phar archive without include()ing it
+ *
+ * @param string $file phar package to load
+ * @param string $alias alias to use
+ * @throws Exception
+ */
+ public static final function loadPhar($file, $alias = NULL)
+ {
+ $file = realpath($file);
+ if ($file) {
+ $fp = fopen($file, 'rb');
+ $buffer = '';
+ while (!feof($fp)) {
+ $buffer .= fread($fp, 8192);
+ // don't break phars
+ if ($pos = strpos($buffer, '__HALT_COMPI' . 'LER();')) {
+ $buffer .= fread($fp, 5);
+ fclose($fp);
+ $pos += 18;
+ $pos += self::_endOfStubLength(substr($buffer, $pos));
+ return self::_mapPhar($file, $pos, $alias);
+ }
+ }
+ fclose($fp);
+ }
+ }
+
+ /**
+ * Map a full real file path to an alias used to refer to the .phar
+ *
+ * This function can only be called from the initialization of the .phar itself.
+ * Any attempt to call from outside the .phar or to re-alias the .phar will fail
+ * as a security measure.
+ * @param string $alias
+ * @param int $dataoffset the value of 43508
+ */
+ public static final function mapPhar($alias = NULL, $dataoffset = NULL)
+ {
+ try {
+ $trace = debug_backtrace();
+ $file = $trace[0]['file'];
+ // this ensures that this is safe
+ if (!in_array($file, get_included_files())) {
+ die('SECURITY ERROR: PHP_Archive::mapPhar can only be called from within ' .
+ 'the phar that initiates it');
+ }
+ $file = realpath($file);
+ if (!isset($dataoffset)) {
+ $dataoffset = constant('__COMPILER_HALT_OFFSET'.'__');
+ $fp = fopen($file, 'rb');
+ fseek($fp, $dataoffset, SEEK_SET);
+ $dataoffset = $dataoffset + self::_endOfStubLength(fread($fp, 5));
+ fclose($fp);
+ }
+
+ self::_mapPhar($file, $dataoffset);
+ } catch (Exception $e) {
+ die($e->getMessage());
+ }
+ }
+
+ /**
+ * Sub-function, allows recovery from errors
+ *
+ * @param unknown_type $file
+ * @param unknown_type $dataoffset
+ */
+ private static function _mapPhar($file, $dataoffset, $alias = NULL)
+ {
+ $file = realpath($file);
+ if (isset(self::$_manifest[$file])) {
+ return;
+ }
+ if (!is_array(self::$_pharMapping)) {
+ self::$_pharMapping = array();
+ }
+ $fp = fopen($file, 'rb');
+ // seek to __HALT_COMPILER_OFFSET__
+ fseek($fp, $dataoffset);
+ $manifest_length = unpack('Vlen', fread($fp, 4));
+ $manifest = '';
+ $last = '1';
+ while (strlen($last) && strlen($manifest) < $manifest_length['len']) {
+ $read = 8192;
+ if ($manifest_length['len'] - strlen($manifest) < 8192) {
+ $read = $manifest_length['len'] - strlen($manifest);
+ }
+ $last = fread($fp, $read);
+ $manifest .= $last;
+ }
+ if (strlen($manifest) < $manifest_length['len']) {
+ throw new Exception('ERROR: manifest length read was "' .
+ strlen($manifest) .'" should be "' .
+ $manifest_length['len'] . '"');
+ }
+ $info = self::_unserializeManifest($manifest);
+ if ($info['alias']) {
+ $alias = $info['alias'];
+ $explicit = true;
+ } else {
+ if (!isset($alias)) {
+ $alias = $file;
+ }
+ $explicit = false;
+ }
+ self::$_manifest[$file] = $info['manifest'];
+ $compressed = $info['compressed'];
+ self::$_fileStart[$file] = ftell($fp);
+ fclose($fp);
+ if ($compressed & 0x00001000) {
+ if (!function_exists('gzinflate')) {
+ throw new Exception('Error: zlib extension is not enabled - gzinflate() function needed' .
+ ' for compressed .phars');
+ }
+ }
+ if ($compressed & 0x00002000) {
+ if (!function_exists('bzdecompress')) {
+ throw new Exception('Error: bzip2 extension is not enabled - bzdecompress() function needed' .
+ ' for compressed .phars');
+ }
+ }
+ if (isset(self::$_pharMapping[$alias])) {
+ throw new Exception('ERROR: PHP_Archive::mapPhar has already been called for alias "' .
+ $alias . '" cannot re-alias to "' . $file . '"');
+ }
+ self::$_pharMapping[$alias] = array($file, $compressed, $dataoffset, $explicit,
+ $info['metadata']);
+ self::$_pharFiles[$file] = $alias;
+ }
+
+ /**
+ * extract the manifest into an internal array
+ *
+ * @param string $manifest
+ * @return false|array
+ */
+ private static function _unserializeManifest($manifest)
+ {
+ // retrieve the number of files in the manifest
+ $info = unpack('V', substr($manifest, 0, 4));
+ $apiver = substr($manifest, 4, 2);
+ $apiver = bin2hex($apiver);
+ $apiver_dots = hexdec($apiver[0]) . '.' . hexdec($apiver[1]) . '.' . hexdec($apiver[2]);
+ $majorcompat = hexdec($apiver[0]);
+ $calcapi = explode('.', self::APIVersion());
+ if ($calcapi[0] != $majorcompat) {
+ throw new Exception('Phar is incompatible API version ' . $apiver_dots . ', but ' .
+ 'PHP_Archive is API version '.self::APIVersion());
+ }
+ if ($calcapi[0] === '0') {
+ if (self::APIVersion() != $apiver_dots) {
+ throw new Exception('Phar is API version ' . $apiver_dots .
+ ', but PHP_Archive is API version '.self::APIVersion(), E_USER_ERROR);
+ }
+ }
+ $flags = unpack('V', substr($manifest, 6, 4));
+ $ret = array('compressed' => $flags[1] & 0x00003000);
+ // signature is not verified by default in PHP_Archive, phar is better
+ $ret['hassignature'] = $flags & 0x00010000;
+ $aliaslen = unpack('V', substr($manifest, 10, 4));
+ if ($aliaslen) {
+ $ret['alias'] = substr($manifest, 14, $aliaslen[1]);
+ } else {
+ $ret['alias'] = false;
+ }
+ $manifest = substr($manifest, 14 + $aliaslen[1]);
+ $metadatalen = unpack('V', substr($manifest, 0, 4));
+ if ($metadatalen[1]) {
+ $ret['metadata'] = unserialize(substr($manifest, 4, $metadatalen[1]));
+ $manifest = substr($manifest, 4 + $metadatalen[1]);
+ } else {
+ $ret['metadata'] = null;
+ $manifest = substr($manifest, 4);
+ }
+ $offset = 0;
+ $start = 0;
+ for ($i = 0; $i < $info[1]; $i++) {
+ // length of the file name
+ $len = unpack('V', substr($manifest, $start, 4));
+ $start += 4;
+ // file name
+ $savepath = substr($manifest, $start, $len[1]);
+ $start += $len[1];
+ // retrieve manifest data:
+ // 0 = uncompressed file size
+ // 1 = timestamp of when file was added to phar
+ // 2 = compressed filesize
+ // 3 = crc32
+ // 4 = flags
+ // 5 = metadata length
+ $ret['manifest'][$savepath] = array_values(unpack('Va/Vb/Vc/Vd/Ve/Vf', substr($manifest, $start, 24)));
+ $ret['manifest'][$savepath][3] = sprintf('%u', $ret['manifest'][$savepath][3]
+ & 0xffffffff);
+ if ($ret['manifest'][$savepath][5]) {
+ $ret['manifest'][$savepath][6] = unserialize(substr($manifest, $start + 24,
+ $ret['manifest'][$savepath][5]));
+ } else {
+ $ret['manifest'][$savepath][6] = null;
+ }
+ $ret['manifest'][$savepath][7] = $offset;
+ $offset += $ret['manifest'][$savepath][2];
+ $start += 24 + $ret['manifest'][$savepath][5];
+ }
+ return $ret;
+ }
+
+ /**
+ * @param string
+ */
+ private static function processFile($path)
+ {
+ if ($path == '.') {
+ return '';
+ }
+ $std = str_replace("\\", "/", $path);
+ while ($std != ($std = preg_replace("/[^\/:?]+\/\.\.\//", "", $std))) ;
+ $std = str_replace("/./", "", $std);
+ if (strlen($std) > 1 && $std[0] == '/') {
+ $std = substr($std, 1);
+ }
+ if (strncmp($std, "./", 2) == 0) {
+ return substr($std, 2);
+ } else {
+ return $std;
+ }
+ }
+
+ /**
+ * Seek in the master archive to a matching file or directory
+ * @param string
+ */
+ protected function selectFile($path, $allowdirs = true)
+ {
+ $std = self::processFile($path);
+ if (isset(self::$_manifest[$this->_archiveName][$path])) {
+ if ($path[strlen($path)-1] == '/') {
+ // directory
+ if (!$allowdirs) {
+ return 'Error: "' . $path . '" is a directory in phar "' . $this->_basename . '"';
+ }
+ $this->_setCurrentFile($path, true);
+ } else {
+ $this->_setCurrentFile($path);
+ }
+ return true;
+ }
+ if (!$allowdirs) {
+ return 'Error: "' . $path . '" is not a file in phar "' . $this->_basename . '"';
+ }
+ foreach (self::$_manifest[$this->_archiveName] as $file => $info) {
+ if (empty($std) ||
+ //$std is a directory
+ strncmp($std.'/', $path, strlen($std)+1) == 0) {
+ $this->currentFilename = $this->internalFileLength = $this->currentStat = null;
+ return true;
+ }
+ }
+ return 'Error: "' . $path . '" not found in phar "' . $this->_basename . '"';
+ }
+
+ private function _setCurrentFile($path, $dir = false)
+ {
+ if ($dir) {
+ $this->currentStat = array(
+ 2 => 040777, // directory mode, readable by all, writeable by none
+ 4 => 0, // uid
+ 5 => 0, // gid
+ 7 => 0, // size
+ 9 => self::$_manifest[$this->_archiveName][$path][1], // creation time
+ );
+ $this->internalFileLength = 0;
+ $this->isDir = true;
+ } else {
+ $this->currentStat = array(
+ 2 => 0100444, // file mode, readable by all, writeable by none
+ 4 => 0, // uid
+ 5 => 0, // gid
+ 7 => self::$_manifest[$this->_archiveName][$path][0], // size
+ 9 => self::$_manifest[$this->_archiveName][$path][1], // creation time
+ );
+ $this->internalFileLength = self::$_manifest[$this->_archiveName][$path][2];
+ $this->isDir = false;
+ }
+ $this->currentFilename = $path;
+ // seek to offset of file header within the .phar
+ if (is_resource(@$this->fp)) {
+ fseek($this->fp, self::$_fileStart[$this->_archiveName] + self::$_manifest[$this->_archiveName][$path][7]);
+ }
+ }
+
+ private static function _fileExists($archive, $path)
+ {
+ return isset(self::$_manifest[$archive]) &&
+ isset(self::$_manifest[$archive][$path]);
+ }
+
+ private static function _filesize($archive, $path)
+ {
+ return self::$_manifest[$archive][$path][0];
+ }
+
+ /**
+ * Seek to a file within the master archive, and extract its contents
+ * @param string
+ * @return array|string an array containing an error message string is returned
+ * upon error, otherwise the file contents are returned
+ */
+ public function extractFile($path)
+ {
+ $this->fp = @fopen($this->_archiveName, "rb");
+ if (!$this->fp) {
+ return array('Error: cannot open phar "' . $this->_archiveName . '"');
+ }
+ if (($e = $this->selectFile($path, false)) === true) {
+ $data = '';
+ $count = $this->internalFileLength;
+ while ($count) {
+ if ($count < 8192) {
+ $data .= @fread($this->fp, $count);
+ $count = 0;
+ } else {
+ $count -= 8192;
+ $data .= @fread($this->fp, 8192);
+ }
+ }
+ @fclose($this->fp);
+ if (self::$_manifest[$this->_archiveName][$path][4] & self::GZ) {
+ $data = gzinflate($data);
+ } elseif (self::$_manifest[$this->_archiveName][$path][4] & self::BZ2) {
+ $data = bzdecompress($data);
+ }
+ if (!isset(self::$_manifest[$this->_archiveName][$path]['ok'])) {
+ if (strlen($data) != $this->currentStat[7]) {
+ return array("Not valid internal .phar file (size error {$size} != " .
+ $this->currentStat[7] . ")");
+ }
+ if (self::$_manifest[$this->_archiveName][$path][3] != sprintf("%u", crc32($data) & 0xffffffff)) {
+ return array("Not valid internal .phar file (checksum error)");
+ }
+ self::$_manifest[$this->_archiveName][$path]['ok'] = true;
+ }
+ return $data;
+ } else {
+ @fclose($this->fp);
+ return array($e);
+ }
+ }
+
+ /**
+ * Parse urls like phar:///fullpath/to/my.phar/file.txt
+ *
+ * @param string $file
+ * @return false|array
+ */
+ static protected function parseUrl($file)
+ {
+ if (substr($file, 0, 7) != 'phar://') {
+ return false;
+ }
+ $file = substr($file, 7);
+
+ $ret = array('scheme' => 'phar');
+ $pos_p = strpos($file, '.phar.php');
+ $pos_z = strpos($file, '.phar.gz');
+ $pos_b = strpos($file, '.phar.bz2');
+ if ($pos_p) {
+ if ($pos_z) {
+ return false;
+ }
+ $ret['host'] = substr($file, 0, $pos_p + strlen('.phar.php'));
+ $ret['path'] = substr($file, strlen($ret['host']));
+ } elseif ($pos_z) {
+ $ret['host'] = substr($file, 0, $pos_z + strlen('.phar.gz'));
+ $ret['path'] = substr($file, strlen($ret['host']));
+ } elseif ($pos_b) {
+ $ret['host'] = substr($file, 0, $pos_z + strlen('.phar.bz2'));
+ $ret['path'] = substr($file, strlen($ret['host']));
+ } elseif (($pos_p = strpos($file, ".phar")) !== false) {
+ $ret['host'] = substr($file, 0, $pos_p + strlen('.phar'));
+ $ret['path'] = substr($file, strlen($ret['host']));
+ } else {
+ return false;
+ }
+ if (!$ret['path']) {
+ $ret['path'] = '/';
+ }
+ return $ret;
+ }
+
+ /**
+ * Locate the .phar archive in the include_path and detect the file to open within
+ * the archive.
+ *
+ * Possible parameters are phar://pharname.phar/filename_within_phar.ext
+ * @param string a file within the archive
+ * @return string the filename within the .phar to retrieve
+ */
+ public function initializeStream($file)
+ {
+ $file = self::processFile($file);
+ $info = @parse_url($file);
+ if (!$info) {
+ $info = self::parseUrl($file);
+ }
+ if (!$info) {
+ return false;
+ }
+ if (!isset($info['host'])) {
+ // malformed internal file
+ return false;
+ }
+ if (!isset(self::$_pharFiles[$info['host']]) &&
+ !isset(self::$_pharMapping[$info['host']])) {
+ try {
+ self::loadPhar($info['host']);
+ // use alias from here out
+ $info['host'] = self::$_pharFiles[$info['host']];
+ } catch (Exception $e) {
+ return false;
+ }
+ }
+ if (!isset($info['path'])) {
+ return false;
+ } elseif (strlen($info['path']) > 1) {
+ $info['path'] = substr($info['path'], 1);
+ }
+ if (isset(self::$_pharMapping[$info['host']])) {
+ $this->_basename = $info['host'];
+ $this->_archiveName = self::$_pharMapping[$info['host']][0];
+ $this->_compressed = self::$_pharMapping[$info['host']][1];
+ } elseif (isset(self::$_pharFiles[$info['host']])) {
+ $this->_archiveName = $info['host'];
+ $this->_basename = self::$_pharFiles[$info['host']];
+ $this->_compressed = self::$_pharMapping[$this->_basename][1];
+ }
+ $file = $info['path'];
+ return $file;
+ }
+
+ /**
+ * Open the requested file - PHP streams API
+ *
+ * @param string $file String provided by the Stream wrapper
+ * @access private
+ */
+ public function stream_open($file)
+ {
+ return $this->_streamOpen($file);
+ }
+
+ /**
+ * @param string filename to opne, or directory name
+ * @param bool if true, a directory will be matched, otherwise only files
+ * will be matched
+ * @uses trigger_error()
+ * @return bool success of opening
+ * @access private
+ */
+ private function _streamOpen($file, $searchForDir = false)
+ {
+ $path = $this->initializeStream($file);
+ if (!$path) {
+ trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR);
+ }
+ if (is_array($this->file = $this->extractFile($path))) {
+ trigger_error($this->file[0], E_USER_ERROR);
+ return false;
+ }
+ if ($path != $this->currentFilename) {
+ if (!$searchForDir) {
+ trigger_error("Cannot open '$file', is a directory", E_USER_ERROR);
+ return false;
+ } else {
+ $this->file = '';
+ return true;
+ }
+ }
+
+ if (!is_null($this->file) && $this->file !== false) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Read the data - PHP streams API
+ *
+ * @param int
+ * @access private
+ */
+ public function stream_read($count)
+ {
+ $ret = substr($this->file, $this->position, $count);
+ $this->position += strlen($ret);
+ return $ret;
+ }
+
+ /**
+ * Whether we've hit the end of the file - PHP streams API
+ * @access private
+ */
+ function stream_eof()
+ {
+ return $this->position >= $this->currentStat[7];
+ }
+
+ /**
+ * For seeking the stream - PHP streams API
+ * @param int
+ * @param SEEK_SET|SEEK_CUR|SEEK_END
+ * @access private
+ */
+ public function stream_seek($pos, $whence)
+ {
+ switch ($whence) {
+ case SEEK_SET:
+ if ($pos < 0) {
+ return false;
+ }
+ $this->position = $pos;
+ break;
+ case SEEK_CUR:
+ if ($pos + $this->currentStat[7] < 0) {
+ return false;
+ }
+ $this->position += $pos;
+ break;
+ case SEEK_END:
+ if ($pos + $this->currentStat[7] < 0) {
+ return false;
+ }
+ $this->position = $pos + $this->currentStat[7];
+ break;
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * The current position in the stream - PHP streams API
+ * @access private
+ */
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ /**
+ * The result of an fstat call, returns mod time from creation, and file size -
+ * PHP streams API
+ * @uses _stream_stat()
+ * @access private
+ */
+ public function stream_stat()
+ {
+ return $this->_stream_stat();
+ }
+
+ /**
+ * Retrieve statistics on a file or directory within the .phar
+ * @param string file/directory to stat
+ * @access private
+ */
+ public function _stream_stat($file = null)
+ {
+ $std = $file ? self::processFile($file) : $this->currentFilename;
+ if ($file) {
+ if (isset(self::$_manifest[$this->_archiveName][$file])) {
+ $this->_setCurrentFile($file);
+ $isdir = false;
+ } else {
+ do {
+ $isdir = false;
+ if ($file == '/') {
+ break;
+ }
+ foreach (self::$_manifest[$this->_archiveName] as $path => $info) {
+ if (strpos($path, $file) === 0) {
+ if (strlen($path) > strlen($file) &&
+ $path[strlen($file)] == '/') {
+ break 2;
+ }
+ }
+ }
+ // no files exist and no directories match this string
+ return false;
+ } while (false);
+ $isdir = true;
+ }
+ } else {
+ $isdir = false; // open streams must be files
+ }
+ $mode = $isdir ? 0040444 : 0100444;
+ // 040000 = dir, 010000 = file
+ // everything is readable, nothing is writeable
+ return array(
+ 0, 0, $mode, 0, 0, 0, 0, 0, 0, 0, 0, 0, // non-associative indices
+ 'dev' => 0, 'ino' => 0,
+ 'mode' => $mode,
+ 'nlink' => 0, 'uid' => 0, 'gid' => 0, 'rdev' => 0, 'blksize' => 0, 'blocks' => 0,
+ 'size' => $this->currentStat[7],
+ 'atime' => $this->currentStat[9],
+ 'mtime' => $this->currentStat[9],
+ 'ctime' => $this->currentStat[9],
+ );
+ }
+
+ /**
+ * Stat a closed file or directory - PHP streams API
+ * @param string
+ * @param int
+ * @access private
+ */
+ public function url_stat($url, $flags)
+ {
+ $path = $this->initializeStream($url);
+ return $this->_stream_stat($path);
+ }
+
+ /**
+ * Open a directory in the .phar for reading - PHP streams API
+ * @param string directory name
+ * @access private
+ */
+ public function dir_opendir($path)
+ {
+ $info = @parse_url($path);
+ if (!$info) {
+ $info = self::parseUrl($path);
+ if (!$info) {
+ trigger_error('Error: "' . $path . '" is a file, and cannot be opened with opendir',
+ E_USER_ERROR);
+ return false;
+ }
+ }
+ $path = !empty($info['path']) ?
+ $info['host'] . $info['path'] : $info['host'] . '/';
+ $path = $this->initializeStream('phar://' . $path);
+ if (isset(self::$_manifest[$this->_archiveName][$path])) {
+ trigger_error('Error: "' . $path . '" is a file, and cannot be opened with opendir',
+ E_USER_ERROR);
+ return false;
+ }
+ if ($path == false) {
+ trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR);
+ return false;
+ }
+ $this->fp = @fopen($this->_archiveName, "rb");
+ if (!$this->fp) {
+ trigger_error('Error: cannot open phar "' . $this->_archiveName . '"');
+ return false;
+ }
+ $this->_dirFiles = array();
+ foreach (self::$_manifest[$this->_archiveName] as $file => $info) {
+ if ($path == '/') {
+ if (strpos($file, '/')) {
+ $a = explode('/', $file);
+ $this->_dirFiles[array_shift($a)] = true;
+ } else {
+ $this->_dirFiles[$file] = true;
+ }
+ } elseif (strpos($file, $path) === 0) {
+ $fname = substr($file, strlen($path) + 1);
+ if ($fname == '/' || $fname[strlen($fname)-1] == '/') {
+ continue; // empty directory
+ }
+ if (strpos($fname, '/')) {
+ // this is a directory
+ $a = explode('/', $fname);
+ $this->_dirFiles[array_shift($a)] = true;
+ } elseif ($file[strlen($path)] == '/') {
+ // this is a file
+ $this->_dirFiles[$fname] = true;
+ }
+ }
+ }
+ @fclose($this->fp);
+ if (!count($this->_dirFiles)) {
+ return false;
+ }
+ @uksort($this->_dirFiles, 'strnatcmp');
+ return true;
+ }
+
+ /**
+ * Read the next directory entry - PHP streams API
+ * @access private
+ */
+ public function dir_readdir()
+ {
+ $ret = key($this->_dirFiles);
+ @next($this->_dirFiles);
+ if (!$ret) {
+ return false;
+ }
+ return $ret;
+ }
+
+ /**
+ * Close a directory handle opened with opendir() - PHP streams API
+ * @access private
+ */
+ public function dir_closedir()
+ {
+ $this->_dirFiles = array();
+ return true;
+ }
+
+ /**
+ * Rewind to the first directory entry - PHP streams API
+ * @access private
+ */
+ public function dir_rewinddir()
+ {
+ @reset($this->_dirFiles);
+ return true;
+ }
+
+ /**
+ * API version of this class
+ * @return string
+ */
+ public static final function APIVersion()
+ {
+ return '1.1.0';
+ }
+
+ /**
+ * Retrieve Phar-specific metadata for a Phar archive
+ *
+ * @param string $phar full path to Phar archive, or alias
+ * @return null|mixed The value that was serialized for the Phar
+ * archive's metadata
+ * @throws Exception
+ */
+ public static function getPharMetadata($phar)
+ {
+ if (isset(self::$_pharFiles[$phar])) {
+ $phar = self::$_pharFiles[$phar];
+ }
+ if (!isset(self::$_pharMapping[$phar])) {
+ throw new Exception('Unknown Phar archive: "' . $phar . '"');
+ }
+ return self::$_pharMapping[$phar][4];
+ }
+
+ /**
+ * Retrieve File-specific metadata for a Phar archive file
+ *
+ * @param string $phar full path to Phar archive, or alias
+ * @param string $file relative path to file within Phar archive
+ * @return null|mixed The value that was serialized for the Phar
+ * archive's metadata
+ * @throws Exception
+ */
+ public static function getFileMetadata($phar, $file)
+ {
+ if (!isset(self::$_pharFiles[$phar])) {
+ if (!isset(self::$_pharMapping[$phar])) {
+ throw new Exception('Unknown Phar archive: "' . $phar . '"');
+ }
+ $phar = self::$_pharMapping[$phar][0];
+ }
+ if (!isset(self::$_manifest[$phar])) {
+ throw new Exception('Unknown Phar: "' . $phar . '"');
+ }
+ $file = self::processFile($file);
+ if (!isset(self::$_manifest[$phar][$file])) {
+ throw new Exception('Unknown file "' . $file . '" within Phar "'. $phar . '"');
+ }
+ return self::$_manifest[$phar][$file][6];
+ }
+
+ /**
+ * @return list of supported signature algorithmns.
+ */
+ public static function getSupportedSignatures()
+ {
+ $ret = array('MD5', 'SHA-1');
+ if (extension_loaded('hash')) {
+ $ret[] = 'SHA-256';
+ $ret[] = 'SHA-512';
+ }
+ if (extension_loaded('openssl')) {
+ $ret[] = 'OpenSSL';
+ }
+ return $ret;
+ }
+}}
+if (!class_exists('Phar')) {
+ PHP_Archive::mapPhar(null, 43508 );
+} else {
+ try {
+ Phar::mapPhar();
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+}
+if (class_exists('PHP_Archive') && !in_array('phar', stream_get_wrappers())) {
+ stream_wrapper_register('phar', 'PHP_Archive');
+}
+
+@ini_set('memory_limit', -1);
+if (extension_loaded('phar')) {if (isset($_SERVER) && isset($_SERVER['REQUEST_URI'])) {
+ $uri = parse_url($_SERVER['REQUEST_URI']);
+ $archive = realpath($_SERVER['SCRIPT_FILENAME']);
+ $subpath = str_replace('/' . basename($archive), '', $uri['path']);
+ $mimetypes = array (
+ 'aif' => 'audio/x-aiff',
+ 'aiff' => 'audio/x-aiff',
+ 'arc' => 'application/octet-stream',
+ 'arj' => 'application/octet-stream',
+ 'art' => 'image/x-jg',
+ 'asf' => 'video/x-ms-asf',
+ 'asx' => 'video/x-ms-asf',
+ 'avi' => 'video/avi',
+ 'bin' => 'application/octet-stream',
+ 'bm' => 'image/bmp',
+ 'bmp' => 'image/bmp',
+ 'bz2' => 'application/x-bzip2',
+ 'css' => 'text/css',
+ 'doc' => 'application/msword',
+ 'dot' => 'application/msword',
+ 'dv' => 'video/x-dv',
+ 'dvi' => 'application/x-dvi',
+ 'eps' => 'application/postscript',
+ 'exe' => 'application/octet-stream',
+ 'gif' => 'image/gif',
+ 'gz' => 'application/x-gzip',
+ 'gzip' => 'application/x-gzip',
+ 'htm' => 'text/html',
+ 'html' => 'text/html',
+ 'ico' => 'image/x-icon',
+ 'jpe' => 'image/jpeg',
+ 'jpg' => 'image/jpeg',
+ 'jpeg' => 'image/jpeg',
+ 'js' => 'application/x-javascript',
+ 'log' => 'text/plain',
+ 'mid' => 'audio/x-midi',
+ 'mov' => 'video/quicktime',
+ 'mp2' => 'audio/mpeg',
+ 'mp3' => 'audio/mpeg3',
+ 'mpg' => 'audio/mpeg',
+ 'pdf' => 'aplication/pdf',
+ 'png' => 'image/png',
+ 'rtf' => 'application/rtf',
+ 'tif' => 'image/tiff',
+ 'tiff' => 'image/tiff',
+ 'txt' => 'text/plain',
+ 'xml' => 'text/xml',
+);
+ $phpfiles = array (
+ 'php' => true,
+);
+ $phpsfiles = array (
+ 'phps' => true,
+);
+ $deny = array (
+ 0 => '/.+\\.inc$/',
+);
+ $subpath = str_replace('/' . basename($archive), '', $uri['path']);
+ if (!$subpath || $subpath == '/') {
+ $subpath = '/PEAR.php';
+ }
+ if ($subpath[0] != '/') {
+ $subpath = '/' . $subpath;
+ }
+ if (!@file_exists('phar://' . $archive . $subpath)) {
+ header("HTTP/1.0 404 Not Found");
+ exit;
+ }
+
+ foreach ($deny as $pattern) {
+ if (preg_match($pattern, $subpath)) {
+ header("HTTP/1.0 404 Not Found");
+ exit;
+ }
+ }
+ $inf = pathinfo(basename($subpath));
+ if (!isset($inf['extension'])) {
+ header('Content-Type: text/plain');
+ header('Content-Length: ' . filesize('phar://' . $archive . $subpath));
+ readfile('phar://' . $archive . $subpath);
+ exit;
+ }
+ if (isset($phpfiles[$inf['extension']])) {
+ include 'phar://' . $archive . '/' . $subpath;
+ exit;
+ }
+ if (isset($mimetypes[$inf['extension']])) {
+ header('Content-Type: ' . $mimetypes[$inf['extension']]);
+ header('Content-Length: ' . filesize('phar://' . $archive . $subpath));
+ readfile('phar://' . $archive . $subpath);
+ exit;
+ }
+ if (isset($phpsfiles[$inf['extension']])) {
+ header('Content-Type: text/html');
+ $c = highlight_file('phar://' . $archive . $subpath, true);
+ header('Content-Length: ' . strlen($c));
+ echo $c;
+ exit;
+ }
+ header('Content-Type: text/plain');
+ header('Content-Length: ' . filesize('phar://' . $archive . '/' . $subpath));
+ readfile('phar://' . $archive . '/' . $subpath);
+ exit;
+}} else {if (!empty($_SERVER['REQUEST_URI'])) {PHP_Archive::webFrontController('PEAR.php');exit;}}
+
+
+
+require_once 'phar://go-pear.phar/index.php';
+__HALT_COMPILER();= E go-pear.phar Archive/Tar.phpÉ@ ó."VÉ@ äe øm Console/Getopt.php}4 ó."V}4 eÊÀom index.php‹ ó."V‹ A#m OS/Guess.phps) ó."Vs) ¶è m PEAR.php€Š ó."V€Š ®€ÏGm PEAR/ChannelFile.phpJÇ ó."VJÇ ˜¶œäm PEAR/ChannelFile/Parser.phpÝ ó."VÝ Ê„v™m PEAR/Command.phpÕ0 ó."VÕ0 ¨^¸9m PEAR/Command/Common.php6 ó."V6 ØÝúÅm PEAR/Command/Install.phpÊÆ ó."VÊÆ òÍÞm PEAR/Command/Install.xml~! ó."V~! 2¡Vm PEAR/Common.phpGh ó."VGh iTm PEAR/Config.php ó."V k‘ëm PEAR/Dependency2.phpzÅ ó."VzÅ û`Ÿm PEAR/DependencyDB.php*^ ó."V*^ K-õm PEAR/Downloader.php ó."V ÈÅu*m PEAR/Downloader/Package.php3* ó."V3* Ö%Ûm PEAR/ErrorStack.php„ ó."V„ R‰fÐm PEAR/Frontend.php
+ ó."V
+ 1ž)ìm PEAR/Frontend/CLI.phped ó."Ved ‹m + PEAR/go-pear-tarballs/Archive_Tar-1.4.0.tar Î ó."V Î i’hm . PEAR/go-pear-tarballs/Console_Getopt-1.4.1.tar t ó."V t ±H§»m % PEAR/go-pear-tarballs/PEAR-1.10.1.tar ( ó."V ( œ½%.m 0 PEAR/go-pear-tarballs/Structures_Graph-1.1.1.tar 6 ó."V 6 ïŽjám ( PEAR/go-pear-tarballs/XML_Util-1.3.0.tar à ó."V à &jHFm PEAR/Installer.phpR ó."VR #– lm PEAR/Installer/Role.php ó."V Ilílm PEAR/Installer/Role/Common.phpF ó."VF ©—¶m PEAR/Installer/Role/Data.php ó."V z(Çÿm PEAR/Installer/Role/Data.xml’ ó."V’ fszm PEAR/Installer/Role/Doc.php ó."V 㔺mm PEAR/Installer/Role/Doc.xml‘ ó."V‘ h&P*m PEAR/Installer/Role/Php.php ó."V *1Ðûm PEAR/Installer/Role/Php.xml ó."V zqm PEAR/Installer/Role/Script.php ó."V J0H”m PEAR/Installer/Role/Script.xml° ó."V° @v§Ðm PEAR/Installer/Role/Test.php ó."V ƒÔŸm PEAR/Installer/Role/Test.xml’ ó."V’ B] m PEAR/PackageFile.phpZ> ó."VZ> nsãm ! PEAR/PackageFile/Generator/v1.phpÉÄ ó."VÉÄ WYJím ! PEAR/PackageFile/Generator/v2.php‚ ó."V‚ M
+Õ-m PEAR/PackageFile/Parser/v1.phpœ@ ó."Vœ@ µÁЮm PEAR/PackageFile/Parser/v2.phpv ó."Vv j¯†àm PEAR/PackageFile/v1.phpÆ ó."VÆ Ù‰3‡m PEAR/PackageFile/v2.phpï ó."Vï ½øóm ! PEAR/PackageFile/v2/Validator.phpzL ó."VzL ùðm PEAR/Registry.phpq) ó."Vq) ª@
m
PEAR/REST.php"F ó."V"F @ Óm PEAR/REST/10.phpÛ ó."VÛ üC;m PEAR/Start.phpÐ9 ó."VÐ9 3ÇÜm PEAR/Start/CLI.phpHS ó."VHS >iZ m PEAR/Task/Common.php7 ó."V7 ë4æ[m PEAR/Task/Postinstallscript.phpG9 ó."VG9 øH>»m " PEAR/Task/Postinstallscript/rw.php; ó."V; <£Hm PEAR/Task/Replace.php ó."V ¯¼ám PEAR/Task/Replace/rw.php/ ó."V/ žÎ¾Sm PEAR/Task/Unixeol.php ó."V
t“8m PEAR/Task/Unixeol/rw.php4 ó."V4 AAOm PEAR/Task/Windowseol.php ó."V ä<Ìòm PEAR/Task/Windowseol/rw.phpA ó."VA 1g£m PEAR/Validate.php&V