Sorry i can't use EasyPhp 2 beacause it includes php5 and my site provider doesn't support it from now...
Sorry for disturbing you so long...
By the way here is my complete phpinfo, but don't wast too many times on it you allready have spend to much
PHP Logo
PHP Version 4.3.10
System Windows NT JPSFIXE 5.1 build 2600
Build Date Dec 14 2004 17:46:48
Server API Apache
Virtual Directory Support enabled
Configuration File (php.ini) Path c:\jp\easyphp\apache\php.ini
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010
Debug Build no
Thread Safety enabled
Registered PHP Streams php, http, ftp, compress.zlib
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
PHP Credits
Configuration
PHP Core
Directive Local Value Master Value
allow_call_time_pass_reference Off Off
allow_url_fopen On On
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions no value no value
display_errors On On
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl On On
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 2039 2039
expose_php On On
extension_dir C:\JP\EasyPHP\\php\extensions\ C:\JP\EasyPHP\\php\extensions\
file_uploads On On
gpc_order GPC GPC
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .;C:\JP\EasyPHP\\php\pear\ .;C:\JP\EasyPHP\\php\pear\
log_errors On On
log_errors_max_len 1024 1024
magic_quotes_gpc Off Off
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
max_execution_time 30 30
max_input_time 60 60
open_basedir no value no value
output_buffering 0 0
output_handler no value no value
post_max_size 8M 8M
precision 14 14
register_argc_argv Off Off
register_globals Off Off
report_memleaks On On
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from xxxxxxx@yyyy.com xxxxxxxx@yyyy.com
sendmail_path no value no value
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 2M 2M
upload_tmp_dir C:\JP\EasyPHP\tmp\ C:\JP\EasyPHP\tmp\
user_dir no value no value
variables_order GPCS GPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
apache
Apache for Windows 95/NT
Apache Version Apache/1.3.33 (Win32) PHP/4.3.10
Apache Release 10324100
Apache API Version 19990320
Hostname:Port localhost:80
Timeouts Connection: 300 - Keep-Alive: 15
Directive Local Value Master Value
child_terminate 0 0
engine 1 1
last_modified 0 0
xbithack 0 0
Apache Environment
Variable Value
COMSPEC C:\WINDOWS\system32\cmd.exe
DOCUMENT_ROOT c:/jp/easyphp/www
HTTP_ACCEPT text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7
HTTP_ACCEPT_ENCODING gzip,deflate
HTTP_ACCEPT_LANGUAGE fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_CONNECTION keep-alive
HTTP_HOST 127.0.0.1
HTTP_KEEP_ALIVE 300
HTTP_REFERER http://127.0.0.1/home/
HTTP_USER_AGENT Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
PATH C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\har\sys;c:\divalto\sys;c:\har\sys;c:\divalto\sys;;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\JP\EasyPHP\Apache;C:\JP\EasyPHP\PHP
REMOTE_ADDR 127.0.0.1
REMOTE_PORT 1124
SCRIPT_FILENAME c:/jp/easyphp/home/phpinfo.php
SERVER_ADDR 127.0.0.1
SERVER_ADMIN admin@localhost
SERVER_NAME 127.0.0.1
SERVER_PORT 80
SERVER_SIGNATURE <ADDRESS>Apache/1.3.33 Server at <A HREF="mailto:admin@localhost">127.0.0.1</A> Port 80</ADDRESS>
SERVER_SOFTWARE Apache/1.3.33 (Win32) PHP/4.3.10
SystemRoot C:\WINDOWS
WINDIR C:\WINDOWS
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING no value
REQUEST_URI /home/phpinfo.php
SCRIPT_NAME /home/phpinfo.php
com
Directive Local Value Master Value
com.allow_dcom Off Off
com.autoregister_casesensitive On On
com.autoregister_typelib Off Off
com.autoregister_verbose Off Off
com.typelib_file no value no value
ctype
ctype functions enabled
dbx
dbx support enabled
dbx version 1.0.0
supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT
Directive Local Value Master Value
dbx.colnames_case lowercase lowercase
ftp
FTP support enabled
gd
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
mbstring
Multibyte Support enabled
Japanese support enabled
Simplified chinese support enabled
Traditional chinese support enabled
Korean support enabled
Russian support enabled
Multibyte (japanese) regex support enabled
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding ISO-8859-1 no value
mbstring.language neutral neutral
mbstring.substitute_character no value no value
mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.49
Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off
odbc
ODBC Support enabled
Active Persistent Links 0
Active Links 0
ODBC library Win32
Directive Local Value Master Value
odbc.allow_persistent On On
odbc.check_persistent On On
odbc.default_db no value no value
odbc.default_pw no value no value
odbc.default_user no value no value
odbc.defaultbinmode return as is return as is
odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes
odbc.max_links Unlimited Unlimited
odbc.max_persistent Unlimited Unlimited
overload
User-Space Object Overloading Support enabled
pcre
PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 4.5 01-December-2003
session
Session Support enabled
Registered save handlers files user
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:\JP\EasyPHP\\tmp\ C:\JP\EasyPHP\\tmp\
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
standard
Regex Library Bundled library enabled
Dynamic Library Support enabled
Internal Sendmail Support for Windows enabled
Directive Local Value Master Value
assert.active 1 1
assert.bail 0 0
assert.callback no value no value
assert.quiet_eval 0 0
assert.warning 1 1
auto_detect_line_endings 0 0
default_socket_timeout 60 60
safe_mode_allowed_env_vars PHP_ PHP_
safe_mode_protected_env_vars LD_LIBRARY_PATH LD_LIBRARY_PATH
url_rewriter.tags a=href,area=href,frame=src,input=src,form=fakeentry a=href,area=href,frame=src,input=src,form=fakeentry
user_agent no value no value
tokenizer
Tokenizer Support enabled
wddx
WDDX Support enabled
WDDX Session Serializer enabled
Directive Local Value Master Value
xdebug.auto_trace Off Off
xdebug.collect_includes On On
xdebug.collect_params 0 0
xdebug.collect_return Off Off
xdebug.collect_vars Off Off
xdebug.default_enable On On
xdebug.dump.COOKIE no value no value
xdebug.dump.ENV no value no value
xdebug.dump.FILES no value no value
xdebug.dump.GET no value no value
xdebug.dump.POST no value no value
xdebug.dump.REQUEST no value no value
xdebug.dump.SERVER no value no value
xdebug.dump.SESSION no value no value
xdebug.dump_globals On On
xdebug.dump_once On On
xdebug.dump_undefined Off Off
xdebug.extended_info On On
xdebug.idekey jpsiffert default
xdebug.manual_url http://www.php.net http://www.php.net
xdebug.max_nesting_level 100 100
xdebug.profiler_aggregate Off Off
xdebug.profiler_append Off Off
xdebug.profiler_enable Off Off
xdebug.profiler_enable_trigger Off Off
xdebug.profiler_output_dir /tmp /tmp
xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p
xdebug.remote_autostart Off Off
xdebug.remote_enable On On
xdebug.remote_handler dbgp dbgp
xdebug.remote_host 127.0.0.1 127.0.0.1
xdebug.remote_log C:\Jp\easyPhp\www\xdebug.log C:\Jp\easyPhp\www\xdebug.log
xdebug.remote_mode req req
xdebug.remote_port 9000 9000
xdebug.show_exception_trace Off Off
xdebug.show_local_vars On On
xdebug.show_mem_delta Off Off
xdebug.trace_format 0 0
xdebug.trace_options 0 0
xdebug.trace_output_dir /tmp /tmp
xdebug.trace_output_name trace.%c trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth 3 3
xml
XML Support active
XML Namespace Support active
EXPAT Version 1.95.6
zlib
ZLib Support enabled
Compiled Version 1.1.4
Linked Version 1.1.4
Directive Local Value Master Value
zlib.output_compression Off Off
zlib.output_compression_level -1 -1
zlib.output_handler no value no value
Additional Modules
Module Name
Environment
Variable Value
ALLUSERSPROFILE C:\Documents and Settings\All Users
APPDATA C:\Documents and Settings\jpsiffert\Application Data
CLIENTNAME Console
CommonProgramFiles C:\Program Files\Fichiers communs
COMPUTERNAME JPSFIXE
ComSpec C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK NO
HOMEDRIVE C:
HOMEPATH \Documents and Settings\jpsiffert
LOGONSERVER \\SERVEURAD
NUMBER_OF_PROCESSORS 1
OS Windows_NT
Path C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\har\sys;c:\divalto\sys;c:\har\sys;c:\divalto\sys;;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\JP\EasyPHP\Apache;C:\JP\EasyPHP\PHP
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE x86
PROCESSOR_IDENTIFIER x86 Family 15 Model 95 Stepping 2, AuthenticAMD
PROCESSOR_LEVEL 15
PROCESSOR_REVISION 5f02
ProgramFiles C:\Program Files
SESSIONNAME Console
SystemDrive C:
SystemRoot C:\WINDOWS
TEMP C:\DOCUME~1\JPSIFF~1\LOCALS~1\Temp
TMP C:\DOCUME~1\JPSIFF~1\LOCALS~1\Temp
USERDNSDOMAIN DIVALTO.LOCAL
USERDOMAIN DIVALTO
USERNAME jpsiffert
USERPROFILE C:\Documents and Settings\jpsiffert
windir C:\WINDOWS
X_USER ROOT
PHP Variables
Variable Value
_SERVER["COMSPEC"] C:\WINDOWS\system32\cmd.exe
_SERVER["DOCUMENT_ROOT"] c:/jp/easyphp/www
_SERVER["HTTP_ACCEPT"] text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
_SERVER["HTTP_ACCEPT_CHARSET"] ISO-8859-1,utf-8;q=0.7,*;q=0.7
_SERVER["HTTP_ACCEPT_ENCODING"] gzip,deflate
_SERVER["HTTP_ACCEPT_LANGUAGE"] fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
_SERVER["HTTP_CONNECTION"] keep-alive
_SERVER["HTTP_HOST"] 127.0.0.1
_SERVER["HTTP_KEEP_ALIVE"] 300
_SERVER["HTTP_REFERER"] http://127.0.0.1/home/
_SERVER["HTTP_USER_AGENT"] Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
_SERVER["PATH"] C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\har\sys;c:\divalto\sys;c:\har\sys;c:\divalto\sys;;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\JP\EasyPHP\Apache;C:\JP\EasyPHP\PHP
_SERVER["REMOTE_ADDR"] 127.0.0.1
_SERVER["REMOTE_PORT"] 1124
_SERVER["SCRIPT_FILENAME"] c:/jp/easyphp/home/phpinfo.php
_SERVER["SERVER_ADDR"] 127.0.0.1
_SERVER["SERVER_ADMIN"] admin@localhost
_SERVER["SERVER_NAME"] 127.0.0.1
_SERVER["SERVER_PORT"] 80
_SERVER["SERVER_SIGNATURE"] <ADDRESS>Apache/1.3.33 Server at <A HREF="mailto:admin@localhost">127.0.0.1</A> Port 80</ADDRESS>
_SERVER["SERVER_SOFTWARE"] Apache/1.3.33 (Win32) PHP/4.3.10
_SERVER["SystemRoot"] C:\WINDOWS
_SERVER["WINDIR"] C:\WINDOWS
_SERVER["GATEWAY_INTERFACE"] CGI/1.1
_SERVER["SERVER_PROTOCOL"] HTTP/1.1
_SERVER["REQUEST_METHOD"] GET
_SERVER["QUERY_STRING"] no value
_SERVER["REQUEST_URI"] /home/phpinfo.php
_SERVER["SCRIPT_NAME"] /home/phpinfo.php
_SERVER["PATH_TRANSLATED"] c:/jp/easyphp/home/phpinfo.php
_SERVER["PHP_SELF"] /home/phpinfo.php
PHP License
This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Without looking at it too much this seems to be the obvious problem:
PHP Version 4.3.10
There were quite a few changes in the PHP core from 4.3 to 4.4, if I remember correctly they ported some of the internals from PHP 5 back to 4.4. I think that Xdebug doesn't work with PHP versions prior 4.4.1. I suggest you look at what version your provider is using and upgrade your local PHP. I bet it's at least 4.4.something. If not, thats probably a security risk, unless they are running some wild patched up version.
But then again the syntax of the language has not changed between 4.3 and 4.4 so you could develop at home on 4.4 and have the advantage of debugging, then run the code on whatever version your provider has.
Best regards.
-Zobo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well zobo, how to tell that... I still have the bug from the preceding post.
I set a breakpoint and when i run the page it doesn't break into the code, Npp does blink but nothing more...
If i switch on the break on first line checkbox, i get an access violation à adress XXXXXX error messagebox....
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok, some more comment on what I see from the trace:
Altho the first "request" is mapped ok (file:///c:/jp/easyphp/www/lolita/index.php) all others are not (css/.. ajax...).
Your mapping looks ok, so mo real clue here.
The other bad thing I see is that there are TWO concurrent requests. This plugin does not handle more than one requests really good. It doesn't handle them at all. If one session is active and another request will pop in and override the older one, but the older will still live and keep the previous session "active"...
I'm having a hard time figuring out what could go wrong here...
For the sake of it, try to change your mapping setting to
127.0.0.1||c:|c:\
Lower case.
Always these problems with windows q:)
Another thing you can try is to change your PHP code to use ob_start(); at the begging. This will prevent all output until the script is finished, and thus no secondary request will mess with debugging. Try this one fist, I think we'll get most out of it. If you still have problems, give me the output again so I can see if we are still having two sessions.
I have multiple debugging session handling planned, just no time to code it yet.
Get back to me with progress.
-Zobo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
excuse me mr Npp is it beacause of the use of the name lolita?
well sorry if my improvisation association acronym is lolita
i can use another local site but will it help?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Can you give me the output of phpinfo. At least the Xdebug part.
Check that extended info is on or breakpoints won't work at all:
xdebug.extended_info=1
-Zobo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Directive Local Value Master Value
xdebug.auto_trace Off Off
xdebug.collect_includes On On
xdebug.collect_params 0 0
xdebug.collect_return Off Off
xdebug.collect_vars Off Off
xdebug.default_enable On On
xdebug.dump.COOKIE no value no value
xdebug.dump.ENV no value no value
xdebug.dump.FILES no value no value
xdebug.dump.GET no value no value
xdebug.dump.POST no value no value
xdebug.dump.REQUEST no value no value
xdebug.dump.SERVER no value no value
xdebug.dump.SESSION no value no value
xdebug.dump_globals On On
xdebug.dump_once On On
xdebug.dump_undefined Off Off
xdebug.extended_info On On
xdebug.idekey jpsiffert default
xdebug.manual_url http://www.php.net http://www.php.net
xdebug.max_nesting_level 100 100
xdebug.profiler_aggregate Off Off
xdebug.profiler_append Off Off
xdebug.profiler_enable Off Off
xdebug.profiler_enable_trigger Off Off
xdebug.profiler_output_dir /tmp /tmp
xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p
xdebug.remote_autostart Off Off
xdebug.remote_enable On On
xdebug.remote_handler dbgp dbgp
xdebug.remote_host 127.0.0.1 127.0.0.1
xdebug.remote_log C:\Jp\easyPhp\www\xdebug.log C:\Jp\easyPhp\www\xdebug.log
xdebug.remote_mode req req
xdebug.remote_port 9000 9000
xdebug.show_exception_trace Off Off
xdebug.show_local_vars On On
xdebug.show_mem_delta Off Off
xdebug.trace_format 0 0
xdebug.trace_options 0 0
xdebug.trace_output_dir /tmp /tmp
xdebug.trace_output_name trace.%c trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth 3 3
Humm... How can I put this...
Maybe the big capsed warning "XDEBUG NOT LOADED AS ZEND EXTENSION" might give a clue, that Xdebug is NOT loaded as zend extension?
If it's not loaded as Zend extension, debugpoints won't work...
Check that you don't have xdebug loaded twice, or soem other bizare problem. Maybe there is something "wrong" with your PHP?
-Z
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
well sorry but i thought that adding
zend_extension_ts="C:\JP\EasyPHP\php\extensions\php_xdebug-2.0.2-4.4.6.dll"
was enough for "zend_extension" otherwise i don't know how to do it....
Sorry for disturbing
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It should be... That's why this is so confusing...
Ok.. we are definetely having problems with the PHP extension.
Please paste the whole phpinfo output. If I can't find the problem there, we'll have to take this to the Xdebug support list.
Re,
-Zobo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I installed EasyPHP (2.0b1).
I did have some problems with setting it up, mostly vista related, but when I figured out how the config work, I had it set up fast.
Check that you are editing the rigth files (conf_files\php.ini) and check that perhaps xdebug isn't loaded twice.
Then stop and start EasyPHP and load you phpinfo php file.
At the top, near the zend engine logo, make sure you have this line:
"with Xdebug v2.0.2, Copyright (c) 2002-2007, by Derick Rethans"
Re,
-Zobo
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi all.
Latest release of the DBGP plugin fixes a few annoying bugs. It also adds an option to not brake at first line when debugging starts.
Get it while it's hot! Please report any bugs here.
Best regards,
-Zobo
Sorry i can't use EasyPhp 2 beacause it includes php5 and my site provider doesn't support it from now...
Sorry for disturbing you so long...
By the way here is my complete phpinfo, but don't wast too many times on it you allready have spend to much
PHP Logo
PHP Version 4.3.10
System Windows NT JPSFIXE 5.1 build 2600
Build Date Dec 14 2004 17:46:48
Server API Apache
Virtual Directory Support enabled
Configuration File (php.ini) Path c:\jp\easyphp\apache\php.ini
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010
Debug Build no
Thread Safety enabled
Registered PHP Streams php, http, ftp, compress.zlib
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
PHP Credits
Configuration
PHP Core
Directive Local Value Master Value
allow_call_time_pass_reference Off Off
allow_url_fopen On On
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions no value no value
display_errors On On
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl On On
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 2039 2039
expose_php On On
extension_dir C:\JP\EasyPHP\\php\extensions\ C:\JP\EasyPHP\\php\extensions\
file_uploads On On
gpc_order GPC GPC
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .;C:\JP\EasyPHP\\php\pear\ .;C:\JP\EasyPHP\\php\pear\
log_errors On On
log_errors_max_len 1024 1024
magic_quotes_gpc Off Off
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
max_execution_time 30 30
max_input_time 60 60
open_basedir no value no value
output_buffering 0 0
output_handler no value no value
post_max_size 8M 8M
precision 14 14
register_argc_argv Off Off
register_globals Off Off
report_memleaks On On
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from xxxxxxx@yyyy.com xxxxxxxx@yyyy.com
sendmail_path no value no value
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 2M 2M
upload_tmp_dir C:\JP\EasyPHP\tmp\ C:\JP\EasyPHP\tmp\
user_dir no value no value
variables_order GPCS GPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
apache
Apache for Windows 95/NT
Apache Version Apache/1.3.33 (Win32) PHP/4.3.10
Apache Release 10324100
Apache API Version 19990320
Hostname:Port localhost:80
Timeouts Connection: 300 - Keep-Alive: 15
Directive Local Value Master Value
child_terminate 0 0
engine 1 1
last_modified 0 0
xbithack 0 0
Apache Environment
Variable Value
COMSPEC C:\WINDOWS\system32\cmd.exe
DOCUMENT_ROOT c:/jp/easyphp/www
HTTP_ACCEPT text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7
HTTP_ACCEPT_ENCODING gzip,deflate
HTTP_ACCEPT_LANGUAGE fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_CONNECTION keep-alive
HTTP_HOST 127.0.0.1
HTTP_KEEP_ALIVE 300
HTTP_REFERER http://127.0.0.1/home/
HTTP_USER_AGENT Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
PATH C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\har\sys;c:\divalto\sys;c:\har\sys;c:\divalto\sys;;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\JP\EasyPHP\Apache;C:\JP\EasyPHP\PHP
REMOTE_ADDR 127.0.0.1
REMOTE_PORT 1124
SCRIPT_FILENAME c:/jp/easyphp/home/phpinfo.php
SERVER_ADDR 127.0.0.1
SERVER_ADMIN admin@localhost
SERVER_NAME 127.0.0.1
SERVER_PORT 80
SERVER_SIGNATURE <ADDRESS>Apache/1.3.33 Server at <A HREF="mailto:admin@localhost">127.0.0.1</A> Port 80</ADDRESS>
SERVER_SOFTWARE Apache/1.3.33 (Win32) PHP/4.3.10
SystemRoot C:\WINDOWS
WINDIR C:\WINDOWS
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING no value
REQUEST_URI /home/phpinfo.php
SCRIPT_NAME /home/phpinfo.php
HTTP Headers Information
HTTP Request Headers
HTTP Request GET /home/phpinfo.php HTTP/1.1
Accept text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding gzip,deflate
Accept-Language fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Connection keep-alive
Host 127.0.0.1
Keep-Alive 300
Referer http://127.0.0.1/home/
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
HTTP Response Headers
X-Powered-By PHP/4.3.10
bcmath
BCMath support enabled
calendar
Calendar support enabled
com
Directive Local Value Master Value
com.allow_dcom Off Off
com.autoregister_casesensitive On On
com.autoregister_typelib Off Off
com.autoregister_verbose Off Off
com.typelib_file no value no value
ctype
ctype functions enabled
dbx
dbx support enabled
dbx version 1.0.0
supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT
Directive Local Value Master Value
dbx.colnames_case lowercase lowercase
ftp
FTP support enabled
gd
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
mbstring
Multibyte Support enabled
Japanese support enabled
Simplified chinese support enabled
Traditional chinese support enabled
Korean support enabled
Russian support enabled
Multibyte (japanese) regex support enabled
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding ISO-8859-1 no value
mbstring.language neutral neutral
mbstring.substitute_character no value no value
mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.49
Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off
odbc
ODBC Support enabled
Active Persistent Links 0
Active Links 0
ODBC library Win32
Directive Local Value Master Value
odbc.allow_persistent On On
odbc.check_persistent On On
odbc.default_db no value no value
odbc.default_pw no value no value
odbc.default_user no value no value
odbc.defaultbinmode return as is return as is
odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes
odbc.max_links Unlimited Unlimited
odbc.max_persistent Unlimited Unlimited
overload
User-Space Object Overloading Support enabled
pcre
PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 4.5 01-December-2003
session
Session Support enabled
Registered save handlers files user
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:\JP\EasyPHP\\tmp\ C:\JP\EasyPHP\\tmp\
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
standard
Regex Library Bundled library enabled
Dynamic Library Support enabled
Internal Sendmail Support for Windows enabled
Directive Local Value Master Value
assert.active 1 1
assert.bail 0 0
assert.callback no value no value
assert.quiet_eval 0 0
assert.warning 1 1
auto_detect_line_endings 0 0
default_socket_timeout 60 60
safe_mode_allowed_env_vars PHP_ PHP_
safe_mode_protected_env_vars LD_LIBRARY_PATH LD_LIBRARY_PATH
url_rewriter.tags a=href,area=href,frame=src,input=src,form=fakeentry a=href,area=href,frame=src,input=src,form=fakeentry
user_agent no value no value
tokenizer
Tokenizer Support enabled
wddx
WDDX Support enabled
WDDX Session Serializer enabled
xdebug
xdebug support enabled
Version 2.0.2
XDEBUG NOT LOADED AS ZEND EXTENSION
Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.125.2.2 $
GDB - GNU Debugger protocol $Revision: 1.87 $
PHP3 - PHP 3 Debugger protocol $Revision: 1.22 $
Directive Local Value Master Value
xdebug.auto_trace Off Off
xdebug.collect_includes On On
xdebug.collect_params 0 0
xdebug.collect_return Off Off
xdebug.collect_vars Off Off
xdebug.default_enable On On
xdebug.dump.COOKIE no value no value
xdebug.dump.ENV no value no value
xdebug.dump.FILES no value no value
xdebug.dump.GET no value no value
xdebug.dump.POST no value no value
xdebug.dump.REQUEST no value no value
xdebug.dump.SERVER no value no value
xdebug.dump.SESSION no value no value
xdebug.dump_globals On On
xdebug.dump_once On On
xdebug.dump_undefined Off Off
xdebug.extended_info On On
xdebug.idekey jpsiffert default
xdebug.manual_url http://www.php.net http://www.php.net
xdebug.max_nesting_level 100 100
xdebug.profiler_aggregate Off Off
xdebug.profiler_append Off Off
xdebug.profiler_enable Off Off
xdebug.profiler_enable_trigger Off Off
xdebug.profiler_output_dir /tmp /tmp
xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p
xdebug.remote_autostart Off Off
xdebug.remote_enable On On
xdebug.remote_handler dbgp dbgp
xdebug.remote_host 127.0.0.1 127.0.0.1
xdebug.remote_log C:\Jp\easyPhp\www\xdebug.log C:\Jp\easyPhp\www\xdebug.log
xdebug.remote_mode req req
xdebug.remote_port 9000 9000
xdebug.show_exception_trace Off Off
xdebug.show_local_vars On On
xdebug.show_mem_delta Off Off
xdebug.trace_format 0 0
xdebug.trace_options 0 0
xdebug.trace_output_dir /tmp /tmp
xdebug.trace_output_name trace.%c trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth 3 3
xml
XML Support active
XML Namespace Support active
EXPAT Version 1.95.6
zlib
ZLib Support enabled
Compiled Version 1.1.4
Linked Version 1.1.4
Directive Local Value Master Value
zlib.output_compression Off Off
zlib.output_compression_level -1 -1
zlib.output_handler no value no value
Additional Modules
Module Name
Environment
Variable Value
ALLUSERSPROFILE C:\Documents and Settings\All Users
APPDATA C:\Documents and Settings\jpsiffert\Application Data
CLIENTNAME Console
CommonProgramFiles C:\Program Files\Fichiers communs
COMPUTERNAME JPSFIXE
ComSpec C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK NO
HOMEDRIVE C:
HOMEPATH \Documents and Settings\jpsiffert
LOGONSERVER \\SERVEURAD
NUMBER_OF_PROCESSORS 1
OS Windows_NT
Path C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\har\sys;c:\divalto\sys;c:\har\sys;c:\divalto\sys;;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\JP\EasyPHP\Apache;C:\JP\EasyPHP\PHP
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE x86
PROCESSOR_IDENTIFIER x86 Family 15 Model 95 Stepping 2, AuthenticAMD
PROCESSOR_LEVEL 15
PROCESSOR_REVISION 5f02
ProgramFiles C:\Program Files
SESSIONNAME Console
SystemDrive C:
SystemRoot C:\WINDOWS
TEMP C:\DOCUME~1\JPSIFF~1\LOCALS~1\Temp
TMP C:\DOCUME~1\JPSIFF~1\LOCALS~1\Temp
USERDNSDOMAIN DIVALTO.LOCAL
USERDOMAIN DIVALTO
USERNAME jpsiffert
USERPROFILE C:\Documents and Settings\jpsiffert
windir C:\WINDOWS
X_USER ROOT
PHP Variables
Variable Value
_SERVER["COMSPEC"] C:\WINDOWS\system32\cmd.exe
_SERVER["DOCUMENT_ROOT"] c:/jp/easyphp/www
_SERVER["HTTP_ACCEPT"] text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
_SERVER["HTTP_ACCEPT_CHARSET"] ISO-8859-1,utf-8;q=0.7,*;q=0.7
_SERVER["HTTP_ACCEPT_ENCODING"] gzip,deflate
_SERVER["HTTP_ACCEPT_LANGUAGE"] fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
_SERVER["HTTP_CONNECTION"] keep-alive
_SERVER["HTTP_HOST"] 127.0.0.1
_SERVER["HTTP_KEEP_ALIVE"] 300
_SERVER["HTTP_REFERER"] http://127.0.0.1/home/
_SERVER["HTTP_USER_AGENT"] Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
_SERVER["PATH"] C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\har\sys;c:\divalto\sys;c:\har\sys;c:\divalto\sys;;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625;C:\JP\EasyPHP\Apache;C:\JP\EasyPHP\PHP
_SERVER["REMOTE_ADDR"] 127.0.0.1
_SERVER["REMOTE_PORT"] 1124
_SERVER["SCRIPT_FILENAME"] c:/jp/easyphp/home/phpinfo.php
_SERVER["SERVER_ADDR"] 127.0.0.1
_SERVER["SERVER_ADMIN"] admin@localhost
_SERVER["SERVER_NAME"] 127.0.0.1
_SERVER["SERVER_PORT"] 80
_SERVER["SERVER_SIGNATURE"] <ADDRESS>Apache/1.3.33 Server at <A HREF="mailto:admin@localhost">127.0.0.1</A> Port 80</ADDRESS>
_SERVER["SERVER_SOFTWARE"] Apache/1.3.33 (Win32) PHP/4.3.10
_SERVER["SystemRoot"] C:\WINDOWS
_SERVER["WINDIR"] C:\WINDOWS
_SERVER["GATEWAY_INTERFACE"] CGI/1.1
_SERVER["SERVER_PROTOCOL"] HTTP/1.1
_SERVER["REQUEST_METHOD"] GET
_SERVER["QUERY_STRING"] no value
_SERVER["REQUEST_URI"] /home/phpinfo.php
_SERVER["SCRIPT_NAME"] /home/phpinfo.php
_SERVER["PATH_TRANSLATED"] c:/jp/easyphp/home/phpinfo.php
_SERVER["PHP_SELF"] /home/phpinfo.php
PHP License
This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.
Without looking at it too much this seems to be the obvious problem:
PHP Version 4.3.10
There were quite a few changes in the PHP core from 4.3 to 4.4, if I remember correctly they ported some of the internals from PHP 5 back to 4.4. I think that Xdebug doesn't work with PHP versions prior 4.4.1. I suggest you look at what version your provider is using and upgrade your local PHP. I bet it's at least 4.4.something. If not, thats probably a security risk, unless they are running some wild patched up version.
But then again the syntax of the language has not changed between 4.3 and 4.4 so you could develop at home on 4.4 and have the advantage of debugging, then run the code on whatever version your provider has.
Best regards.
-Zobo
Can't wait to test it!!
I'm on the way!!
Jp
Well zobo, how to tell that... I still have the bug from the preceding post.
I set a breakpoint and when i run the page it doesn't break into the code, Npp does blink but nothing more...
If i switch on the break on first line checkbox, i get an access violation à adress XXXXXX error messagebox....
Humm..
Again the raw log as before please. I see if at least the messages are correct.
I did test it with windows tho.. No problems.
-Zobo
Yay. I just found another bug and some other windows path problems. But they should not be the same as you are having.
Here you are (can you also enable ctrl+A (select all) to work in raw window this could be easier)
Accept: 127.0.0.1
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///c:/jp/easyphp/www/lolita/index.php" language="PHP" protocol_version="1.0" appid="2480" idekey="default"><engine version="2.0.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright></init>
Send: feature_set -i 1 -n max_depth -v 3
Send: feature_set -i 2 -n max_children -v 15
Send: breakpoint_set -i 3 -t line -f file:///C:/JP/EasyPHP/www/lolita/index.php -n 20 -s enabled -h 0 -o >=
Send: breakpoint_list -i 4
Send: run -i 5
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="1" feature="max_depth" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_children" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="3" state="enabled" id="24800001"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="4"><breakpoint type="line" filename="file:///C:/JP/EasyPHP/www/lolita/index.php" lineno="20" state="enabled" hit_count="0" hit_condition=">=" hit_value="0" id="24800001"></breakpoint></response>
----
Accept: 127.0.0.1
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="5" status="stopped" reason="ok"></response>
Send: run -i 6
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///c:/jp/easyphp/www/lolita/css/dyncss.php" language="PHP" protocol_version="1.0" appid="2480" idekey="default"><engine version="2.0.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright></init>
Send: source -i 1 -f file:///c:/jp/easyphp/www/lolita/css/dyncss.php
Send: feature_set -i 2 -n max_depth -v 3
Send: feature_set -i 3 -n max_children -v 15
Send: breakpoint_set -i 4 -t line -f file:///C:/JP/EasyPHP/www/lolita/index.php -n 20 -s enabled -h 0 -o >=
Send: breakpoint_list -i 5
Send: run -i 6
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="source" transaction_id="1" encoding="base64"><![CDATA[PD8NCiAgCWhlYWRlcignQ29udGVudC10eXBlOiB0ZXh0L2NzczsgY2hhcnNldD11dGYtOCcpOw0KDQovKg0KIAlyZXF1aXJlKCcuL2xpYi9iYXNlLmluYycpOw0KDQoJJHNtYXJ0eS0+dGVtcGxhdGVfZGlyPScuL2Nzcy8nOw0KDQoJaWYoaXNzZXQoJF9HRVRbJ3BhZ2VHJ10pKQ0KCQkkc21hcnR5LT5kaXNwbGF5KCdzaXRlXycuJF9HRVRbJ3BhZ2VHJ10uJy5jc3MnKTsNCgllbHNlaWYoaXNzZXQoJF9HRVRbJ3BhZ2UnXSkpDQoJCSRzbWFydHktPmRpc3BsYXkoJF9HRVRbJ3BhZ2UnXS4nL3NpdGVfJy4kX0dFVFsncGFnZSddLicuY3NzJyk7DQoJCQ0KKi8NCg0KCWlmKGlzc2V0KCRfR0VUWydwYWdlRyddKSkNCgkJaW5jbHVkZSgnLi9zaXRlXycuJF9HRVRbJ3BhZ2VHJ10uJy5jc3MnKTsNCgllbHNlaWYoaXNzZXQoJF9HRVRbJ3BhZ2UnXSkpDQoJCWluY2x1ZGUoJy4vJy4kX0dFVFsncGFnZSddLicvc2l0ZV8nLiRfR0VUWydwYWdlJ10uJy5jc3MnKTsNCg0KPz4NCg==]]></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_depth" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="3" feature="max_children" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="4" state="enabled" id="24800001"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="5"><breakpoint type="line" filename="file:///C:/JP/EasyPHP/www/lolita/index.php" lineno="20" state="enabled" hit_count="0" hit_condition=">=" hit_value="0" id="24800001"></breakpoint></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="6" status="stopped" reason="ok"></response>
Send: run -i 7
----
Disconnect: 127.0.0.1
Disconnect: 127.0.0.1
Accept: 127.0.0.1
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///c:/jp/easyphp/www/lolita/css/dyncss.php" language="PHP" protocol_version="1.0" appid="2480" idekey="default"><engine version="2.0.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright></init>
Send: source -i 1 -f file:///c:/jp/easyphp/www/lolita/css/dyncss.php
Send: feature_set -i 2 -n max_depth -v 3
Send: feature_set -i 3 -n max_children -v 15
Send: breakpoint_set -i 4 -t line -f file:///C:/JP/EasyPHP/www/lolita/index.php -n 20 -s enabled -h 0 -o >=
Send: breakpoint_list -i 5
Send: run -i 6
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="source" transaction_id="1" encoding="base64"><![CDATA[PD8NCiAgCWhlYWRlcignQ29udGVudC10eXBlOiB0ZXh0L2NzczsgY2hhcnNldD11dGYtOCcpOw0KDQovKg0KIAlyZXF1aXJlKCcuL2xpYi9iYXNlLmluYycpOw0KDQoJJHNtYXJ0eS0+dGVtcGxhdGVfZGlyPScuL2Nzcy8nOw0KDQoJaWYoaXNzZXQoJF9HRVRbJ3BhZ2VHJ10pKQ0KCQkkc21hcnR5LT5kaXNwbGF5KCdzaXRlXycuJF9HRVRbJ3BhZ2VHJ10uJy5jc3MnKTsNCgllbHNlaWYoaXNzZXQoJF9HRVRbJ3BhZ2UnXSkpDQoJCSRzbWFydHktPmRpc3BsYXkoJF9HRVRbJ3BhZ2UnXS4nL3NpdGVfJy4kX0dFVFsncGFnZSddLicuY3NzJyk7DQoJCQ0KKi8NCg0KCWlmKGlzc2V0KCRfR0VUWydwYWdlRyddKSkNCgkJaW5jbHVkZSgnLi9zaXRlXycuJF9HRVRbJ3BhZ2VHJ10uJy5jc3MnKTsNCgllbHNlaWYoaXNzZXQoJF9HRVRbJ3BhZ2UnXSkpDQoJCWluY2x1ZGUoJy4vJy4kX0dFVFsncGFnZSddLicvc2l0ZV8nLiRfR0VUWydwYWdlJ10uJy5jc3MnKTsNCg0KPz4NCg==]]></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_depth" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="3" feature="max_children" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="4" state="enabled" id="24800002"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="5"><breakpoint type="line" filename="file:///C:/JP/EasyPHP/www/lolita/index.php" lineno="20" state="enabled" hit_count="0" hit_condition=">=" hit_value="0" id="24800002"></breakpoint></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="6" status="stopped" reason="ok"></response>
Send: run -i 7
----
----
Disconnect: 127.0.0.1
Accept: 127.0.0.1
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///c:/jp/easyphp/www/lolita/ajax.php" language="PHP" protocol_version="1.0" appid="2480" idekey="default"><engine version="2.0.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright></init>
Send: source -i 1 -f file:///c:/jp/easyphp/www/lolita/ajax.php
Send: feature_set -i 2 -n max_depth -v 3
Send: feature_set -i 3 -n max_children -v 15
Send: breakpoint_set -i 4 -t line -f file:///C:/JP/EasyPHP/www/lolita/index.php -n 20 -s enabled -h 0 -o >=
Send: breakpoint_list -i 5
Send: run -i 6
----
Accept: 127.0.0.1
----
----
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="source" transaction_id="1" encoding="base64"><![CDATA[PD9waHANCgkvLyBQb3VyIGZvcmNlciBsYSBib25uZSBpbnRlcnByZXRhdGlvbiBkZXMgY2FyYWN0w6hyZXMNCgloZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Iik7DQoNCglyZXF1aXJlX29uY2UoJy4vbGliL2Jhc2UuaW5jJyk7DQoNCi8vCSRzbWFydHktPnRlbXBsYXRlX2Rpcj0kbW90Wyd0cGxfcGF0aCddLidfX2FkbWluX18vJzsNCg0KCWZ1bmN0aW9uIGFsZXJ0QWpheCgkdHh0LCRpPTEpew0KCQlpZigkaT09MSkNCgkJCWVjaG8gImFsZXJ0KCciLmFkZHNsYXNoZXMoJHR4dCkuIicpOyI7DQoJCWVsc2UNCgkJCWVjaG8gIm5ldyBJbnNlcnRpb24uQm90dG9tKCdpYycsJyIuYWRkc2xhc2hlcygkdHh0KS4iJyk7IjsNCgl9DQoNCg0KCWZ1bmN0aW9uIGVudm95ZXJNYWlsKCRtYWlsLCRtZW1icmUpew0KCSAgICBnbG9iYWwgJHNtYXJ0eTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdtZW1icmUnLCRtZW1icmUpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ3Byb2ZpbF9tb2RpZmljYXRpb25fbWFpbCcsdHJ1ZSk7DQoJCSRtZXNzYWdlPSRzbWFydHktPmZldGNoKCcuL19fYWRtaW5fXy9zaXRlX19fYWRtaW5fX3ByZXNlbnRhdGlvbnMuJy5UUExfRVhUKTsNCgkJJGhlYWRlcnM9IiI7DQoJCSRoZWFkZXJzLj0iRk9STTogd2VibWFzdGVyQGFzc29jaWF0aW9uLWxvbGl0YS5jb21cbiI7DQoJCSRoZWFkZXJzLj0iQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI7DQoNCgkJbWFpbCgkbWFpbCwnVG9uIHByb2ZpbCBlbiBsaWduZSDDoCBsYSBMT0xJVEEnLCRtZXNzYWdlLCRoZWFkZXJzKTsNCgl9DQoNCglpZighaXNzZXQoJF9SRVFVRVNUWydhY3Rpb24nXSkpDQoJCWJvdWdlX2RlX2xhKCcuLycpOwkJDQoJJHNhaXNvbl9jb3VyYW50ZT0kZGItPlNlbGVjdEZpcnN0KCdzZWxlY3QgKiBmcm9tIHRfc2Fpc29ucyB3aGVyZSBzYWlzb25fY291cmFudGU9MScpOw0KCSRzbWFydHktPmFzc2lnbignc2Fpc29uX2NvdXJhbnRlJywkc2Fpc29uX2NvdXJhbnRlKTsNCg0KCXN3aXRjaCgkX1JFUVVFU1RbJ2FjdGlvbiddKXsNCgkgICAgY2FzZSAnZHluJzoNCgkgICAgCXN3aXRjaCgkX1JFUVVFU1RbJ3doYXQnXSl7DQoJICAgIAkgICAgY2FzZSAncGljJzoNCgkgICAgCSAgICANCgkgICAgCSAgICAgICAgJHR5cGU9JF9HRVRbJ2ltYWdlX3R5cGUnXTsNCgkJCQkJDQoJCQkJCWlmICgkdHlwZT09MCkgJHR5cGU9MTsNCgkgICAgCSAgICAgICAgDQoJICAgIAkgICAgICAgICRzcWw9J3NlbGVjdCBpbWFnZV9pZCxpbWFnZV9leHQgZnJvbSB0X2R5bl9pbWFnZXMgd2hlcmUgaW1hZ2VfdHlwZT0nLiR0eXBlLicgb3JkZXIgYnkgcmFuZCgpIExJTUlUIDEnOw0KDQoJICAgIAkgICAgICAgICRmaXJzdD0kZGItPlNlbGVjdEZpcnN0KCRzcWwpOw0KCSAgICAJICAgICAgICANCgkgICAgCSAgICAgICAgJHBhdGggPSAkcGFyYW1bJ3JlcF9keW4nXS4nL2ltYWdlJy4kZmlyc3RbJ2ltYWdlX2lkJ10uJy4nLiRmaXJzdFsnaW1hZ2VfZXh0J107DQoJICAgIAkgICAgICAgIA0KCQkJCQloZWFkZXIoIkNvbnRlbnQtVHlwZTogaW1hZ2UvIi4kZmlyc3RbJ2ltYWdlX2V4dCddKTsNCgkJCQkJDQoJCQkJCSRmZCA9IGZvcGVuKCRwYXRoLCdyJyk7DQoJCQkJCQl3aGlsZSAoIWZlb2YoJGZkKSkgew0KCQkJCQkJJGJ1ZmZlciA9IGZnZXRzKCRmZCwgNDA5Nik7DQoJCQkJCQllY2hvICRidWZmZXI7DQoJCQkJCX0NCgkJCQkJZmNsb3NlICgkZmQpOw0KCQkJCQkNCgkgICAgCSAgICAgICAgYnJlYWs7DQoJICAgICAgICAgICAgY2FzZSAnY2FwdHVyZSc6DQoJCQkJCSRzbWFydHktPmFzc2lnbigncHJlc2VudGF0aW9uRHluYW1pcXVlJywkX1BPU1RbJ2NhcHR1cmUnXSk7DQoJCQkJCSRzbWFydHktPmRpc3BsYXkoJy4vX19hZG1pbl9fL3NpdGVfX19hZG1pbl9fcHJlc2VudGF0aW9uLicuVFBMX0VYVCk7DQoJICAgICAgICAgICAgICAgIGJyZWFrOw0KCSAgICAgICAgICAgIGNhc2UgJ2NvbWJvLXRlYW0tbGlzdCc6DQoJICAgICAgICAgICAgDQoJICAgICAgICAgICAgaWYoJF9QT1NUWydzYWlzb25faWQnXSE9Jycpew0KCQkgICAgICAgICAgICAkc3FsPScNCgkJCQkJCXNlbGVjdCAqIGZyb20gdF9lcXVpcGVzIGFzIHRfZQ0KCQkJCQkJaW5uZXIgam9pbiB0X2xpZW5zX2VzDQoJCQkJCQlVU0lORyhlcXVpcGVfaWQpDQoJCQkJCQlXSEVSRSBzYWlzb25faWQ9Jy4kX1BPU1RbJ3NhaXNvbl9pZCddOw0KDQoJCSAgICAgICAgICAgICR0ZWFtcz0kZGItPlNlbGVjdEFsbEJ5KCRzcWwsJ2VxdWlwZV9pZCcpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJICAgICR0ZWFtcz1hcnJheSgpOw0KCQkJCSAgICANCgkJCQllY2hvICINCgkJCQkgICAgdmFyIGNvbWJvID0gJCgnJF9QT1NUW3RhcmdldF0nKTsNCgkJCQkgICAgY29tYm8ub3B0aW9ucy5sZW5ndGg9MDsNCgkJCQkgICAgdmFyIGRlZj0wOw0KCQkJCSAgICB2YXIgdmFsZXVyPTA7DQoJCQkJCSI7DQoJCQkJJG9wdGlvbnM9Jyc7DQoJCQ0KCQkJCWlmKCRfUE9TVFsndmFsTnVsbCddPT10cnVlKQ0KCQkJCQkkb3B0aW9ucy49J2NvbWJvLm9wdGlvbnNbY29tYm8ub3B0aW9ucy5sZW5ndGhdPW5ldyBPcHRpb24oIi0iLCIwIix0cnVlLHRydWUpOyc7DQoJCQkJDQoJCQkJZm9yZWFjaCgkdGVhbXMgYXMgJGlkPT4kdGVhbSl7DQoJCQkJICAgICRvcHRpb25zLj0nY29tYm8ub3B0aW9uc1tjb21iby5vcHRpb25zLmxlbmd0aF09bmV3IE9wdGlvbigiJy4kdGVhbVtlcXVpcGVfbm9tXS4nIiwiJy4kaWQuJyIsJy4oJGlkPT0kX1BPU1RbJ2RlZlZhbHVlJ10/ICd0cnVlLHRydWUnIDonZmFsc2UsZmFsc2UnKS4nKTsnOw0KCQkJCSAgICBpZigkaWQ9PSRfUE9TVFsnZGVmVmFsdWUnXSkNCgkJCQkgICAgCSRvcHRpb25zLj0nDQoJCQkJCQkJZGVmPWNvbWJvLm9wdGlvbnMubGVuZ3RoLTE7DQoJCQkJCQkJdmFsZXVyPScuJGlkLic7DQoJCQkJCQknOw0KCQkJCQkvLyRvcHRpb25zLj0oJGlkPT0kX1BPU1RbJ2RlZlZhbHVlJ10gPyAnY29tYm8ub3B0aW9ucy5zZWxlY3RlZEluZGV4PWNvbWJvLm9wdGlvbnMubGVuZ3RoOyc6JycpOw0KCQkJCSAgICB9DQoNCgkJCQlpZigkb3B0aW9ucz09JycpDQoJCQkJICAgICRvcHRpb25zPSdjb21iby5vcHRpb25zW2NvbWJvLm9wdGlvbnMubGVuZ3RoXT1uZXcgT3B0aW9uKCJBdWN1bmUiLCIiLHRydWUsdHJ1ZSk7JzsNCgkJCQllbHNlDQoJCQkJCSRvcHRpb25zLj0nDQoJCQkJCQljb21iby5zZWxlY3RlZEluZGV4PWRlZjsNCgkJCQkJCWNvbWJvLnZhbHVlPXZhbGV1cjsnOw0KCQkJCQkNCgkJCQllY2hvICRvcHRpb25zOw0KDQoJICAgICAgICAgICAgYnJlYWs7DQoJICAgICAgICB9DQoJICAgICAgICANCgkgICAgICAgIGJyZWFrOw0KCQljYXNlICd0ZXN0JzoNCgkJCQ0KCQkJYnJlYWs7DQoJCWNhc2UgJ2dyb3VwQWRkJzoNCgkJCSR2YWwJPSRfUE9TVFsndmFsJ107DQoJCQkkb2JqSWQJPSRfUE9TVFsnb2JqSWQnXTsNCgkJCQ0KCQkJZWNobyAiDQoJCQkJaWYob2JqPWdldE9iaignIi4kb2JqSWQuIicpKXsNCgkJCQkJcmVzZXRGaWVsZFByZXNlbnRhdGlvbihvYmopOw0KCQkJCSI7DQoJCQkNCgkJCWlmKCR2YWw9PScnKXsNCgkJCQ0KCQkJCWVjaG8gIg0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfRklFTERfUkVRVUlSRUQnXS4iJyk7DQoJCQkJCXNldENsYXNzTmFtZShvYmosJ2ZpZWxkX3JlcXVpcmVkJyk7DQoJCQkJCW9iai5mb2N1cygpOw0KCQkJCQkiOw0KCQkJfQ0KCQkJZWxzZXsNCgkJCQkkc3FsPSdzZWxlY3QgY291bnQoKikgZnJvbSB0X2dyb3VwcyB3aGVyZSBncm91cF9uYW1lPSInLiR2YWwuJyInOw0KCQkJCWlmKCRkYi0+Q291bnQoJHNxbCk+MCkNCgkJCQkJZWNobyAiDQoJCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCd0aXRsZScsJyIuJG1vdFsnRVJSX0dST1VQX0VYSVNUUyddLiInKTsNCgkJCQkJCWFkZENsYXNzTmFtZShvYmosJ2ZpZWxkX2luX2Vycm9yJyk7DQoJCQkJCQlvYmouZm9jdXMoKTsNCgkJCQkJIjsNCgkJCQllbHNlew0KCQkJCQllY2hvICINCgkJCQkJCWJsaW5rU3R5bGUob2JqLCdmaWVsZF9vaycpOw0KCQkJCQkiOw0KCQkJCX0NCgkJCX0NCgkJCWVjaG8gIg0KCQkJfSAvLyBmaW4gaWYoaXNPYmoob2JqKSkNCgkJCWVsc2UNCgkJCQlhbGVydCgncGFzIHVuIG9iaicrIi4kb2JqSWQuIik7DQoJCQkiOw0KCQkNCgkJY2FzZSAnY2hlY2tGaWVsZCc6DQoJCQkkdmFsCT0kX1BPU1RbJ3ZhbCddOw0KCQkJJG9iaklkCT0kX1BPU1RbJ29iaklkJ107DQoJCQkkb2JsaWcJPSRfUkVRVUVTVFsnb2JsaWcnXTsNCgkJCSRtYXgJPSRfUkVRVUVTVFsnbWF4J107DQoJCQkkbWluCT0kX1JFUVVFU1RbJ21pbiddOw0KDQoJCQllY2hvICINCgkJCQlpZihvYmo9Z2V0T2JqKCciLiRvYmpJZC4iJykpew0KCQkJCQlyZXNldEZpZWxkUHJlc2VudGF0aW9uKG9iaik7DQoJCQkJIjsNCgkJCQ0KCQkJaWYoaXNzZXQoJG9ibGlnKSAmJiBzdHJfcmVwbGFjZSgnICcsJycsJHZhbCk9PScnKXsNCgkJCQllY2hvICINCgkJCQkJc2V0QXR0cmlidXRlKG9iaiwnb3RpdGxlJyxvYmoudGl0bGUpOw0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCd0aXRsZScsJyIuJG1vdFsnRVJSX0ZJRUxEX1JFUVVJUkVEJ10uIicpOw0KCQkJCQlzZXRDbGFzc05hbWUob2JqLCdmaWVsZF9yZXF1aXJlZCcpOw0KCQkJCQlvYmouZm9jdXMoKTsNCgkJCQkJIjsNCgkJCX0NCgkJCWVsc2UgaWYoaXNzZXQoJG1pbikgJiYgc3RybGVuKCR2YWwpPCRtaW4pew0KCQkJCWVjaG8gIg0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfRklFTERfVE9PX1NIT1JUJ10uIicpOw0KCQkJCQlzZXRDbGFzc05hbWUob2JqLCdmaWVsZF9yZXF1aXJlZCcpOw0KCQkJCQlvYmouZm9jdXMoKTsNCgkJCQkJIjsNCgkJCX0NCgkJCWVsc2UgaWYoaXNzZXQoJG1heCkgJiYgc3RybGVuKCR2YWwpPiRtYXgpew0KCQkJCWVjaG8gIg0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfRklFTERfVE9PX0xPTkcnXS4iJyk7DQoJCQkJCXNldENsYXNzTmFtZShvYmosJ2ZpZWxkX3JlcXVpcmVkJyk7DQoJCQkJCW9iai5mb2N1cygpOw0KCQkJCQkiOw0KCQkJfQ0KCQkJCQkJCQ0KCQkJZWNobyAifTsiOw0KCQkJCQkNCgkJCWJyZWFrOwkNCgkJDQoJCWNhc2UgJ3VzZXInOg0KCQkJDQoJCQkkdmFsCT0kX1BPU1RbJ3ZhbCddOw0KCQkJJG9iaklkCT0kX1BPU1RbJ29iaklkJ107DQoJCQkNCgkJCWVjaG8gIg0KCQkJCWlmKGlzT2JqKG9iaj1nZXRPYmooJyIuJG9iaklkLiInKSkpew0KCQkJCQkNCgkJCQkJcmVzZXRGaWVsZFByZXNlbnRhdGlvbihvYmopOw0KCQkJCSI7DQoNCgkJCQkNCgkJCWlmKCR2YWw9PScnKXsNCgkJCQ0KCQkJCWVjaG8gIg0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfRklFTERfUkVRVUlSRUQnXS4iJyk7DQoJCQkJCXNldENsYXNzTmFtZShvYmosJ2ZpZWxkX3JlcXVpcmVkJyk7DQoJCQkJCW9iai5mb2N1cygpOw0KCQkJCQkiOw0KCQkJfQ0KCQkJZWxzZXsNCgkJCQkkc3FsPSdzZWxlY3QgY291bnQoKikgZnJvbSB0X3VzZXJzIHdoZXJlIHVzZXJfbG9naW49IicuJHZhbC4nIic7DQoJCQkJaWYoJGRiLT5Db3VudCgkc3FsKT4wKQ0KCQkJCQllY2hvICINCgkJCQkJCXNldEF0dHJpYnV0ZShvYmosJ290aXRsZScsb2JqLnRpdGxlKTsNCgkJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfVVNFUl9FWElTVFMnXS4iJyk7DQoJCQkJCQlhZGRDbGFzc05hbWUob2JqLCdmaWVsZF9pbl9lcnJvcicpOw0KCQkJCQkJb2JqLmZvY3VzKCk7DQoJCQkJCSI7DQoJCQkJZWxzZXsNCgkJCQkJZWNobyAiDQoJCQkJCQlibGlua1N0eWxlKG9iaiwnZmllbGRfb2snKTsNCgkJCQkJIjsNCgkJCQl9DQoJCQl9DQoJCQllY2hvICINCgkJCX0gLy8gZmluIGlmKGlzT2JqKG9iaikpDQoJCQllbHNlDQoJCQkJYWxlcnQoJ3BhcyB1biBvYmonKyIuJG9iaklkLiIpOw0KCQkJIjsNCgkJDQoJCWJyZWFrOw0KCQkNCgkJY2FzZSAnZ2VuZXJhdGVQYXNzd29yZCc6DQoNCgkJCSRvYmpJZAk9JF9QT1NUWydvYmpJZCddOw0KDQoJCQllY2hvICINCgkJCQlpZihpc09iaihvYmo9Z2V0T2JqKCciLiRvYmpJZC4iJykpKXsNCgkJCQkNCgkJCQlhbGVydCgnIi4kbW90WydFUlJfUEFTU1dPUkRfUkVRVUlSRUQnXS4iJyk7DQoJCQkJDQoJCQkJb2JqLnZhbHVlPSciLnN1YnN0cih1bmlxaWQocmFuZCgpKSwwLHJhbmQoNywxMCkpLiInOw0KCQkJCQ0KCQkJCSI7DQoJCQkJDQoJCQkNCgkJCQkNCgkJCWVjaG8gIg0KCQkJfSAvLyBmaW4gaWYoaXNPYmoob2JqKSkNCgkJCWVsc2UNCgkJCQlhbGVydCgncGFzIHVuIG9iaicrIi4kb2JqSWQuIik7DQoJCQkiOw0KCQkNCgkJY2FzZSAnc2hvdyc6DQoJCQkkd2hhdD0kX1JFUVVFU1RbJ3doYXQnXTsNCg0KCQkJc3dpdGNoKCR3aGF0KXsNCgkJCSAgICBjYXNlICduZXdzJzoNCgkJCSAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCJuZXdzX2lkIiwkX1BPU1RbJ25ld3NfaWQnXSk7DQoJCQkgICAgICAgIGJyZWFrOw0KCQkJDQoJCQkJY2FzZSAnam91dGV1clByb3AnOg0KCQkJCQkkaWQ9JF9QT1NUWydqb3V0ZXVyX2lkJ107DQoJCQkJCWlmKCFpc19sb2dndWVkKCkgfHwgJGlkIT0kX1NFU1NJT05bJ3VzZXJfaWQnXSl7DQoJCQkJCQkkbWVtYnJlX2lkPSRpZDsNCgkJCQkJCSRfU0VTU0lPTlsnbWVtYnJlX2lkJ109JGlkOw0KCQkJCQkJJF9QT1NUWydtZW1icmVfaWQnXT0kaWQ7DQoJCQkJCQkkc21hcnR5LT5hc3NpZ24oJ2RldGFpbF9qb3V0ZXVyX3dlYicsJGRiLT5zZWxlY3RGaXJzdCgnU2VsZWN0ICogZnJvbSB0X21lbWJyZXMgd2hlcmUgbWVtYnJlX2lkPScuJGlkKSk7DQoJCQkJCQlzZXNzaW9uX3JlZ2lzdGVyKCRtZW1icmVfaWQpOw0KCSAgICAgICAgICAgICAgICAgICAgJHdoYXQ9J21lbWJyZSc7DQoJCQkJCQkkc21hcnR5LT5hc3NpZ24oImRldGFpbCIsdHJ1ZSk7DQoJCQkJCQkkYWZmPSRzbWFydHktPmZldGNoKCcuL19fYWRtaW5fXy9zaXRlX19fYWRtaW5fX3ByZXNlbnRhdGlvbi4nLlRQTF9FWFQpOw0KCQkJCQkJZGllKCRhZmYpOw0KCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQkJZWxzZXsNCgkJCQkJCSR3aGF0PSdtZW1icmUnOw0KCQkJCQkJJF9QT1NUWydtZW1icmVfaWQnXT0kX1NFU1NJT05bJ3VzZXJfaWQnXTsNCgkJCQkJfQ0KICAgICAgICAgICAgICAgICAgICANCgkJCQljYXNlICdtZW1icmUnOg0KCQkJCQkkaWQ9JF9QT1NUWydtZW1icmVfaWQnXTsNCgkJCQkJJG1lbWJyZV9pZD0kaWQ7DQoJCQkJCSRfU0VTU0lPTlsnbWVtYnJlX2lkJ109JGlkOw0KCQkJCQkNCgkJCQkJJHNtYXJ0eS0+YXNzaWduKCR3aGF0LCRkYi0+c2VsZWN0Rmlyc3QoJ1NlbGVjdCAqIGZyb20gdF9tZW1icmVzIHdoZXJlIG1lbWJyZV9pZD0nLiRpZCkpOw0KCQkJCQkNCgkJCQkJc2Vzc2lvbl9yZWdpc3RlcigkbWVtYnJlX2lkKTsNCgkJCQkJYnJlYWs7DQoNCgkJCQljYXNlICdlcXVpcGUnOg0KCQkJCQkkaWQ9JF9QT1NUWydlcXVpcGVfaWQnXTsJCQkJCQ0KCQkJCQkkbWVtYnJlX2lkPSRpZDsNCgkJCQkJJF9TRVNTSU9OWydlcXVpcGVfaWQnXT0kaWQ7DQoJCQkJCWJyZWFrOyANCg0KCQkJCWNhc2UgJ2NvbXBvc2l0aW9uJzoNCgkJCQkJJGlkPSRfUE9TVFsnbWF0Y2hfaWQnXTsJCQkJCQ0KCQkJCQkkc21hcnR5LT5hc3NpZ24oJ2RldGFpbF9jb21wb19hZG1pbicsJGlkKTsNCgkJCQkJJHNtYXJ0eS0+ZGlzcGxheSgnLi9fX2FkbWluX18vc2l0ZV9fX2FkbWluX19wcmVzZW50YXRpb24uJy5UUExfRVhUKTsNCgkJCQkJYnJlYWs7DQoJCQkJCSANCgkJCQljYXNlICdldG9pbGUnOg0KCQkJCQkkaWQ9JF9QT1NUWydtYXRjaF9pZCddOwkJCQkJDQoJCQkJCSRzbWFydHktPmFzc2lnbignZGV0YWlsX2V0b2lsZV9hZG1pbicsJGlkKTsNCgkJCQkJJHNtYXJ0eS0+ZGlzcGxheSgnLi9fX2FkbWluX18vc2l0ZV9fX2FkbWluX19wcmVzZW50YXRpb24uJy5UUExfRVhUKTsNCgkJCQkJYnJlYWs7DQoNCgkJCQljYXNlICdzdGFmZic6DQoJCQkJCSRpZD0kX1BPU1RbJ21hdGNoX2lkJ107CQkJCQkNCgkJCQkJJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxfc3RhZmZfYWRtaW4nLCRpZCk7DQoJCQkJCSRzbWFydHktPmRpc3BsYXkoJy4vX19hZG1pbl9fL3NpdGVfX19hZG1pbl9fcHJlc2VudGF0aW9uLicuVFBMX0VYVCk7DQoJCQkJCWJyZWFrOw0KCQkJIA0KCQkJCWNhc2UgJ21hdGNoRGV0YWlsJzoNCgkJCQkJJGlkPSRfUE9TVFsnbWF0Y2hfaWQnXTsJCQ0KCQkJCQkkc3FsPSdzZWxlY3QgKiBmcm9tIHRfZXF1aXBlcyBpbm5lciBqb2luIHRfbWF0Y2hzIG9uIGVxdWlwZV9pZD1tYXRjaF9lcXVpcGVfQSBvciBlcXVpcGVfaWQ9bWF0Y2hfZXF1aXBlX0Igd2hlcmUgbWF0Y2hfaWQ9Jy4kaWQ7DQoJCQkJCSRzbWFydHktPmFzc2lnbignZGV0YWlsX21hdGNoJywkZGItPlNlbGVjdEFsbEJ5KCRzcWwsJ2VxdWlwZV9pZCcpKTsNCgkJCQkJJHNtYXJ0eS0+ZGlzcGxheSgnLi9fX2FkbWluX18vc2l0ZV9fX2FkbWluX19wcmVzZW50YXRpb24uJy5UUExfRVhUKTsNCgkJCQkJYnJlYWs7DQoJCQkJCQ0KCQkJCWRlZmF1bHQ6DQoJCQkJCWVjaG8gIk1vdCBjbMOpICIuJF9SRVFVRVNUWyd3aGF0J10uIiBub24gcsOpZsOpcmVuY8OpIjsNCgkJCX0NCg0KCQkJJHNtYXJ0eS0+YXNzaWduKCJkZXRhaWwiLHRydWUpOw0KCQkJJHNtYXJ0eS0+ZGlzcGxheSgnLi9fX2FkbWluX18vc2l0ZV9fX2FkbWluX19wcmVzZW50YXRpb24uJy5UUExfRVhUKTsNCgkJCSRzbWFydHktPmRpc3BsYXkoIi4vX19hZG1pbl9fL3NpdGVfX19hZG1pbl9fJHdoYXQuIi5UUExfRVhUKTsNCgkJDQoJCQlicmVhazsNCg0KCQljYXNlICdwb3N0JzoNCgkJDQoJCQlzd2l0Y2goJF9SRVFVRVNUWyd3aGF0J10pew0KDQoJCQkgICAgY2FzZSAnc3ViLXVwZGF0ZSc6DQoJCQkgICAgICAgIA0KCQkJICAgICAgICBzd2l0Y2goJF9QT1NUWyd3aWNoJ10pew0KCQkJCQkJY2FzZSAncGFyYW1fZHluJzoNCg0KCQkJCQkJCWZvcmVhY2goJF9QT1NUWydjdXJyJ10gYXMgJGlkPT4kdmFsKXsNCgkJCQkJCQkJaWYoaXNzZXQoJHZhbFsnc2VsZWN0ZWQnXSkpew0KCQkJCQkJCQkJJHNxbC49J0RFTEVURSBmcm9tIHRfZHluX2ltYWdlcyB3aGVyZSBpbWFnZV9pZD0nLiRpZDsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCg0KLyoJCQkJCQkJJG5ldz0kZGItPmV4dHJhY3RGaWVsZHMoJF9QT1NULCduZXcnKTsNCg0KCQkJCQkJCWZvcmVhY2goJG5ldyBhcyAka2V5PT4kdmFsKXsNCgkJCQkJCQkJaWYoJHZhbFsncGFyYW1fbmFtZSddIT0nJyAmJiAkdmFsWydwYXJhbV92YWx1ZSddIT0nJykNCgkJCQkJCQkJCSRzcWwuPSdJTlNFUlQgSU5UTyB0X3BhcmFtcyAocGFyYW1fbmFtZSxwYXJhbV92YWx1ZSxwYXJhbV9saWIscGFyYW1fdHlwKSB2YWx1ZXMoIicuJHZhbFsncGFyYW1fbmFtZSddLiciLCInLiR2YWxbJ3BhcmFtX3ZhbHVlJ10uJyIsIicuJHZhbFsncGFyYW1fbGliJ10uJyIsIicuJHZhbFsncGFyYW1fdHlwJ10uJyIpOyc7DQoJCQkJCQkJfQ0KCSovCQkJDQoJCQkJCQkJDQoJCQkJCQkvLwkkZGItPlNlbGVjdCgkc3FsKTsNCg0KCQkJCQkJICAgIGJyZWFrOw0KCQkJCQkJY2FzZSAncGFyYW0nOg0KCQkJCQkJCSRzcWw9J1RSVU5DQVRFIFRBQkxFIHRfcGFyYW1zOyc7DQoJCQkJCQkJaWYoaXNfYXJyYXkoJF9QT1NUWydjdXJyJ10pKQ0KCQkJCQkJCQlmb3JlYWNoKCRfUE9TVFsnY3VyciddIGFzICR2YWwpew0KCQkJCQkJCQkJaWYoIWlzc2V0KCR2YWxbJ3NlbGVjdGVkJ10pKQ0KCQkJCQkJCQkJCSRzcWwuPSdJTlNFUlQgSU5UTyB0X3BhcmFtcyAocGFyYW1fbmFtZSxwYXJhbV92YWx1ZSxwYXJhbV9saWIscGFyYW1fdHlwKSB2YWx1ZXMoIicuJHZhbFsncGFyYW1fbmFtZSddLiciLCInLiR2YWxbJ3BhcmFtX3ZhbHVlJ10uJyIsIicuJHZhbFsncGFyYW1fbGliJ10uJyIsIicuJHZhbFsncGFyYW1fdHlwJ10uJyIpOyc7DQoJCQkJCQkJCX0NCg0KCQkJCQkJCSRuZXc9JGRiLT5leHRyYWN0RmllbGRzKCRfUE9TVCwnbmV3Jyk7DQoNCgkJCQkJCQlmb3JlYWNoKCRuZXcgYXMgJGtleT0+JHZhbCl7DQoJCQkJCQkJCWlmKCR2YWxbJ3BhcmFtX25hbWUnXSE9JycgJiYgJHZhbFsncGFyYW1fdmFsdWUnXSE9JycpDQoJCQkJCQkJCQkkc3FsLj0nSU5TRVJUIElOVE8gdF9wYXJhbXMgKHBhcmFtX25hbWUscGFyYW1fdmFsdWUscGFyYW1fbGliLHBhcmFtX3R5cCkgdmFsdWVzKCInLiR2YWxbJ3BhcmFtX25hbWUnXS4nIiwiJy4kdmFsWydwYXJhbV92YWx1ZSddLiciLCInLiR2YWxbJ3BhcmFtX2xpYiddLiciLCInLiR2YWxbJ3BhcmFtX3R5cCddLiciKTsnOw0KCQkJCQkJCX0NCg0KCQkJCQkJCSRkYi0+U2VsZWN0KCRzcWwpOw0KCQkJCQkJCWJyZWFrOw0KDQoJCQkgICAgICAgICAgICBjYXNlICdlcXVpcGVfbm91dmVhdSc6DQoJCQkgICAgICAgICAgICANCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydhZGQnXVsnbWVtYnJlX25vbSddIGFzICRrZXk9PiRub20pew0KCQkJICAgICAgICAgICAgICAgICAgICAkaXRlbT0kX1BPU1RbJ2l0ZW0nXVsnYWRkJ107DQoJCQkgICAgICAgICAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgICAgICAkcHJlbm9tID0gJGl0ZW1bJ21lbWJyZV9wcmVub20nXVska2V5XTsNCgkJCSAgICAgICAgICAgICAgICAgICAgJG1haWwgPSAkaXRlbVsnbWVtYnJlX21haWwnXVska2V5XTsNCgkJCSAgICAgICAgICAgICAgICAgICAgJHB3ZCA9ICRpdGVtWydtZW1icmVfcGFzc3dvcmQnXVska2V5XTsNCgkJCSAgICAgICAgICAgICAgICAgICAgDQoJCQkgICAgICAgICAgICAgICAgICAgICRzcWw9J0lOU0VSVCBJTlRPIHRfbWVtYnJlcyAobWVtYnJlX25vbSxtZW1icmVfcHJlbm9tLG1lbWJyZV9lbWFpbCxtZW1icmVfbWQ1LG1lbWJyZV9sb2dpbiknOw0KCQkJICAgICAgICAgICAgICAgICAgICAkc3FsLj0nIHZhbHVlcygiJy4kbm9tLiciLCInLiRwcmVub20uJyIsIicuJG1haWwuJyInOw0KCQkJCQkJCQkkc3FsLj0nLG1kNSgiJy5HUkFJTl9ERV9TQUJMRS4kcHdkLkdSQUlOX0RFX1NBQkxFLiciKSwiJy4oJG5vbS4nXycuJHByZW5vbSkuJyIpOyc7DQoNCgkJCQkJCQkJJGRiLT5JbnNlcnQoJHNxbCk7DQoJCQkJCQkJCQ0KCQkJCQkJCQkkaWQgPSAkZGItPmxhc3RJZDsNCgkJCQkJCQkJDQoJCQkJCQkJCWlmKCRpZCl7DQoJCQkJCQkJCSAgICAkc2Fpc29uX2lkPSRzYWlzb25fY291cmFudGVbJ3NhaXNvbl9pZCddOw0KCQkJCQkJCQkgICAgJGVxdWlwZV9pZDsNCgkJCQkJCQkJICAgICRzcWw9J0lOU0VSVCBJTlRPIHRfbGllbnNfamVzIChzYWlzb25faWQsZXF1aXBlX2lkLG1lbWJyZV9pZCkgJzsNCgkJCQkJCQkJICAgICRzcWwuPSdWQUxVRVMoIicuJHNhaXNvbl9pZC4nIiwiJy4kX1NFU1NJT05bJ2VxdWlwZV9pZCddLiciLCInLiRpZC4nIik7JzsNCgkJCQkJCQkJICAgIA0KCQkJCQkJCQkgICAgJGRiLT5JbnNlcnQoJHNxbCk7DQoNCgkJCQkJCQkJCWlmKCFlbXB0eSgkbWFpbCkpew0KCQkJCQkJCQkJICAgIGVudm95ZXJNYWlsKCRtYWlsLCRkYi0+U2VsZWN0Rmlyc3QoInNlbGVjdCAqIGZyb20gdF9tZW1icmVzIHdoZXJlIG1lbWJyZV9pZD0kaWQiKSk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoNCgkJCSAgICAgICAgICAgICAgICBicmVhazsNCgkJCSAgICAgICAgDQoJCQkgICAgICAgICAgICBjYXNlICdqb3V0ZXVyX2xvZ2luJzoNCgkJCSAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgIGlmKGVtcHR5KCRfUE9TVFsncF9sb2dpbiddKSB8fCBlbXB0eSgkX1BPU1RbJ3BfcHdkJ10pKXsNCgkJCSAgICAgICAgICAgICAgICAgICAgJHdhcm5Mdmw9MzsNCgkJCSAgICAgICAgICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCd3YXJuTHZsJywkd2Fybkx2bCk7DQoJCQkgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KCQkJCQkJCX0NCg0KCQkJICAgICAgICAgICAgICAgICRzcWw9J1NlbGVjdCBjb3VudCgqKSBhcyBDTlQsbWVtYnJlX2lkIGZyb20gdF9tZW1icmVzIHdoZXJlIG1lbWJyZV9sb2dpbj0iJy4kX1BPU1RbJ3BfbG9naW4nXS4nIiBhbmQgbWVtYnJlX21kNT1tZDUoIicuR1JBSU5fREVfU0FCTEUuJF9QT1NUWydwX3B3ZCddLkdSQUlOX0RFX1NBQkxFLiciKSBncm91cCBieSBtZW1icmVfaWQnOw0KCQkJICAgICAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgICRyb3c9JGRiLT5TZWxlY3RGaXJzdCgkc3FsKTsNCgkJCSAgICAgICAgICAgICAgICAkbG9nX3Jlc3VsdD0kcm93WydDTlQnXTsNCgkJCSAgICAgICAgICAgICAgICANCgkJCSAgICAgICAgICAgICAgICAkd2Fybkx2bD0xOw0KCQkJICAgICAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgIGlmKCRsb2dfcmVzdWx0PT0wKXsNCgkJCSAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydtZW1icmVfbG9naW5fdHJ5J10rKzsNCgkJCSAgICAgICAgICAgICAgICAgICAgJHdhcm5Mdmw9MjsNCgkJCSAgICAgICAgICAgICAgICAgICAgDQoJCQkgICAgICAgICAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnbWVtYnJlX2Nvbm5lY3RlZCddKTsNCgkJCQkJCQl9DQoJCQkJCQkJZWxzZXsNCgkJCQkJCQkgICAgJF9TRVNTSU9OWydtZW1icmVfY29ubmVjdGVkJ109JHJvd1snbWVtYnJlX2lkJ107DQoJCQkJCQkJICAgICRzbWFydHktPmFzc2lnbignbWVtYnJlX2Nvbm5lY3RlZCcsJHJvd1snbWVtYnJlX2lkJ10pOw0KCQkJCQkJCX0NCg0KCQkJCQkJCWlmKCRfU0VTU0lPTlsnbWVtYnJlX2xvZ2luX3RyeSddPj0zKQ0KCQkJCQkJCSAgICAkd2Fybkx2bD0xMDsNCg0KCQkJCQkJCSRzbWFydHktPmFzc2lnbignd2Fybkx2bCcsJHdhcm5MdmwpOw0KCQkJICAgICAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgIGJyZWFrOw0KCQkJICAgICAgICAgICAgY2FzZSAncGxheWVyX2Fzc28nOg0KCQkJICAgCQkJCSRzcWw9Jyc7DQoJCQkgICAJCQkJaWYoaXNfYXJyYXkoJF9QT1NUWydmb25jdGlvbiddWydleGlzdCddKSkNCgkJCQkgICAgICAgICAgICAgICAgZm9yZWFjaCgkX1BPU1RbJ2ZvbmN0aW9uJ11bJ2V4aXN0J10gYXMgJGZvbmN0aW9uX2lkPT4kZm9uY3Rpb24pew0KCQkJCQkJCQkJaWYoaXNzZXQoJGZvbmN0aW9uWydjaGVja2VkJ10pKXsNCgkJCQkJCQkJCSAgICAkc3FsLj0nREVMRVRFIEZST00gdF9saWVuc19tZnMgd2hlcmUgbWZzX2xpZW5faWQ9Jy4kZm9uY3Rpb25faWQuJyBMSU1JVCAxOyc7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0NCg0KCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydmb25jdGlvbiddWydhZGQnXVsnZm9uY3Rpb25faWQnXSBhcyAkaT0+JGZvbmN0aW9uKXsNCgkJICAgICAgICAgICAgICAgICAgICAJJHNhaXNvbl9pZD0kX1BPU1RbJ2ZvbmN0aW9uJ11bJ2FkZCddWydzYWlzb25faWQnXVskaV07DQoNCgkJCSAgICAgICAgICAgICAgICAgICAgaWYoaXNzZXQoJGZvbmN0aW9uKSAmJiAkZm9uY3Rpb24hPTAgJiYgJHNhaXNvbl9pZCE9MCl7DQoJCQkgICAgICAgICAgICAgICAgICAgIAkkdGFiPWV4cGxvZGUoJy0nLCRmb25jdGlvbik7DQoJCQkJCQkJCQkkc3FsLj0nSU5TRVJUIElOVE8gdF9saWVuc19tZnMgKGZvbmN0aW9uX2lkLGZvbmN0aW9uX3R5cGVfaWQsc2Fpc29uX2lkLG1lbWJyZV9pZCkgdmFsdWVzKCcuJHRhYlswXS4nLCcuJHRhYlsxXS4nLCcuJHNhaXNvbl9pZC4nLCcuJF9TRVNTSU9OWydtZW1icmVfaWQnXS4nKTsnOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCSRkYi0+VXBkYXRlKCRzcWwpOw0KDQoJCQkgICAgICAgICAgICAJYnJlYWs7DQoNCgkJCSAgICAgICAgICAgIGNhc2UgJ3BsYXllcl9lcXVpcGVfbGlzdCc6DQoJCQkgICAJCQkJJHNxbD0nJzsNCgkJCSAgIAkJCQlpZihpc19hcnJheSgkX1BPU1RbJ3NhaXNvbiddWydleGlzdCddKSkNCgkJCQkgICAgICAgICAgICAgICAgZm9yZWFjaCgkX1BPU1RbJ3NhaXNvbiddWydleGlzdCddIGFzICRzYWlzb25faWQ9PiRzYWlzb24pew0KCQkJCQkJCQkJaWYoJHNhaXNvblsnY2hlY2tlZCddPT0xKXsNCgkJCQkJCQkJCSAgICAkc3FsLj0nREVMRVRFIEZST00gdF9saWVuc19qZXMgd2hlcmUgamVzX2xpZW5faWQ9Jy4kc2Fpc29uWydqZXMnXS4nIExJTUlUIDE7JzsNCgkJCQkJCQkJCX0NCg0KCQkJCQkJCQkJJHNxbC49J1VQREFURSB0X2xpZW5zX2plcyBTRVQgZXF1aXBlX2lkPScuJHNhaXNvblsnZXF1aXBlX2lkJ10uJyB3aGVyZSBqZXNfbGllbl9pZD0nLiRzYWlzb25bJ2plcyddLicgTElNSVQgMTsnOw0KCQkJCQkJCQl9DQoNCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnc2Fpc29uJ11bJ2FkZCddWydzYWlzb25faWQnXSBhcyAkc2Fpc29uKXsNCgkJCSAgICAgICAgICAgICAgICAgICAgaWYoaXNzZXQoJHNhaXNvbikgJiYgJHNhaXNvbiE9MCl7DQoJCQkgICAgICAgICAgICAgICAgICAgIAkkdGFiPWV4cGxvZGUoJy0nLCRzYWlzb24pOw0KCQkJCQkJCQkJJHNxbC49J0lOU0VSVCBJTlRPIHRfbGllbnNfamVzIChzYWlzb25faWQsZXF1aXBlX2lkLG1lbWJyZV9pZCkgdmFsdWVzKCcuJHRhYlswXS4nLCcuJHRhYlsxXS4nLCcuJF9TRVNTSU9OWydtZW1icmVfaWQnXS4nKTsnOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KDQoJCQkJCQkJJGRiLT5VcGRhdGUoJHNxbCk7DQoNCgkJCSAgICAgICAgICAgIAlicmVhazsNCg0KCQkJICAgICAgICAgICAgY2FzZSAncGxheWVyX2NvYWNoX2xpc3QnOg0KCQkJICAgCQkJCSRzcWw9Jyc7DQoJCQkgICAJCQkJaWYoaXNfYXJyYXkoJF9QT1NUWydzYWlzb24nXVsnZXhpc3QnXSkpDQoJCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydzYWlzb24nXVsnZXhpc3QnXSBhcyAkc2Fpc29uX2lkPT4kc2Fpc29uKXsNCgkJCQkJCQkJCWlmKCRzYWlzb25bJ2NoZWNrZWQnXT09MSl7DQoJCQkJCQkJCQkgICAgJHNxbC49J0RFTEVURSBGUk9NIHRfbGllbnNfZWMgd2hlcmUgZWNfbGllbl9pZD0nLiRzYWlzb25bJ2VjJ10uJyBMSU1JVCAxOyc7DQoJCQkJCQkJCQl9DQoNCgkJCQkJCQkJCSRzcWwuPSdVUERBVEUgdF9saWVuc19lYyBTRVQgZXF1aXBlX2lkPScuJHNhaXNvblsnZXF1aXBlX2lkJ10uJyB3aGVyZSBlY19saWVuX2lkPScuJHNhaXNvblsnamVzJ10uJyBMSU1JVCAxOyc7DQoJCQkJCQkJCX0NCg0KCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydzYWlzb24nXVsnYWRkJ11bJ3NhaXNvbl9pZCddIGFzICRzYWlzb24pew0KCQkJICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkc2Fpc29uKSAmJiAkc2Fpc29uIT0wKXsNCgkJCSAgICAgICAgICAgICAgICAgICAgCSR0YWI9ZXhwbG9kZSgnLScsJHNhaXNvbik7DQoJCQkJCQkJCQkkc3FsLj0nSU5TRVJUIElOVE8gdF9saWVuc19lYyAoc2Fpc29uX2lkLGVxdWlwZV9pZCxtZW1icmVfaWQpIHZhbHVlcygnLiR0YWJbMF0uJywnLiR0YWJbMV0uJywnLiRfU0VTU0lPTlsnbWVtYnJlX2lkJ10uJyk7JzsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCg0KCQkJCQkJCQ0KCQkJCQkJCSRkYi0+VXBkYXRlKCRzcWwpOw0KDQoJCQkgICAgICAgICAgICAJYnJlYWs7DQoNCgkJCSAgICAgICAgICAgIGNhc2UgJ3BsYXllcl9pbmZvJzoNCgkJCQkJCQkNCgkJCQkJCQlpZighZW1wdHkoJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX3B3ZCddKSl7DQoJCQkJCQkJLy9PbiB2YWxpZGUgbGEgZmljaGUgZHUgbWVtYnJlIG9uIGRvaXQgZW52b3llciB1biBtYWlsDQoJCQkJCQkJCSRfUE9TVFsnbWVtYnJlJ11bJ21lbWJyZV9tZDUnXT1tZDUoR1JBSU5fREVfU0FCTEUuJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX3B3ZCddLkdSQUlOX0RFX1NBQkxFKTsNCgkJCQkJCQkJJHNlbmRfbWFpbD10cnVlOw0KCQkJCQkJCX0NCgkJCQkJCQlpZigkX1BPU1RbJ21lbWJyZSddWydtZW1icmVfcHJvZl9ob21tZSddPT0wKQ0KCQkJCQkJCQkkX1BPU1RbJ21lbWJyZSddWydtZW1icmVfcHJvZl9ob21tZSddPSRfUE9TVFsnbWVtYnJlJ11bJ21lbWJyZV9wcm9mX2hvbW1lX3R4dCddOw0KDQoJCQkJCQkJaWYoJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX3Byb2ZfZmVtbWUnXT09MCkNCgkJCQkJCQkJJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX3Byb2ZfZmVtbWUnXT0kX1BPU1RbJ21lbWJyZSddWydtZW1icmVfcHJvZl9mZW1tZV90eHQnXTsNCg0KCQkJCQkJCSRfUE9TVFsnbWVtYnJlJ109YWRkc2xhc2hlc19zcWwoJF9QT1NUWydtZW1icmUnXSk7DQoNCgkJCQkJCQkkc3FsPSRkYi0+VXBkYXRlU1FMKCd0X21lbWJyZXMnLCRfUE9TVFsnbWVtYnJlJ10sJ21lbWJyZV9pZD0nLiRfUE9TVFsnbWVtYnJlJ11bJ21lbWJyZV9pZCddKTsNCgkJCQkJCQkkZGItPlVwZGF0ZSgkc3FsKTsNCg0KCQkJCQkJCWlmKCRkYi0+Q291bnQ9PS0xKXsNCgkJCQkJCQkJYWxlcnRBamF4KCdFcnJldXIgbG9ycyBkZSBsYSBtaXNlIMOgIGpvdXIsIHJlw6lzc2F5ZXogcGx1cyB0YXJkJyk7DQoJCQkJCQkJfQ0KCQkJCQkJCWVsc2V7DQoJCSAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRzZW5kX21haWw9PXRydWUgJiYgaXNzZXQoJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX2VtYWlsJ10pKXsNCgkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudm95ZXJNYWlsKCRfUE9TVFsnbWVtYnJlJ11bJ21lbWJyZV9lbWFpbCddLCRfUE9TVFsnbWVtYnJlJ10pOw0KCQkgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCgkJDQoJCQ0KCQkJCQkJCQlpZihpc3NldCgkX1BPU1RbJ3NlbGYnXSkpDQoJCQkJCQkJCWVjaG8gIndpbmRvdy5sb2NhdGlvbi5ocmVmPSciLlNJVEVfVVJMLiInOyI7DQoJCQkJCQkJfQ0KDQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICdlcXVpcGVfaW5mbyc6DQoJCQkJCQkJJGVxdWlwZVNxbD1hZGRzbGFzaGVzX3NxbCgkX1BPU1RbJ2VxdWlwZSddKTsNCg0KCQkJCQkJCSRzcWw9JGRiLT5VcGRhdGVTUUwoJ3RfZXF1aXBlcycsJGVxdWlwZVNxbCwnZXF1aXBlX2lkPScuJGVxdWlwZVNxbFsnZXF1aXBlX2lkJ10pOw0KDQoJCQkJCQkJJGRiLT5VcGRhdGUoJHNxbCk7DQoNCgkJCQkJCWJyZWFrOw0KDQoJCQkJCQljYXNlICdlcXVpcGVfc2Fpc29uX2xpc3QnOg0KCQkJCQkJICAgICRFX0lEPSRfU0VTU0lPTlsnZXF1aXBlX2lkJ107DQoJCQkgICAJCQkJJHNxbD0nJzsNCgkJCSAgIAkJCQlpZihpc19hcnJheSgkX1BPU1RbJ2l0ZW0nXVsnZXhpc3QnXSkpDQoJCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydpdGVtJ11bJ2V4aXN0J10gYXMgJHNhaXNvbl9pZD0+JHNhaXNvbil7DQoJCQkJCQkJCQlpZigkc2Fpc29uWydjaGVja2VkJ109PTEpew0KCQkJCQkJCQkJICAgICRzcWwuPSdERUxFVEUgRlJPTSB0X2xpZW5zX2VzIHdoZXJlIGVzX2xpZW5faWQ9Jy4kc2Fpc29uWydlcyddLicgTElNSVQgMTsnOw0KCQkJCQkJCQkJICAgICRzcWwuPSdERUxFVEUgRlJPTSB0X2xpZW5zX2plcyB3aGVyZSBzYWlzb25faWQ9Jy4kc2Fpc29uX2lkLicgYW5kIGVxdWlwZV9pZD0nLiRFX0lELic7JzsNCgkJCQkJCQkJCX0NCg0KCQkJCQkJCQkJJHNxbC49J1VQREFURSB0X2xpZW5zX2VzIFNFVCBzYWlzb25fdHlwZT0iJy4kc2Fpc29uWydzYWlzb25fdHlwZSddLiciIHdoZXJlIGVzX2xpZW5faWQ9Jy4kc2Fpc29uWydlcyddLicgTElNSVQgMTsnOw0KCQkJCQkJCQl9DQoNCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydhZGQnXVsnc2Fpc29uX2lkJ10gYXMgJGtleT0+JHNfaWQpew0KCQkJICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkc19pZCkgJiYgJHNfaWQhPTApew0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU9JF9QT1NUWydpdGVtJ11bJ2FkZCddWydzYWlzb25fdHlwZSddWyRrZXldOw0KCQkJCQkJCQkJJHNxbC49J0lOU0VSVCBJTlRPIHRfbGllbnNfZXMgKHNhaXNvbl9pZCxlcXVpcGVfaWQsc2Fpc29uX3R5cGUpIHZhbHVlcygnLiRzX2lkLicsJy4kRV9JRC4nLCInLiR0eXBlLiciKTsnOw0KCQkJCQkJCQkJJHNxbC49J0lOU0VSVCBJTlRPIHRfbGllbnNfamVzIChzYWlzb25faWQsZXF1aXBlX2lkLG1lbWJyZV9pZCkgU2VsZWN0ICcuJHNfaWQuJywnLiRFX0lELicsIG1lbWJyZV9pZCBmcm9tIHRfbGllbnNfamVzIHdoZXJlIHNhaXNvbl9pZD0nLigkc19pZC0xKS4nIGFuZCBlcXVpcGVfaWQ9Jy4kRV9JRC4nOyc7DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoJCQkJCQkJDQoJCQkJCQkJJGRiLT5VcGRhdGUoJHNxbCk7DQoNCgkJCSAgICAgICAgICAgIAlicmVhazsNCg0KCQkJCQkJY2FzZSAnZXF1aXBlX2NvYWNoX2xpc3QnOg0KCQkJICAgCQkJCSRzcWw9Jyc7DQoJCQkgICAJCQkJaWYoaXNfYXJyYXkoJF9QT1NUWydpdGVtJ11bJ2V4aXN0J10pKQ0KCQkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydleGlzdCddIGFzICRsX2lkPT4kc2Fpc29uKXsNCgkJCQkJCQkJCWlmKCRzYWlzb25bJ2NoZWNrZWQnXT09MSl7DQoJCQkJCQkJCQkgICAgJHNxbC49J0RFTEVURSBGUk9NIHRfbGllbnNfZWMgd2hlcmUgZWNfbGllbl9pZD0nLiRsX2lkLicgTElNSVQgMTsnOw0KCQkJCQkJCQkJfQ0KDQoJCQkJCQkJCQkkc3FsLj0nVVBEQVRFIHRfbGllbnNfZWMgU0VUIG1lbWJyZV9pZD0nLiRzYWlzb25bJ21lbWJyZV9pZCddLicgd2hlcmUgZWNfbGllbl9pZD0nLiRsX2lkLicgTElNSVQgMTsnOw0KCQkJCQkJCQl9DQoNCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydhZGQnXVsnc2Fpc29uX2lkJ10gYXMgJGtleT0+JHNfaWQpew0KCQkJICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkc19pZCkgJiYgJHNfaWQhPTApew0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgJG1faWQ9JF9QT1NUWydpdGVtJ11bJ2FkZCddWydtZW1icmVfaWQnXVska2V5XTsNCgkJCQkJCQkJCSRzcWwuPSdJTlNFUlQgSU5UTyB0X2xpZW5zX2VjIChzYWlzb25faWQsZXF1aXBlX2lkLG1lbWJyZV9pZCkgdmFsdWVzKCcuJHNfaWQuJywnLiRfU0VTU0lPTlsnZXF1aXBlX2lkJ10uJywnLiRtX2lkLicpOyc7DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoNCgkJCQkJCQkkZGItPlVwZGF0ZSgkc3FsKTsNCg0KCQkJICAgICAgICAgICAgCWJyZWFrOw0KDQoJCQkJCQljYXNlICdlcXVpcGVfam91dGV1cl9saXN0JzoNCgkJCSAgIAkJCQkkc3FsPScnOw0KCQkJICAgCQkJCWlmKGlzX2FycmF5KCRfUE9TVFsnaXRlbSddWydleGlzdCddKSkNCgkJCQkgICAgICAgICAgICAgICAgZm9yZWFjaCgkX1BPU1RbJ2l0ZW0nXVsnZXhpc3QnXSBhcyAkbF9pZD0+JHNhaXNvbil7DQoJCQkJCQkJCQlpZigkc2Fpc29uWydjaGVja2VkJ109PTEpew0KCQkJCQkJCQkJICAgICRzcWwuPSdERUxFVEUgRlJPTSB0X2xpZW5zX2plcyB3aGVyZSBqZXNfbGllbl9pZD0nLiRsX2lkLicgTElNSVQgMTsnOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJDQoJCQkJCQkJCX0NCg0KCQkJCQkJCSRzcWwuPSdVcGRhdGUgdF9saWVuc19qZXMgc2V0IHJlc3BvbnNhYmxlPTAgd2hlcmUgZXF1aXBlX2lkPScuJF9TRVNTSU9OWydlcXVpcGVfaWQnXS4nOyc7DQoNCgkJCQkJCQlpZihpc19hcnJheSgkX1BPU1RbJ2l0ZW0nXVsnZXhpc3QnXVsncmVzcG9uc2FibGUnXSkpDQoJCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydpdGVtJ11bJ2V4aXN0J11bJ3Jlc3BvbnNhYmxlJ10gYXMgJG1faWQ9PiR0YWIpew0KCQkJCSAgICAgICAgICAgICAgICAgICAgJHRhYj1leHBsb2RlKCctJywkdGFiKTsNCgkJCQkJCQkJICAgICRzcWwuPSJVcGRhdGUgdF9saWVuc19qZXMgc2V0IHJlc3BvbnNhYmxlPTEgd2hlcmUgc2Fpc29uX2lkPSR0YWJbMF0gYW5kIG1lbWJyZV9pZD0kdGFiWzFdOyI7DQoJCQkJCQkJCX0NCg0KCQkJCQkJCQkNCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydhZGQnXVsnc2Fpc29uX2lkJ10gYXMgJGtleT0+JHNfaWQpew0KCQkJICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkc19pZCkgJiYgJHNfaWQhPTApew0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgJG1faWQ9JF9QT1NUWydpdGVtJ11bJ2FkZCddWydtZW1icmVfaWQnXVska2V5XTsNCgkJCQkJCQkJCSRzcWwuPSdJTlNFUlQgSU5UTyB0X2xpZW5zX2plcyAoc2Fpc29uX2lkLGVxdWlwZV9pZCxtZW1icmVfaWQpIHZhbHVlcygnLiRzX2lkLicsJy4kX1NFU1NJT05bJ2VxdWlwZV9pZCddLicsJy4kbV9pZC4nKTsnOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KDQoJCQkJCQkJJGRiLT5VcGRhdGUoJHNxbCk7DQoNCgkJCSAgICAgICAgICAgIAlicmVhazsNCg0KCQkJICAgICAgICB9DQoJCQkJCSRzbWFydHktPmFzc2lnbigncHJlc2VudGF0aW9uRHluYW1pcXVlJywkX1BPU1RbJ3dpY2gnXSk7DQoJCQkJCSRzbWFydHktPmRpc3BsYXkoJy4vX19hZG1pbl9fL3NpdGVfX19hZG1pbl9fcHJlc2VudGF0aW9uLicuVFBMX0VYVCk7DQoNCgkJCSAgICAgICAgYnJlYWs7DQoJCQkJY2FzZSAnZXF1aXBlJzoNCgkJCQkJDQoJCQkJYnJlYWs7IA0KCQkJCQ0KCQkJCWNhc2UgJ2NvbXBvc2l0aW9uJzoNCgkJCQkJDQoJCQkJCSRtaWQ9JF9QT1NUWydjb21wbyddWydtYXRjaF9pZCddOyANCgkJCQkJJF9QT1NUWydjb21wbyddPWFkZHNsYXNoZXNfc3FsKCRfUE9TVFsnY29tcG8nXSk7DQoJCQkJCQ0KCQkJCQkkc3FsPSJERUxFVEUgRlJPTSB0X2NvbXBvcyB3aGVyZSBjb21wb19tYXRjaF9pZD0iLiRtaWQuIjsiOw0KCQkJCQkNCgkJCQkJDQoJCQkJCWZvcmVhY2goc3BsaXQoJywnLCRfUE9TVFsnY29tcG9fQSddKSBhcyAkdmFsKXsNCgkJCQkJCWlmKCR2YWwpDQoJCQkJCQkJJHNxbC49IklOU0VSVCBJTlRPIHRfY29tcG9zIFZBTFVFUygnJywnIi4kbWlkLiInLCciLiR2YWwuIicpOyI7DQoJCQkJCX0NCgkJCQkJZm9yZWFjaChzcGxpdCgnLCcsJF9QT1NUWydjb21wb19CJ10pIGFzICR2YWwpew0KCQkJCQkJaWYoJHZhbCkNCgkJCQkJCQkkc3FsLj0iSU5TRVJUIElOVE8gdF9jb21wb3MgVkFMVUVTKCcnLCciLiRtaWQuIicsJyIuJHZhbC4iJyk7IjsNCgkJCQkJfQ0KCQkJCQkNCgkJCQkJJGRiLT5JbnNlcnQoJHNxbCk7DQoJCQkJCQ0KCQkJCQlpZigkZGItPkNvdW50PT0tMSl7DQoJCQkJCQlhbGVydEFqYXgoJ0VycmV1ciBsb3JzIGRlIGxhIG1pc2Ugw6Agam91ciwgcmXDqXNzYXlleiBwbHVzIHRhcmQnKTsNCgkJCQkJfQ0KCQkJCQllbHNlew0KCQkJCQkJJHNxbD0ic2VsZWN0IGNvdW50KCopIGZyb20gdF9jb21wb3Mgd2hlcmUgY29tcG9fbWF0Y2hfaWQ9JG1pZCI7DQoJCQkJCQkkY250PSRkYi0+Q291bnQoJHNxbCk7DQoJCQkJCQllY2hvICINCgkJCQkJCQkvLyBPbiBjYWNoZQ0KCQkJCQkJCSQoJ2V0b2lsZV9idXR0b24kbWlkJykuZGlzYWJsZWQ9KCRjbnQ9PTAgPyB0cnVlOiBmYWxzZSk7DQoJCQkJCQkJRWxlbWVudC50b2dnbGUoJ2ljJyk7DQoJCQkJCQkJLy8gT24gYXZlcnRpcw0KCQkJCQkJCWFsZXJ0KCdNaXNlIMOgIGpvdXIgZWZmZWN0dcOpZSBhdmVjIHN1Y2PDqXMnKTsNCgkJCQkJCQkvLyBPbiBlbMOodmUgbGUgZm9ybXVsYWlyZSANCgkJCQkJCQkkKCdpYycpLmlubmVySFRNTD1cIlwiOw0KCQkJCQkJCSQoJ2V0b2lsZV9idXR0b24kbWlkJykuY2xpY2soJCgnZXRvaWxlX2J1dHRvbiRtaWQnKSk7DQoJCQkJCQkJIjsNCgkJCQkJfQ0KLyogKi8JCQkJDQoJCQkJYnJlYWs7IA0KCQkJCQ0KCQkJCWNhc2UgJ2V0b2lsZSc6DQoNCgkJCQkJJG1pZD0kX1BPU1RbJ21hdGNoX2lkJ107IA0KCQkJCQkkX1BPU1RbJ2V0b2lsZSddPWFkZHNsYXNoZXNfc3FsKCRfUE9TVFsnZXRvaWxlJ10pOw0KCQkJCQkkX1BPU1RbJ3R5cGUnXQkJPXNwbGl0KCcsJywkX1BPU1RbJ3R5cGUnXSk7DQoJCQkJCSRfUE9TVFsnam91dGV1ciddCT1zcGxpdCgnLCcsJF9QT1NUWydqb3V0ZXVyJ10pOw0KCQkJCQkNCgkJCQkJJHNxbD0iREVMRVRFIEZST00gdF9ldG9pbGVzIHdoZXJlIGV0b2lsZV9tYXRjaF9pZD0iLiRtaWQuIjsiOw0KCQkJCQkNCgkJCQkJZm9yZWFjaCgkX1BPU1RbJ3R5cGUnXSBhcyAka2V5PT4kdmFsKXsNCgkJCQkJCQ0KCQkJCQkJaWYoJF9QT1NUWydqb3V0ZXVyJ11bJGtleV0+MCkNCgkJCQkJCQkkc3FsLj0iSU5TRVJUIElOVE8gdF9ldG9pbGVzIFZBTFVFUygnJywkbWlkLCIuJF9QT1NUWydqb3V0ZXVyJ11bJGtleV0uIiwkdmFsKTsiOwkJDQoJCQkJCX0NCgkJCQkJDQoJCQkJCSRkYi0+SW5zZXJ0KCRzcWwpOw0KCQkJCQlpZigkZGItPkNvdW50PT0tMSl7DQoJCQkJCQlhbGVydEFqYXgoJ0VycmV1ciBsb3JzIGRlIGxhIG1pc2Ugw6Agam91ciwgcmXDqXNzYXlleiBwbHVzIHRhcmQnKTsNCgkJCQkJfQ0KCQkJCQllbHNlew0KCQkJCQkJZWNobyAiDQoJCQkJCQkJLy8gT24gY2FjaGUNCgkJCQkJCQlFbGVtZW50LnRvZ2dsZSgnaWMnKTsNCgkJCQkJCQkvLyBPbiBhdmVydGlzDQoJCQkJCQkJYWxlcnQoJ01pc2Ugw6Agam91ciBlZmZlY3R1w6llIGF2ZWMgc3VjY8OpcycpOw0KCQkJCQkJCS8vIE9uIGVsw6h2ZSBsZSBmb3JtdWxhaXJlIA0KCQkJCQkJCSQoJ2ljJykuaW5uZXJIVE1MPVwiXCI7DQoJCQkJCQkJIjsNCgkJCQkJfQ0KLyogKi8JCQkJDQoJCQkJYnJlYWs7IA0KCQkJCQ0KCQkJCWNhc2UgJ3N0YWZmJzoNCg0KCQkJCQkkbWlkPSRfUE9TVFsnc3RhZmYnXVsnbWF0Y2hfaWQnXTsNCgkJCQkJJGRiLT5VcGRhdGUoJGRiLT5VcGRhdGVTUUwoJ3RfbWF0Y2hzJywkX1BPU1RbJ3N0YWZmJ10sJ21hdGNoX2lkPScuJG1pZCkpOw0KDQoJCQkJCWlmKCRkYi0+Q291bnQ9PS0xKXsNCgkJCQkJCWFsZXJ0QWpheCgnRXJyZXVyIGxvcnMgZGUgbGEgbWlzZSDDoCBqb3VyLCByZcOpc3NheWV6IHBsdXMgdGFyZCcpOw0KCQkJCQl9DQoJCQkJCWVsc2V7DQoJCQkJCQllY2hvICINCgkJCQkJCQkvLyBPbiBjYWNoZQ0KCQkJCQkJCUVsZW1lbnQudG9nZ2xlKCdpYycpOw0KCQkJCQkJCS8vIE9uIGF2ZXJ0aXMNCgkJCQkJCQlhbGVydCgnTWlzZSDDoCBqb3VyIGVmZmVjdHXDqWUgYXZlYyBzdWNjw6lzJyk7DQoJCQkJCQkJLy8gT24gZWzDqHZlIGxlIGZvcm11bGFpcmUgDQoJCQkJCQkJJCgnaWMnKS5pbm5lckhUTUw9XCJcIjsNCgkJCQkJCQkiOw0KCQkJCQl9DQoJCQkJDQoJCQkJYnJlYWs7IA0KCQkJfQ0KCQkJCQkNCgkJCWJyZWFrOw0KCQkNCgkJZGVmYXVsdDoNCgkJCWJvdWdlX2RlX2xhKCcuLycpOw0KCX0NCg0KPz4NCg==]]></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_depth" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="3" feature="max_children" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="4" state="enabled" id="24800002"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="5"><breakpoint type="line" filename="file:///C:/JP/EasyPHP/www/lolita/index.php" lineno="20" state="enabled" hit_count="0" hit_condition=">=" hit_value="0" id="24800002"></breakpoint></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="6" status="stopped" reason="ok"></response>
Send: run -i 7
----
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///c:/jp/easyphp/www/lolita/ajax.php" language="PHP" protocol_version="1.0" appid="2480" idekey="default"><engine version="2.0.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright></init>
Send: source -i 1 -f file:///c:/jp/easyphp/www/lolita/ajax.php
Send: feature_set -i 2 -n max_depth -v 3
Send: feature_set -i 3 -n max_children -v 15
Send: breakpoint_set -i 4 -t line -f file:///C:/JP/EasyPHP/www/lolita/index.php -n 20 -s enabled -h 0 -o >=
Send: breakpoint_list -i 5
Send: run -i 6
----
----
----
----
----
----
----
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="source" transaction_id="1" encoding="base64"><![CDATA[PD9waHANCgkvLyBQb3VyIGZvcmNlciBsYSBib25uZSBpbnRlcnByZXRhdGlvbiBkZXMgY2FyYWN0w6hyZXMNCgloZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Iik7DQoNCglyZXF1aXJlX29uY2UoJy4vbGliL2Jhc2UuaW5jJyk7DQoNCi8vCSRzbWFydHktPnRlbXBsYXRlX2Rpcj0kbW90Wyd0cGxfcGF0aCddLidfX2FkbWluX18vJzsNCg0KCWZ1bmN0aW9uIGFsZXJ0QWpheCgkdHh0LCRpPTEpew0KCQlpZigkaT09MSkNCgkJCWVjaG8gImFsZXJ0KCciLmFkZHNsYXNoZXMoJHR4dCkuIicpOyI7DQoJCWVsc2UNCgkJCWVjaG8gIm5ldyBJbnNlcnRpb24uQm90dG9tKCdpYycsJyIuYWRkc2xhc2hlcygkdHh0KS4iJyk7IjsNCgl9DQoNCg0KCWZ1bmN0aW9uIGVudm95ZXJNYWlsKCRtYWlsLCRtZW1icmUpew0KCSAgICBnbG9iYWwgJHNtYXJ0eTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdtZW1icmUnLCRtZW1icmUpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ3Byb2ZpbF9tb2RpZmljYXRpb25fbWFpbCcsdHJ1ZSk7DQoJCSRtZXNzYWdlPSRzbWFydHktPmZldGNoKCcuL19fYWRtaW5fXy9zaXRlX19fYWRtaW5fX3ByZXNlbnRhdGlvbnMuJy5UUExfRVhUKTsNCgkJJGhlYWRlcnM9IiI7DQoJCSRoZWFkZXJzLj0iRk9STTogd2VibWFzdGVyQGFzc29jaWF0aW9uLWxvbGl0YS5jb21cbiI7DQoJCSRoZWFkZXJzLj0iQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI7DQoNCgkJbWFpbCgkbWFpbCwnVG9uIHByb2ZpbCBlbiBsaWduZSDDoCBsYSBMT0xJVEEnLCRtZXNzYWdlLCRoZWFkZXJzKTsNCgl9DQoNCglpZighaXNzZXQoJF9SRVFVRVNUWydhY3Rpb24nXSkpDQoJCWJvdWdlX2RlX2xhKCcuLycpOwkJDQoJJHNhaXNvbl9jb3VyYW50ZT0kZGItPlNlbGVjdEZpcnN0KCdzZWxlY3QgKiBmcm9tIHRfc2Fpc29ucyB3aGVyZSBzYWlzb25fY291cmFudGU9MScpOw0KCSRzbWFydHktPmFzc2lnbignc2Fpc29uX2NvdXJhbnRlJywkc2Fpc29uX2NvdXJhbnRlKTsNCg0KCXN3aXRjaCgkX1JFUVVFU1RbJ2FjdGlvbiddKXsNCgkgICAgY2FzZSAnZHluJzoNCgkgICAgCXN3aXRjaCgkX1JFUVVFU1RbJ3doYXQnXSl7DQoJICAgIAkgICAgY2FzZSAncGljJzoNCgkgICAgCSAgICANCgkgICAgCSAgICAgICAgJHR5cGU9JF9HRVRbJ2ltYWdlX3R5cGUnXTsNCgkJCQkJDQoJCQkJCWlmICgkdHlwZT09MCkgJHR5cGU9MTsNCgkgICAgCSAgICAgICAgDQoJICAgIAkgICAgICAgICRzcWw9J3NlbGVjdCBpbWFnZV9pZCxpbWFnZV9leHQgZnJvbSB0X2R5bl9pbWFnZXMgd2hlcmUgaW1hZ2VfdHlwZT0nLiR0eXBlLicgb3JkZXIgYnkgcmFuZCgpIExJTUlUIDEnOw0KDQoJICAgIAkgICAgICAgICRmaXJzdD0kZGItPlNlbGVjdEZpcnN0KCRzcWwpOw0KCSAgICAJICAgICAgICANCgkgICAgCSAgICAgICAgJHBhdGggPSAkcGFyYW1bJ3JlcF9keW4nXS4nL2ltYWdlJy4kZmlyc3RbJ2ltYWdlX2lkJ10uJy4nLiRmaXJzdFsnaW1hZ2VfZXh0J107DQoJICAgIAkgICAgICAgIA0KCQkJCQloZWFkZXIoIkNvbnRlbnQtVHlwZTogaW1hZ2UvIi4kZmlyc3RbJ2ltYWdlX2V4dCddKTsNCgkJCQkJDQoJCQkJCSRmZCA9IGZvcGVuKCRwYXRoLCdyJyk7DQoJCQkJCQl3aGlsZSAoIWZlb2YoJGZkKSkgew0KCQkJCQkJJGJ1ZmZlciA9IGZnZXRzKCRmZCwgNDA5Nik7DQoJCQkJCQllY2hvICRidWZmZXI7DQoJCQkJCX0NCgkJCQkJZmNsb3NlICgkZmQpOw0KCQkJCQkNCgkgICAgCSAgICAgICAgYnJlYWs7DQoJICAgICAgICAgICAgY2FzZSAnY2FwdHVyZSc6DQoJCQkJCSRzbWFydHktPmFzc2lnbigncHJlc2VudGF0aW9uRHluYW1pcXVlJywkX1BPU1RbJ2NhcHR1cmUnXSk7DQoJCQkJCSRzbWFydHktPmRpc3BsYXkoJy4vX19hZG1pbl9fL3NpdGVfX19hZG1pbl9fcHJlc2VudGF0aW9uLicuVFBMX0VYVCk7DQoJICAgICAgICAgICAgICAgIGJyZWFrOw0KCSAgICAgICAgICAgIGNhc2UgJ2NvbWJvLXRlYW0tbGlzdCc6DQoJICAgICAgICAgICAgDQoJICAgICAgICAgICAgaWYoJF9QT1NUWydzYWlzb25faWQnXSE9Jycpew0KCQkgICAgICAgICAgICAkc3FsPScNCgkJCQkJCXNlbGVjdCAqIGZyb20gdF9lcXVpcGVzIGFzIHRfZQ0KCQkJCQkJaW5uZXIgam9pbiB0X2xpZW5zX2VzDQoJCQkJCQlVU0lORyhlcXVpcGVfaWQpDQoJCQkJCQlXSEVSRSBzYWlzb25faWQ9Jy4kX1BPU1RbJ3NhaXNvbl9pZCddOw0KDQoJCSAgICAgICAgICAgICR0ZWFtcz0kZGItPlNlbGVjdEFsbEJ5KCRzcWwsJ2VxdWlwZV9pZCcpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJICAgICR0ZWFtcz1hcnJheSgpOw0KCQkJCSAgICANCgkJCQllY2hvICINCgkJCQkgICAgdmFyIGNvbWJvID0gJCgnJF9QT1NUW3RhcmdldF0nKTsNCgkJCQkgICAgY29tYm8ub3B0aW9ucy5sZW5ndGg9MDsNCgkJCQkgICAgdmFyIGRlZj0wOw0KCQkJCSAgICB2YXIgdmFsZXVyPTA7DQoJCQkJCSI7DQoJCQkJJG9wdGlvbnM9Jyc7DQoJCQ0KCQkJCWlmKCRfUE9TVFsndmFsTnVsbCddPT10cnVlKQ0KCQkJCQkkb3B0aW9ucy49J2NvbWJvLm9wdGlvbnNbY29tYm8ub3B0aW9ucy5sZW5ndGhdPW5ldyBPcHRpb24oIi0iLCIwIix0cnVlLHRydWUpOyc7DQoJCQkJDQoJCQkJZm9yZWFjaCgkdGVhbXMgYXMgJGlkPT4kdGVhbSl7DQoJCQkJICAgICRvcHRpb25zLj0nY29tYm8ub3B0aW9uc1tjb21iby5vcHRpb25zLmxlbmd0aF09bmV3IE9wdGlvbigiJy4kdGVhbVtlcXVpcGVfbm9tXS4nIiwiJy4kaWQuJyIsJy4oJGlkPT0kX1BPU1RbJ2RlZlZhbHVlJ10/ICd0cnVlLHRydWUnIDonZmFsc2UsZmFsc2UnKS4nKTsnOw0KCQkJCSAgICBpZigkaWQ9PSRfUE9TVFsnZGVmVmFsdWUnXSkNCgkJCQkgICAgCSRvcHRpb25zLj0nDQoJCQkJCQkJZGVmPWNvbWJvLm9wdGlvbnMubGVuZ3RoLTE7DQoJCQkJCQkJdmFsZXVyPScuJGlkLic7DQoJCQkJCQknOw0KCQkJCQkvLyRvcHRpb25zLj0oJGlkPT0kX1BPU1RbJ2RlZlZhbHVlJ10gPyAnY29tYm8ub3B0aW9ucy5zZWxlY3RlZEluZGV4PWNvbWJvLm9wdGlvbnMubGVuZ3RoOyc6JycpOw0KCQkJCSAgICB9DQoNCgkJCQlpZigkb3B0aW9ucz09JycpDQoJCQkJICAgICRvcHRpb25zPSdjb21iby5vcHRpb25zW2NvbWJvLm9wdGlvbnMubGVuZ3RoXT1uZXcgT3B0aW9uKCJBdWN1bmUiLCIiLHRydWUsdHJ1ZSk7JzsNCgkJCQllbHNlDQoJCQkJCSRvcHRpb25zLj0nDQoJCQkJCQljb21iby5zZWxlY3RlZEluZGV4PWRlZjsNCgkJCQkJCWNvbWJvLnZhbHVlPXZhbGV1cjsnOw0KCQkJCQkNCgkJCQllY2hvICRvcHRpb25zOw0KDQoJICAgICAgICAgICAgYnJlYWs7DQoJICAgICAgICB9DQoJICAgICAgICANCgkgICAgICAgIGJyZWFrOw0KCQljYXNlICd0ZXN0JzoNCgkJCQ0KCQkJYnJlYWs7DQoJCWNhc2UgJ2dyb3VwQWRkJzoNCgkJCSR2YWwJPSRfUE9TVFsndmFsJ107DQoJCQkkb2JqSWQJPSRfUE9TVFsnb2JqSWQnXTsNCgkJCQ0KCQkJZWNobyAiDQoJCQkJaWYob2JqPWdldE9iaignIi4kb2JqSWQuIicpKXsNCgkJCQkJcmVzZXRGaWVsZFByZXNlbnRhdGlvbihvYmopOw0KCQkJCSI7DQoJCQkNCgkJCWlmKCR2YWw9PScnKXsNCgkJCQ0KCQkJCWVjaG8gIg0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfRklFTERfUkVRVUlSRUQnXS4iJyk7DQoJCQkJCXNldENsYXNzTmFtZShvYmosJ2ZpZWxkX3JlcXVpcmVkJyk7DQoJCQkJCW9iai5mb2N1cygpOw0KCQkJCQkiOw0KCQkJfQ0KCQkJZWxzZXsNCgkJCQkkc3FsPSdzZWxlY3QgY291bnQoKikgZnJvbSB0X2dyb3VwcyB3aGVyZSBncm91cF9uYW1lPSInLiR2YWwuJyInOw0KCQkJCWlmKCRkYi0+Q291bnQoJHNxbCk+MCkNCgkJCQkJZWNobyAiDQoJCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCd0aXRsZScsJyIuJG1vdFsnRVJSX0dST1VQX0VYSVNUUyddLiInKTsNCgkJCQkJCWFkZENsYXNzTmFtZShvYmosJ2ZpZWxkX2luX2Vycm9yJyk7DQoJCQkJCQlvYmouZm9jdXMoKTsNCgkJCQkJIjsNCgkJCQllbHNlew0KCQkJCQllY2hvICINCgkJCQkJCWJsaW5rU3R5bGUob2JqLCdmaWVsZF9vaycpOw0KCQkJCQkiOw0KCQkJCX0NCgkJCX0NCgkJCWVjaG8gIg0KCQkJfSAvLyBmaW4gaWYoaXNPYmoob2JqKSkNCgkJCWVsc2UNCgkJCQlhbGVydCgncGFzIHVuIG9iaicrIi4kb2JqSWQuIik7DQoJCQkiOw0KCQkNCgkJY2FzZSAnY2hlY2tGaWVsZCc6DQoJCQkkdmFsCT0kX1BPU1RbJ3ZhbCddOw0KCQkJJG9iaklkCT0kX1BPU1RbJ29iaklkJ107DQoJCQkkb2JsaWcJPSRfUkVRVUVTVFsnb2JsaWcnXTsNCgkJCSRtYXgJPSRfUkVRVUVTVFsnbWF4J107DQoJCQkkbWluCT0kX1JFUVVFU1RbJ21pbiddOw0KDQoJCQllY2hvICINCgkJCQlpZihvYmo9Z2V0T2JqKCciLiRvYmpJZC4iJykpew0KCQkJCQlyZXNldEZpZWxkUHJlc2VudGF0aW9uKG9iaik7DQoJCQkJIjsNCgkJCQ0KCQkJaWYoaXNzZXQoJG9ibGlnKSAmJiBzdHJfcmVwbGFjZSgnICcsJycsJHZhbCk9PScnKXsNCgkJCQllY2hvICINCgkJCQkJc2V0QXR0cmlidXRlKG9iaiwnb3RpdGxlJyxvYmoudGl0bGUpOw0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCd0aXRsZScsJyIuJG1vdFsnRVJSX0ZJRUxEX1JFUVVJUkVEJ10uIicpOw0KCQkJCQlzZXRDbGFzc05hbWUob2JqLCdmaWVsZF9yZXF1aXJlZCcpOw0KCQkJCQlvYmouZm9jdXMoKTsNCgkJCQkJIjsNCgkJCX0NCgkJCWVsc2UgaWYoaXNzZXQoJG1pbikgJiYgc3RybGVuKCR2YWwpPCRtaW4pew0KCQkJCWVjaG8gIg0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfRklFTERfVE9PX1NIT1JUJ10uIicpOw0KCQkJCQlzZXRDbGFzc05hbWUob2JqLCdmaWVsZF9yZXF1aXJlZCcpOw0KCQkJCQlvYmouZm9jdXMoKTsNCgkJCQkJIjsNCgkJCX0NCgkJCWVsc2UgaWYoaXNzZXQoJG1heCkgJiYgc3RybGVuKCR2YWwpPiRtYXgpew0KCQkJCWVjaG8gIg0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfRklFTERfVE9PX0xPTkcnXS4iJyk7DQoJCQkJCXNldENsYXNzTmFtZShvYmosJ2ZpZWxkX3JlcXVpcmVkJyk7DQoJCQkJCW9iai5mb2N1cygpOw0KCQkJCQkiOw0KCQkJfQ0KCQkJCQkJCQ0KCQkJZWNobyAifTsiOw0KCQkJCQkNCgkJCWJyZWFrOwkNCgkJDQoJCWNhc2UgJ3VzZXInOg0KCQkJDQoJCQkkdmFsCT0kX1BPU1RbJ3ZhbCddOw0KCQkJJG9iaklkCT0kX1BPU1RbJ29iaklkJ107DQoJCQkNCgkJCWVjaG8gIg0KCQkJCWlmKGlzT2JqKG9iaj1nZXRPYmooJyIuJG9iaklkLiInKSkpew0KCQkJCQkNCgkJCQkJcmVzZXRGaWVsZFByZXNlbnRhdGlvbihvYmopOw0KCQkJCSI7DQoNCgkJCQkNCgkJCWlmKCR2YWw9PScnKXsNCgkJCQ0KCQkJCWVjaG8gIg0KCQkJCQlzZXRBdHRyaWJ1dGUob2JqLCdvdGl0bGUnLG9iai50aXRsZSk7DQoJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfRklFTERfUkVRVUlSRUQnXS4iJyk7DQoJCQkJCXNldENsYXNzTmFtZShvYmosJ2ZpZWxkX3JlcXVpcmVkJyk7DQoJCQkJCW9iai5mb2N1cygpOw0KCQkJCQkiOw0KCQkJfQ0KCQkJZWxzZXsNCgkJCQkkc3FsPSdzZWxlY3QgY291bnQoKikgZnJvbSB0X3VzZXJzIHdoZXJlIHVzZXJfbG9naW49IicuJHZhbC4nIic7DQoJCQkJaWYoJGRiLT5Db3VudCgkc3FsKT4wKQ0KCQkJCQllY2hvICINCgkJCQkJCXNldEF0dHJpYnV0ZShvYmosJ290aXRsZScsb2JqLnRpdGxlKTsNCgkJCQkJCXNldEF0dHJpYnV0ZShvYmosJ3RpdGxlJywnIi4kbW90WydFUlJfVVNFUl9FWElTVFMnXS4iJyk7DQoJCQkJCQlhZGRDbGFzc05hbWUob2JqLCdmaWVsZF9pbl9lcnJvcicpOw0KCQkJCQkJb2JqLmZvY3VzKCk7DQoJCQkJCSI7DQoJCQkJZWxzZXsNCgkJCQkJZWNobyAiDQoJCQkJCQlibGlua1N0eWxlKG9iaiwnZmllbGRfb2snKTsNCgkJCQkJIjsNCgkJCQl9DQoJCQl9DQoJCQllY2hvICINCgkJCX0gLy8gZmluIGlmKGlzT2JqKG9iaikpDQoJCQllbHNlDQoJCQkJYWxlcnQoJ3BhcyB1biBvYmonKyIuJG9iaklkLiIpOw0KCQkJIjsNCgkJDQoJCWJyZWFrOw0KCQkNCgkJY2FzZSAnZ2VuZXJhdGVQYXNzd29yZCc6DQoNCgkJCSRvYmpJZAk9JF9QT1NUWydvYmpJZCddOw0KDQoJCQllY2hvICINCgkJCQlpZihpc09iaihvYmo9Z2V0T2JqKCciLiRvYmpJZC4iJykpKXsNCgkJCQkNCgkJCQlhbGVydCgnIi4kbW90WydFUlJfUEFTU1dPUkRfUkVRVUlSRUQnXS4iJyk7DQoJCQkJDQoJCQkJb2JqLnZhbHVlPSciLnN1YnN0cih1bmlxaWQocmFuZCgpKSwwLHJhbmQoNywxMCkpLiInOw0KCQkJCQ0KCQkJCSI7DQoJCQkJDQoJCQkNCgkJCQkNCgkJCWVjaG8gIg0KCQkJfSAvLyBmaW4gaWYoaXNPYmoob2JqKSkNCgkJCWVsc2UNCgkJCQlhbGVydCgncGFzIHVuIG9iaicrIi4kb2JqSWQuIik7DQoJCQkiOw0KCQkNCgkJY2FzZSAnc2hvdyc6DQoJCQkkd2hhdD0kX1JFUVVFU1RbJ3doYXQnXTsNCg0KCQkJc3dpdGNoKCR3aGF0KXsNCgkJCSAgICBjYXNlICduZXdzJzoNCgkJCSAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCJuZXdzX2lkIiwkX1BPU1RbJ25ld3NfaWQnXSk7DQoJCQkgICAgICAgIGJyZWFrOw0KCQkJDQoJCQkJY2FzZSAnam91dGV1clByb3AnOg0KCQkJCQkkaWQ9JF9QT1NUWydqb3V0ZXVyX2lkJ107DQoJCQkJCWlmKCFpc19sb2dndWVkKCkgfHwgJGlkIT0kX1NFU1NJT05bJ3VzZXJfaWQnXSl7DQoJCQkJCQkkbWVtYnJlX2lkPSRpZDsNCgkJCQkJCSRfU0VTU0lPTlsnbWVtYnJlX2lkJ109JGlkOw0KCQkJCQkJJF9QT1NUWydtZW1icmVfaWQnXT0kaWQ7DQoJCQkJCQkkc21hcnR5LT5hc3NpZ24oJ2RldGFpbF9qb3V0ZXVyX3dlYicsJGRiLT5zZWxlY3RGaXJzdCgnU2VsZWN0ICogZnJvbSB0X21lbWJyZXMgd2hlcmUgbWVtYnJlX2lkPScuJGlkKSk7DQoJCQkJCQlzZXNzaW9uX3JlZ2lzdGVyKCRtZW1icmVfaWQpOw0KCSAgICAgICAgICAgICAgICAgICAgJHdoYXQ9J21lbWJyZSc7DQoJCQkJCQkkc21hcnR5LT5hc3NpZ24oImRldGFpbCIsdHJ1ZSk7DQoJCQkJCQkkYWZmPSRzbWFydHktPmZldGNoKCcuL19fYWRtaW5fXy9zaXRlX19fYWRtaW5fX3ByZXNlbnRhdGlvbi4nLlRQTF9FWFQpOw0KCQkJCQkJZGllKCRhZmYpOw0KCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQkJZWxzZXsNCgkJCQkJCSR3aGF0PSdtZW1icmUnOw0KCQkJCQkJJF9QT1NUWydtZW1icmVfaWQnXT0kX1NFU1NJT05bJ3VzZXJfaWQnXTsNCgkJCQkJfQ0KICAgICAgICAgICAgICAgICAgICANCgkJCQljYXNlICdtZW1icmUnOg0KCQkJCQkkaWQ9JF9QT1NUWydtZW1icmVfaWQnXTsNCgkJCQkJJG1lbWJyZV9pZD0kaWQ7DQoJCQkJCSRfU0VTU0lPTlsnbWVtYnJlX2lkJ109JGlkOw0KCQkJCQkNCgkJCQkJJHNtYXJ0eS0+YXNzaWduKCR3aGF0LCRkYi0+c2VsZWN0Rmlyc3QoJ1NlbGVjdCAqIGZyb20gdF9tZW1icmVzIHdoZXJlIG1lbWJyZV9pZD0nLiRpZCkpOw0KCQkJCQkNCgkJCQkJc2Vzc2lvbl9yZWdpc3RlcigkbWVtYnJlX2lkKTsNCgkJCQkJYnJlYWs7DQoNCgkJCQljYXNlICdlcXVpcGUnOg0KCQkJCQkkaWQ9JF9QT1NUWydlcXVpcGVfaWQnXTsJCQkJCQ0KCQkJCQkkbWVtYnJlX2lkPSRpZDsNCgkJCQkJJF9TRVNTSU9OWydlcXVpcGVfaWQnXT0kaWQ7DQoJCQkJCWJyZWFrOyANCg0KCQkJCWNhc2UgJ2NvbXBvc2l0aW9uJzoNCgkJCQkJJGlkPSRfUE9TVFsnbWF0Y2hfaWQnXTsJCQkJCQ0KCQkJCQkkc21hcnR5LT5hc3NpZ24oJ2RldGFpbF9jb21wb19hZG1pbicsJGlkKTsNCgkJCQkJJHNtYXJ0eS0+ZGlzcGxheSgnLi9fX2FkbWluX18vc2l0ZV9fX2FkbWluX19wcmVzZW50YXRpb24uJy5UUExfRVhUKTsNCgkJCQkJYnJlYWs7DQoJCQkJCSANCgkJCQljYXNlICdldG9pbGUnOg0KCQkJCQkkaWQ9JF9QT1NUWydtYXRjaF9pZCddOwkJCQkJDQoJCQkJCSRzbWFydHktPmFzc2lnbignZGV0YWlsX2V0b2lsZV9hZG1pbicsJGlkKTsNCgkJCQkJJHNtYXJ0eS0+ZGlzcGxheSgnLi9fX2FkbWluX18vc2l0ZV9fX2FkbWluX19wcmVzZW50YXRpb24uJy5UUExfRVhUKTsNCgkJCQkJYnJlYWs7DQoNCgkJCQljYXNlICdzdGFmZic6DQoJCQkJCSRpZD0kX1BPU1RbJ21hdGNoX2lkJ107CQkJCQkNCgkJCQkJJHNtYXJ0eS0+YXNzaWduKCdkZXRhaWxfc3RhZmZfYWRtaW4nLCRpZCk7DQoJCQkJCSRzbWFydHktPmRpc3BsYXkoJy4vX19hZG1pbl9fL3NpdGVfX19hZG1pbl9fcHJlc2VudGF0aW9uLicuVFBMX0VYVCk7DQoJCQkJCWJyZWFrOw0KCQkJIA0KCQkJCWNhc2UgJ21hdGNoRGV0YWlsJzoNCgkJCQkJJGlkPSRfUE9TVFsnbWF0Y2hfaWQnXTsJCQ0KCQkJCQkkc3FsPSdzZWxlY3QgKiBmcm9tIHRfZXF1aXBlcyBpbm5lciBqb2luIHRfbWF0Y2hzIG9uIGVxdWlwZV9pZD1tYXRjaF9lcXVpcGVfQSBvciBlcXVpcGVfaWQ9bWF0Y2hfZXF1aXBlX0Igd2hlcmUgbWF0Y2hfaWQ9Jy4kaWQ7DQoJCQkJCSRzbWFydHktPmFzc2lnbignZGV0YWlsX21hdGNoJywkZGItPlNlbGVjdEFsbEJ5KCRzcWwsJ2VxdWlwZV9pZCcpKTsNCgkJCQkJJHNtYXJ0eS0+ZGlzcGxheSgnLi9fX2FkbWluX18vc2l0ZV9fX2FkbWluX19wcmVzZW50YXRpb24uJy5UUExfRVhUKTsNCgkJCQkJYnJlYWs7DQoJCQkJCQ0KCQkJCWRlZmF1bHQ6DQoJCQkJCWVjaG8gIk1vdCBjbMOpICIuJF9SRVFVRVNUWyd3aGF0J10uIiBub24gcsOpZsOpcmVuY8OpIjsNCgkJCX0NCg0KCQkJJHNtYXJ0eS0+YXNzaWduKCJkZXRhaWwiLHRydWUpOw0KCQkJJHNtYXJ0eS0+ZGlzcGxheSgnLi9fX2FkbWluX18vc2l0ZV9fX2FkbWluX19wcmVzZW50YXRpb24uJy5UUExfRVhUKTsNCgkJCSRzbWFydHktPmRpc3BsYXkoIi4vX19hZG1pbl9fL3NpdGVfX19hZG1pbl9fJHdoYXQuIi5UUExfRVhUKTsNCgkJDQoJCQlicmVhazsNCg0KCQljYXNlICdwb3N0JzoNCgkJDQoJCQlzd2l0Y2goJF9SRVFVRVNUWyd3aGF0J10pew0KDQoJCQkgICAgY2FzZSAnc3ViLXVwZGF0ZSc6DQoJCQkgICAgICAgIA0KCQkJICAgICAgICBzd2l0Y2goJF9QT1NUWyd3aWNoJ10pew0KCQkJCQkJY2FzZSAncGFyYW1fZHluJzoNCg0KCQkJCQkJCWZvcmVhY2goJF9QT1NUWydjdXJyJ10gYXMgJGlkPT4kdmFsKXsNCgkJCQkJCQkJaWYoaXNzZXQoJHZhbFsnc2VsZWN0ZWQnXSkpew0KCQkJCQkJCQkJJHNxbC49J0RFTEVURSBmcm9tIHRfZHluX2ltYWdlcyB3aGVyZSBpbWFnZV9pZD0nLiRpZDsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCg0KLyoJCQkJCQkJJG5ldz0kZGItPmV4dHJhY3RGaWVsZHMoJF9QT1NULCduZXcnKTsNCg0KCQkJCQkJCWZvcmVhY2goJG5ldyBhcyAka2V5PT4kdmFsKXsNCgkJCQkJCQkJaWYoJHZhbFsncGFyYW1fbmFtZSddIT0nJyAmJiAkdmFsWydwYXJhbV92YWx1ZSddIT0nJykNCgkJCQkJCQkJCSRzcWwuPSdJTlNFUlQgSU5UTyB0X3BhcmFtcyAocGFyYW1fbmFtZSxwYXJhbV92YWx1ZSxwYXJhbV9saWIscGFyYW1fdHlwKSB2YWx1ZXMoIicuJHZhbFsncGFyYW1fbmFtZSddLiciLCInLiR2YWxbJ3BhcmFtX3ZhbHVlJ10uJyIsIicuJHZhbFsncGFyYW1fbGliJ10uJyIsIicuJHZhbFsncGFyYW1fdHlwJ10uJyIpOyc7DQoJCQkJCQkJfQ0KCSovCQkJDQoJCQkJCQkJDQoJCQkJCQkvLwkkZGItPlNlbGVjdCgkc3FsKTsNCg0KCQkJCQkJICAgIGJyZWFrOw0KCQkJCQkJY2FzZSAncGFyYW0nOg0KCQkJCQkJCSRzcWw9J1RSVU5DQVRFIFRBQkxFIHRfcGFyYW1zOyc7DQoJCQkJCQkJaWYoaXNfYXJyYXkoJF9QT1NUWydjdXJyJ10pKQ0KCQkJCQkJCQlmb3JlYWNoKCRfUE9TVFsnY3VyciddIGFzICR2YWwpew0KCQkJCQkJCQkJaWYoIWlzc2V0KCR2YWxbJ3NlbGVjdGVkJ10pKQ0KCQkJCQkJCQkJCSRzcWwuPSdJTlNFUlQgSU5UTyB0X3BhcmFtcyAocGFyYW1fbmFtZSxwYXJhbV92YWx1ZSxwYXJhbV9saWIscGFyYW1fdHlwKSB2YWx1ZXMoIicuJHZhbFsncGFyYW1fbmFtZSddLiciLCInLiR2YWxbJ3BhcmFtX3ZhbHVlJ10uJyIsIicuJHZhbFsncGFyYW1fbGliJ10uJyIsIicuJHZhbFsncGFyYW1fdHlwJ10uJyIpOyc7DQoJCQkJCQkJCX0NCg0KCQkJCQkJCSRuZXc9JGRiLT5leHRyYWN0RmllbGRzKCRfUE9TVCwnbmV3Jyk7DQoNCgkJCQkJCQlmb3JlYWNoKCRuZXcgYXMgJGtleT0+JHZhbCl7DQoJCQkJCQkJCWlmKCR2YWxbJ3BhcmFtX25hbWUnXSE9JycgJiYgJHZhbFsncGFyYW1fdmFsdWUnXSE9JycpDQoJCQkJCQkJCQkkc3FsLj0nSU5TRVJUIElOVE8gdF9wYXJhbXMgKHBhcmFtX25hbWUscGFyYW1fdmFsdWUscGFyYW1fbGliLHBhcmFtX3R5cCkgdmFsdWVzKCInLiR2YWxbJ3BhcmFtX25hbWUnXS4nIiwiJy4kdmFsWydwYXJhbV92YWx1ZSddLiciLCInLiR2YWxbJ3BhcmFtX2xpYiddLiciLCInLiR2YWxbJ3BhcmFtX3R5cCddLiciKTsnOw0KCQkJCQkJCX0NCg0KCQkJCQkJCSRkYi0+U2VsZWN0KCRzcWwpOw0KCQkJCQkJCWJyZWFrOw0KDQoJCQkgICAgICAgICAgICBjYXNlICdlcXVpcGVfbm91dmVhdSc6DQoJCQkgICAgICAgICAgICANCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydhZGQnXVsnbWVtYnJlX25vbSddIGFzICRrZXk9PiRub20pew0KCQkJICAgICAgICAgICAgICAgICAgICAkaXRlbT0kX1BPU1RbJ2l0ZW0nXVsnYWRkJ107DQoJCQkgICAgICAgICAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgICAgICAkcHJlbm9tID0gJGl0ZW1bJ21lbWJyZV9wcmVub20nXVska2V5XTsNCgkJCSAgICAgICAgICAgICAgICAgICAgJG1haWwgPSAkaXRlbVsnbWVtYnJlX21haWwnXVska2V5XTsNCgkJCSAgICAgICAgICAgICAgICAgICAgJHB3ZCA9ICRpdGVtWydtZW1icmVfcGFzc3dvcmQnXVska2V5XTsNCgkJCSAgICAgICAgICAgICAgICAgICAgDQoJCQkgICAgICAgICAgICAgICAgICAgICRzcWw9J0lOU0VSVCBJTlRPIHRfbWVtYnJlcyAobWVtYnJlX25vbSxtZW1icmVfcHJlbm9tLG1lbWJyZV9lbWFpbCxtZW1icmVfbWQ1LG1lbWJyZV9sb2dpbiknOw0KCQkJICAgICAgICAgICAgICAgICAgICAkc3FsLj0nIHZhbHVlcygiJy4kbm9tLiciLCInLiRwcmVub20uJyIsIicuJG1haWwuJyInOw0KCQkJCQkJCQkkc3FsLj0nLG1kNSgiJy5HUkFJTl9ERV9TQUJMRS4kcHdkLkdSQUlOX0RFX1NBQkxFLiciKSwiJy4oJG5vbS4nXycuJHByZW5vbSkuJyIpOyc7DQoNCgkJCQkJCQkJJGRiLT5JbnNlcnQoJHNxbCk7DQoJCQkJCQkJCQ0KCQkJCQkJCQkkaWQgPSAkZGItPmxhc3RJZDsNCgkJCQkJCQkJDQoJCQkJCQkJCWlmKCRpZCl7DQoJCQkJCQkJCSAgICAkc2Fpc29uX2lkPSRzYWlzb25fY291cmFudGVbJ3NhaXNvbl9pZCddOw0KCQkJCQkJCQkgICAgJGVxdWlwZV9pZDsNCgkJCQkJCQkJICAgICRzcWw9J0lOU0VSVCBJTlRPIHRfbGllbnNfamVzIChzYWlzb25faWQsZXF1aXBlX2lkLG1lbWJyZV9pZCkgJzsNCgkJCQkJCQkJICAgICRzcWwuPSdWQUxVRVMoIicuJHNhaXNvbl9pZC4nIiwiJy4kX1NFU1NJT05bJ2VxdWlwZV9pZCddLiciLCInLiRpZC4nIik7JzsNCgkJCQkJCQkJICAgIA0KCQkJCQkJCQkgICAgJGRiLT5JbnNlcnQoJHNxbCk7DQoNCgkJCQkJCQkJCWlmKCFlbXB0eSgkbWFpbCkpew0KCQkJCQkJCQkJICAgIGVudm95ZXJNYWlsKCRtYWlsLCRkYi0+U2VsZWN0Rmlyc3QoInNlbGVjdCAqIGZyb20gdF9tZW1icmVzIHdoZXJlIG1lbWJyZV9pZD0kaWQiKSk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoNCgkJCSAgICAgICAgICAgICAgICBicmVhazsNCgkJCSAgICAgICAgDQoJCQkgICAgICAgICAgICBjYXNlICdqb3V0ZXVyX2xvZ2luJzoNCgkJCSAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgIGlmKGVtcHR5KCRfUE9TVFsncF9sb2dpbiddKSB8fCBlbXB0eSgkX1BPU1RbJ3BfcHdkJ10pKXsNCgkJCSAgICAgICAgICAgICAgICAgICAgJHdhcm5Mdmw9MzsNCgkJCSAgICAgICAgICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCd3YXJuTHZsJywkd2Fybkx2bCk7DQoJCQkgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KCQkJCQkJCX0NCg0KCQkJICAgICAgICAgICAgICAgICRzcWw9J1NlbGVjdCBjb3VudCgqKSBhcyBDTlQsbWVtYnJlX2lkIGZyb20gdF9tZW1icmVzIHdoZXJlIG1lbWJyZV9sb2dpbj0iJy4kX1BPU1RbJ3BfbG9naW4nXS4nIiBhbmQgbWVtYnJlX21kNT1tZDUoIicuR1JBSU5fREVfU0FCTEUuJF9QT1NUWydwX3B3ZCddLkdSQUlOX0RFX1NBQkxFLiciKSBncm91cCBieSBtZW1icmVfaWQnOw0KCQkJICAgICAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgICRyb3c9JGRiLT5TZWxlY3RGaXJzdCgkc3FsKTsNCgkJCSAgICAgICAgICAgICAgICAkbG9nX3Jlc3VsdD0kcm93WydDTlQnXTsNCgkJCSAgICAgICAgICAgICAgICANCgkJCSAgICAgICAgICAgICAgICAkd2Fybkx2bD0xOw0KCQkJICAgICAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgIGlmKCRsb2dfcmVzdWx0PT0wKXsNCgkJCSAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydtZW1icmVfbG9naW5fdHJ5J10rKzsNCgkJCSAgICAgICAgICAgICAgICAgICAgJHdhcm5Mdmw9MjsNCgkJCSAgICAgICAgICAgICAgICAgICAgDQoJCQkgICAgICAgICAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnbWVtYnJlX2Nvbm5lY3RlZCddKTsNCgkJCQkJCQl9DQoJCQkJCQkJZWxzZXsNCgkJCQkJCQkgICAgJF9TRVNTSU9OWydtZW1icmVfY29ubmVjdGVkJ109JHJvd1snbWVtYnJlX2lkJ107DQoJCQkJCQkJICAgICRzbWFydHktPmFzc2lnbignbWVtYnJlX2Nvbm5lY3RlZCcsJHJvd1snbWVtYnJlX2lkJ10pOw0KCQkJCQkJCX0NCg0KCQkJCQkJCWlmKCRfU0VTU0lPTlsnbWVtYnJlX2xvZ2luX3RyeSddPj0zKQ0KCQkJCQkJCSAgICAkd2Fybkx2bD0xMDsNCg0KCQkJCQkJCSRzbWFydHktPmFzc2lnbignd2Fybkx2bCcsJHdhcm5MdmwpOw0KCQkJICAgICAgICAgICAgICAgIA0KCQkJICAgICAgICAgICAgICAgIGJyZWFrOw0KCQkJICAgICAgICAgICAgY2FzZSAncGxheWVyX2Fzc28nOg0KCQkJICAgCQkJCSRzcWw9Jyc7DQoJCQkgICAJCQkJaWYoaXNfYXJyYXkoJF9QT1NUWydmb25jdGlvbiddWydleGlzdCddKSkNCgkJCQkgICAgICAgICAgICAgICAgZm9yZWFjaCgkX1BPU1RbJ2ZvbmN0aW9uJ11bJ2V4aXN0J10gYXMgJGZvbmN0aW9uX2lkPT4kZm9uY3Rpb24pew0KCQkJCQkJCQkJaWYoaXNzZXQoJGZvbmN0aW9uWydjaGVja2VkJ10pKXsNCgkJCQkJCQkJCSAgICAkc3FsLj0nREVMRVRFIEZST00gdF9saWVuc19tZnMgd2hlcmUgbWZzX2xpZW5faWQ9Jy4kZm9uY3Rpb25faWQuJyBMSU1JVCAxOyc7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0NCg0KCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydmb25jdGlvbiddWydhZGQnXVsnZm9uY3Rpb25faWQnXSBhcyAkaT0+JGZvbmN0aW9uKXsNCgkJICAgICAgICAgICAgICAgICAgICAJJHNhaXNvbl9pZD0kX1BPU1RbJ2ZvbmN0aW9uJ11bJ2FkZCddWydzYWlzb25faWQnXVskaV07DQoNCgkJCSAgICAgICAgICAgICAgICAgICAgaWYoaXNzZXQoJGZvbmN0aW9uKSAmJiAkZm9uY3Rpb24hPTAgJiYgJHNhaXNvbl9pZCE9MCl7DQoJCQkgICAgICAgICAgICAgICAgICAgIAkkdGFiPWV4cGxvZGUoJy0nLCRmb25jdGlvbik7DQoJCQkJCQkJCQkkc3FsLj0nSU5TRVJUIElOVE8gdF9saWVuc19tZnMgKGZvbmN0aW9uX2lkLGZvbmN0aW9uX3R5cGVfaWQsc2Fpc29uX2lkLG1lbWJyZV9pZCkgdmFsdWVzKCcuJHRhYlswXS4nLCcuJHRhYlsxXS4nLCcuJHNhaXNvbl9pZC4nLCcuJF9TRVNTSU9OWydtZW1icmVfaWQnXS4nKTsnOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCSRkYi0+VXBkYXRlKCRzcWwpOw0KDQoJCQkgICAgICAgICAgICAJYnJlYWs7DQoNCgkJCSAgICAgICAgICAgIGNhc2UgJ3BsYXllcl9lcXVpcGVfbGlzdCc6DQoJCQkgICAJCQkJJHNxbD0nJzsNCgkJCSAgIAkJCQlpZihpc19hcnJheSgkX1BPU1RbJ3NhaXNvbiddWydleGlzdCddKSkNCgkJCQkgICAgICAgICAgICAgICAgZm9yZWFjaCgkX1BPU1RbJ3NhaXNvbiddWydleGlzdCddIGFzICRzYWlzb25faWQ9PiRzYWlzb24pew0KCQkJCQkJCQkJaWYoJHNhaXNvblsnY2hlY2tlZCddPT0xKXsNCgkJCQkJCQkJCSAgICAkc3FsLj0nREVMRVRFIEZST00gdF9saWVuc19qZXMgd2hlcmUgamVzX2xpZW5faWQ9Jy4kc2Fpc29uWydqZXMnXS4nIExJTUlUIDE7JzsNCgkJCQkJCQkJCX0NCg0KCQkJCQkJCQkJJHNxbC49J1VQREFURSB0X2xpZW5zX2plcyBTRVQgZXF1aXBlX2lkPScuJHNhaXNvblsnZXF1aXBlX2lkJ10uJyB3aGVyZSBqZXNfbGllbl9pZD0nLiRzYWlzb25bJ2plcyddLicgTElNSVQgMTsnOw0KCQkJCQkJCQl9DQoNCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnc2Fpc29uJ11bJ2FkZCddWydzYWlzb25faWQnXSBhcyAkc2Fpc29uKXsNCgkJCSAgICAgICAgICAgICAgICAgICAgaWYoaXNzZXQoJHNhaXNvbikgJiYgJHNhaXNvbiE9MCl7DQoJCQkgICAgICAgICAgICAgICAgICAgIAkkdGFiPWV4cGxvZGUoJy0nLCRzYWlzb24pOw0KCQkJCQkJCQkJJHNxbC49J0lOU0VSVCBJTlRPIHRfbGllbnNfamVzIChzYWlzb25faWQsZXF1aXBlX2lkLG1lbWJyZV9pZCkgdmFsdWVzKCcuJHRhYlswXS4nLCcuJHRhYlsxXS4nLCcuJF9TRVNTSU9OWydtZW1icmVfaWQnXS4nKTsnOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KDQoJCQkJCQkJJGRiLT5VcGRhdGUoJHNxbCk7DQoNCgkJCSAgICAgICAgICAgIAlicmVhazsNCg0KCQkJICAgICAgICAgICAgY2FzZSAncGxheWVyX2NvYWNoX2xpc3QnOg0KCQkJICAgCQkJCSRzcWw9Jyc7DQoJCQkgICAJCQkJaWYoaXNfYXJyYXkoJF9QT1NUWydzYWlzb24nXVsnZXhpc3QnXSkpDQoJCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydzYWlzb24nXVsnZXhpc3QnXSBhcyAkc2Fpc29uX2lkPT4kc2Fpc29uKXsNCgkJCQkJCQkJCWlmKCRzYWlzb25bJ2NoZWNrZWQnXT09MSl7DQoJCQkJCQkJCQkgICAgJHNxbC49J0RFTEVURSBGUk9NIHRfbGllbnNfZWMgd2hlcmUgZWNfbGllbl9pZD0nLiRzYWlzb25bJ2VjJ10uJyBMSU1JVCAxOyc7DQoJCQkJCQkJCQl9DQoNCgkJCQkJCQkJCSRzcWwuPSdVUERBVEUgdF9saWVuc19lYyBTRVQgZXF1aXBlX2lkPScuJHNhaXNvblsnZXF1aXBlX2lkJ10uJyB3aGVyZSBlY19saWVuX2lkPScuJHNhaXNvblsnamVzJ10uJyBMSU1JVCAxOyc7DQoJCQkJCQkJCX0NCg0KCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydzYWlzb24nXVsnYWRkJ11bJ3NhaXNvbl9pZCddIGFzICRzYWlzb24pew0KCQkJICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkc2Fpc29uKSAmJiAkc2Fpc29uIT0wKXsNCgkJCSAgICAgICAgICAgICAgICAgICAgCSR0YWI9ZXhwbG9kZSgnLScsJHNhaXNvbik7DQoJCQkJCQkJCQkkc3FsLj0nSU5TRVJUIElOVE8gdF9saWVuc19lYyAoc2Fpc29uX2lkLGVxdWlwZV9pZCxtZW1icmVfaWQpIHZhbHVlcygnLiR0YWJbMF0uJywnLiR0YWJbMV0uJywnLiRfU0VTU0lPTlsnbWVtYnJlX2lkJ10uJyk7JzsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCg0KCQkJCQkJCQ0KCQkJCQkJCSRkYi0+VXBkYXRlKCRzcWwpOw0KDQoJCQkgICAgICAgICAgICAJYnJlYWs7DQoNCgkJCSAgICAgICAgICAgIGNhc2UgJ3BsYXllcl9pbmZvJzoNCgkJCQkJCQkNCgkJCQkJCQlpZighZW1wdHkoJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX3B3ZCddKSl7DQoJCQkJCQkJLy9PbiB2YWxpZGUgbGEgZmljaGUgZHUgbWVtYnJlIG9uIGRvaXQgZW52b3llciB1biBtYWlsDQoJCQkJCQkJCSRfUE9TVFsnbWVtYnJlJ11bJ21lbWJyZV9tZDUnXT1tZDUoR1JBSU5fREVfU0FCTEUuJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX3B3ZCddLkdSQUlOX0RFX1NBQkxFKTsNCgkJCQkJCQkJJHNlbmRfbWFpbD10cnVlOw0KCQkJCQkJCX0NCgkJCQkJCQlpZigkX1BPU1RbJ21lbWJyZSddWydtZW1icmVfcHJvZl9ob21tZSddPT0wKQ0KCQkJCQkJCQkkX1BPU1RbJ21lbWJyZSddWydtZW1icmVfcHJvZl9ob21tZSddPSRfUE9TVFsnbWVtYnJlJ11bJ21lbWJyZV9wcm9mX2hvbW1lX3R4dCddOw0KDQoJCQkJCQkJaWYoJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX3Byb2ZfZmVtbWUnXT09MCkNCgkJCQkJCQkJJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX3Byb2ZfZmVtbWUnXT0kX1BPU1RbJ21lbWJyZSddWydtZW1icmVfcHJvZl9mZW1tZV90eHQnXTsNCg0KCQkJCQkJCSRfUE9TVFsnbWVtYnJlJ109YWRkc2xhc2hlc19zcWwoJF9QT1NUWydtZW1icmUnXSk7DQoNCgkJCQkJCQkkc3FsPSRkYi0+VXBkYXRlU1FMKCd0X21lbWJyZXMnLCRfUE9TVFsnbWVtYnJlJ10sJ21lbWJyZV9pZD0nLiRfUE9TVFsnbWVtYnJlJ11bJ21lbWJyZV9pZCddKTsNCgkJCQkJCQkkZGItPlVwZGF0ZSgkc3FsKTsNCg0KCQkJCQkJCWlmKCRkYi0+Q291bnQ9PS0xKXsNCgkJCQkJCQkJYWxlcnRBamF4KCdFcnJldXIgbG9ycyBkZSBsYSBtaXNlIMOgIGpvdXIsIHJlw6lzc2F5ZXogcGx1cyB0YXJkJyk7DQoJCQkJCQkJfQ0KCQkJCQkJCWVsc2V7DQoJCSAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRzZW5kX21haWw9PXRydWUgJiYgaXNzZXQoJF9QT1NUWydtZW1icmUnXVsnbWVtYnJlX2VtYWlsJ10pKXsNCgkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudm95ZXJNYWlsKCRfUE9TVFsnbWVtYnJlJ11bJ21lbWJyZV9lbWFpbCddLCRfUE9TVFsnbWVtYnJlJ10pOw0KCQkgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCgkJDQoJCQ0KCQkJCQkJCQlpZihpc3NldCgkX1BPU1RbJ3NlbGYnXSkpDQoJCQkJCQkJCWVjaG8gIndpbmRvdy5sb2NhdGlvbi5ocmVmPSciLlNJVEVfVVJMLiInOyI7DQoJCQkJCQkJfQ0KDQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICdlcXVpcGVfaW5mbyc6DQoJCQkJCQkJJGVxdWlwZVNxbD1hZGRzbGFzaGVzX3NxbCgkX1BPU1RbJ2VxdWlwZSddKTsNCg0KCQkJCQkJCSRzcWw9JGRiLT5VcGRhdGVTUUwoJ3RfZXF1aXBlcycsJGVxdWlwZVNxbCwnZXF1aXBlX2lkPScuJGVxdWlwZVNxbFsnZXF1aXBlX2lkJ10pOw0KDQoJCQkJCQkJJGRiLT5VcGRhdGUoJHNxbCk7DQoNCgkJCQkJCWJyZWFrOw0KDQoJCQkJCQljYXNlICdlcXVpcGVfc2Fpc29uX2xpc3QnOg0KCQkJCQkJICAgICRFX0lEPSRfU0VTU0lPTlsnZXF1aXBlX2lkJ107DQoJCQkgICAJCQkJJHNxbD0nJzsNCgkJCSAgIAkJCQlpZihpc19hcnJheSgkX1BPU1RbJ2l0ZW0nXVsnZXhpc3QnXSkpDQoJCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydpdGVtJ11bJ2V4aXN0J10gYXMgJHNhaXNvbl9pZD0+JHNhaXNvbil7DQoJCQkJCQkJCQlpZigkc2Fpc29uWydjaGVja2VkJ109PTEpew0KCQkJCQkJCQkJICAgICRzcWwuPSdERUxFVEUgRlJPTSB0X2xpZW5zX2VzIHdoZXJlIGVzX2xpZW5faWQ9Jy4kc2Fpc29uWydlcyddLicgTElNSVQgMTsnOw0KCQkJCQkJCQkJICAgICRzcWwuPSdERUxFVEUgRlJPTSB0X2xpZW5zX2plcyB3aGVyZSBzYWlzb25faWQ9Jy4kc2Fpc29uX2lkLicgYW5kIGVxdWlwZV9pZD0nLiRFX0lELic7JzsNCgkJCQkJCQkJCX0NCg0KCQkJCQkJCQkJJHNxbC49J1VQREFURSB0X2xpZW5zX2VzIFNFVCBzYWlzb25fdHlwZT0iJy4kc2Fpc29uWydzYWlzb25fdHlwZSddLiciIHdoZXJlIGVzX2xpZW5faWQ9Jy4kc2Fpc29uWydlcyddLicgTElNSVQgMTsnOw0KCQkJCQkJCQl9DQoNCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydhZGQnXVsnc2Fpc29uX2lkJ10gYXMgJGtleT0+JHNfaWQpew0KCQkJICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkc19pZCkgJiYgJHNfaWQhPTApew0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU9JF9QT1NUWydpdGVtJ11bJ2FkZCddWydzYWlzb25fdHlwZSddWyRrZXldOw0KCQkJCQkJCQkJJHNxbC49J0lOU0VSVCBJTlRPIHRfbGllbnNfZXMgKHNhaXNvbl9pZCxlcXVpcGVfaWQsc2Fpc29uX3R5cGUpIHZhbHVlcygnLiRzX2lkLicsJy4kRV9JRC4nLCInLiR0eXBlLiciKTsnOw0KCQkJCQkJCQkJJHNxbC49J0lOU0VSVCBJTlRPIHRfbGllbnNfamVzIChzYWlzb25faWQsZXF1aXBlX2lkLG1lbWJyZV9pZCkgU2VsZWN0ICcuJHNfaWQuJywnLiRFX0lELicsIG1lbWJyZV9pZCBmcm9tIHRfbGllbnNfamVzIHdoZXJlIHNhaXNvbl9pZD0nLigkc19pZC0xKS4nIGFuZCBlcXVpcGVfaWQ9Jy4kRV9JRC4nOyc7DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoJCQkJCQkJDQoJCQkJCQkJJGRiLT5VcGRhdGUoJHNxbCk7DQoNCgkJCSAgICAgICAgICAgIAlicmVhazsNCg0KCQkJCQkJY2FzZSAnZXF1aXBlX2NvYWNoX2xpc3QnOg0KCQkJICAgCQkJCSRzcWw9Jyc7DQoJCQkgICAJCQkJaWYoaXNfYXJyYXkoJF9QT1NUWydpdGVtJ11bJ2V4aXN0J10pKQ0KCQkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydleGlzdCddIGFzICRsX2lkPT4kc2Fpc29uKXsNCgkJCQkJCQkJCWlmKCRzYWlzb25bJ2NoZWNrZWQnXT09MSl7DQoJCQkJCQkJCQkgICAgJHNxbC49J0RFTEVURSBGUk9NIHRfbGllbnNfZWMgd2hlcmUgZWNfbGllbl9pZD0nLiRsX2lkLicgTElNSVQgMTsnOw0KCQkJCQkJCQkJfQ0KDQoJCQkJCQkJCQkkc3FsLj0nVVBEQVRFIHRfbGllbnNfZWMgU0VUIG1lbWJyZV9pZD0nLiRzYWlzb25bJ21lbWJyZV9pZCddLicgd2hlcmUgZWNfbGllbl9pZD0nLiRsX2lkLicgTElNSVQgMTsnOw0KCQkJCQkJCQl9DQoNCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydhZGQnXVsnc2Fpc29uX2lkJ10gYXMgJGtleT0+JHNfaWQpew0KCQkJICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkc19pZCkgJiYgJHNfaWQhPTApew0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgJG1faWQ9JF9QT1NUWydpdGVtJ11bJ2FkZCddWydtZW1icmVfaWQnXVska2V5XTsNCgkJCQkJCQkJCSRzcWwuPSdJTlNFUlQgSU5UTyB0X2xpZW5zX2VjIChzYWlzb25faWQsZXF1aXBlX2lkLG1lbWJyZV9pZCkgdmFsdWVzKCcuJHNfaWQuJywnLiRfU0VTU0lPTlsnZXF1aXBlX2lkJ10uJywnLiRtX2lkLicpOyc7DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoNCgkJCQkJCQkkZGItPlVwZGF0ZSgkc3FsKTsNCg0KCQkJICAgICAgICAgICAgCWJyZWFrOw0KDQoJCQkJCQljYXNlICdlcXVpcGVfam91dGV1cl9saXN0JzoNCgkJCSAgIAkJCQkkc3FsPScnOw0KCQkJICAgCQkJCWlmKGlzX2FycmF5KCRfUE9TVFsnaXRlbSddWydleGlzdCddKSkNCgkJCQkgICAgICAgICAgICAgICAgZm9yZWFjaCgkX1BPU1RbJ2l0ZW0nXVsnZXhpc3QnXSBhcyAkbF9pZD0+JHNhaXNvbil7DQoJCQkJCQkJCQlpZigkc2Fpc29uWydjaGVja2VkJ109PTEpew0KCQkJCQkJCQkJICAgICRzcWwuPSdERUxFVEUgRlJPTSB0X2xpZW5zX2plcyB3aGVyZSBqZXNfbGllbl9pZD0nLiRsX2lkLicgTElNSVQgMTsnOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJDQoJCQkJCQkJCX0NCg0KCQkJCQkJCSRzcWwuPSdVcGRhdGUgdF9saWVuc19qZXMgc2V0IHJlc3BvbnNhYmxlPTAgd2hlcmUgZXF1aXBlX2lkPScuJF9TRVNTSU9OWydlcXVpcGVfaWQnXS4nOyc7DQoNCgkJCQkJCQlpZihpc19hcnJheSgkX1BPU1RbJ2l0ZW0nXVsnZXhpc3QnXVsncmVzcG9uc2FibGUnXSkpDQoJCQkJICAgICAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWydpdGVtJ11bJ2V4aXN0J11bJ3Jlc3BvbnNhYmxlJ10gYXMgJG1faWQ9PiR0YWIpew0KCQkJCSAgICAgICAgICAgICAgICAgICAgJHRhYj1leHBsb2RlKCctJywkdGFiKTsNCgkJCQkJCQkJICAgICRzcWwuPSJVcGRhdGUgdF9saWVuc19qZXMgc2V0IHJlc3BvbnNhYmxlPTEgd2hlcmUgc2Fpc29uX2lkPSR0YWJbMF0gYW5kIG1lbWJyZV9pZD0kdGFiWzFdOyI7DQoJCQkJCQkJCX0NCg0KCQkJCQkJCQkNCgkJCSAgICAgICAgICAgICAgICBmb3JlYWNoKCRfUE9TVFsnaXRlbSddWydhZGQnXVsnc2Fpc29uX2lkJ10gYXMgJGtleT0+JHNfaWQpew0KCQkJICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkc19pZCkgJiYgJHNfaWQhPTApew0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgJG1faWQ9JF9QT1NUWydpdGVtJ11bJ2FkZCddWydtZW1icmVfaWQnXVska2V5XTsNCgkJCQkJCQkJCSRzcWwuPSdJTlNFUlQgSU5UTyB0X2xpZW5zX2plcyAoc2Fpc29uX2lkLGVxdWlwZV9pZCxtZW1icmVfaWQpIHZhbHVlcygnLiRzX2lkLicsJy4kX1NFU1NJT05bJ2VxdWlwZV9pZCddLicsJy4kbV9pZC4nKTsnOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KDQoJCQkJCQkJJGRiLT5VcGRhdGUoJHNxbCk7DQoNCgkJCSAgICAgICAgICAgIAlicmVhazsNCg0KCQkJICAgICAgICB9DQoJCQkJCSRzbWFydHktPmFzc2lnbigncHJlc2VudGF0aW9uRHluYW1pcXVlJywkX1BPU1RbJ3dpY2gnXSk7DQoJCQkJCSRzbWFydHktPmRpc3BsYXkoJy4vX19hZG1pbl9fL3NpdGVfX19hZG1pbl9fcHJlc2VudGF0aW9uLicuVFBMX0VYVCk7DQoNCgkJCSAgICAgICAgYnJlYWs7DQoJCQkJY2FzZSAnZXF1aXBlJzoNCgkJCQkJDQoJCQkJYnJlYWs7IA0KCQkJCQ0KCQkJCWNhc2UgJ2NvbXBvc2l0aW9uJzoNCgkJCQkJDQoJCQkJCSRtaWQ9JF9QT1NUWydjb21wbyddWydtYXRjaF9pZCddOyANCgkJCQkJJF9QT1NUWydjb21wbyddPWFkZHNsYXNoZXNfc3FsKCRfUE9TVFsnY29tcG8nXSk7DQoJCQkJCQ0KCQkJCQkkc3FsPSJERUxFVEUgRlJPTSB0X2NvbXBvcyB3aGVyZSBjb21wb19tYXRjaF9pZD0iLiRtaWQuIjsiOw0KCQkJCQkNCgkJCQkJDQoJCQkJCWZvcmVhY2goc3BsaXQoJywnLCRfUE9TVFsnY29tcG9fQSddKSBhcyAkdmFsKXsNCgkJCQkJCWlmKCR2YWwpDQoJCQkJCQkJJHNxbC49IklOU0VSVCBJTlRPIHRfY29tcG9zIFZBTFVFUygnJywnIi4kbWlkLiInLCciLiR2YWwuIicpOyI7DQoJCQkJCX0NCgkJCQkJZm9yZWFjaChzcGxpdCgnLCcsJF9QT1NUWydjb21wb19CJ10pIGFzICR2YWwpew0KCQkJCQkJaWYoJHZhbCkNCgkJCQkJCQkkc3FsLj0iSU5TRVJUIElOVE8gdF9jb21wb3MgVkFMVUVTKCcnLCciLiRtaWQuIicsJyIuJHZhbC4iJyk7IjsNCgkJCQkJfQ0KCQkJCQkNCgkJCQkJJGRiLT5JbnNlcnQoJHNxbCk7DQoJCQkJCQ0KCQkJCQlpZigkZGItPkNvdW50PT0tMSl7DQoJCQkJCQlhbGVydEFqYXgoJ0VycmV1ciBsb3JzIGRlIGxhIG1pc2Ugw6Agam91ciwgcmXDqXNzYXlleiBwbHVzIHRhcmQnKTsNCgkJCQkJfQ0KCQkJCQllbHNlew0KCQkJCQkJJHNxbD0ic2VsZWN0IGNvdW50KCopIGZyb20gdF9jb21wb3Mgd2hlcmUgY29tcG9fbWF0Y2hfaWQ9JG1pZCI7DQoJCQkJCQkkY250PSRkYi0+Q291bnQoJHNxbCk7DQoJCQkJCQllY2hvICINCgkJCQkJCQkvLyBPbiBjYWNoZQ0KCQkJCQkJCSQoJ2V0b2lsZV9idXR0b24kbWlkJykuZGlzYWJsZWQ9KCRjbnQ9PTAgPyB0cnVlOiBmYWxzZSk7DQoJCQkJCQkJRWxlbWVudC50b2dnbGUoJ2ljJyk7DQoJCQkJCQkJLy8gT24gYXZlcnRpcw0KCQkJCQkJCWFsZXJ0KCdNaXNlIMOgIGpvdXIgZWZmZWN0dcOpZSBhdmVjIHN1Y2PDqXMnKTsNCgkJCQkJCQkvLyBPbiBlbMOodmUgbGUgZm9ybXVsYWlyZSANCgkJCQkJCQkkKCdpYycpLmlubmVySFRNTD1cIlwiOw0KCQkJCQkJCSQoJ2V0b2lsZV9idXR0b24kbWlkJykuY2xpY2soJCgnZXRvaWxlX2J1dHRvbiRtaWQnKSk7DQoJCQkJCQkJIjsNCgkJCQkJfQ0KLyogKi8JCQkJDQoJCQkJYnJlYWs7IA0KCQkJCQ0KCQkJCWNhc2UgJ2V0b2lsZSc6DQoNCgkJCQkJJG1pZD0kX1BPU1RbJ21hdGNoX2lkJ107IA0KCQkJCQkkX1BPU1RbJ2V0b2lsZSddPWFkZHNsYXNoZXNfc3FsKCRfUE9TVFsnZXRvaWxlJ10pOw0KCQkJCQkkX1BPU1RbJ3R5cGUnXQkJPXNwbGl0KCcsJywkX1BPU1RbJ3R5cGUnXSk7DQoJCQkJCSRfUE9TVFsnam91dGV1ciddCT1zcGxpdCgnLCcsJF9QT1NUWydqb3V0ZXVyJ10pOw0KCQkJCQkNCgkJCQkJJHNxbD0iREVMRVRFIEZST00gdF9ldG9pbGVzIHdoZXJlIGV0b2lsZV9tYXRjaF9pZD0iLiRtaWQuIjsiOw0KCQkJCQkNCgkJCQkJZm9yZWFjaCgkX1BPU1RbJ3R5cGUnXSBhcyAka2V5PT4kdmFsKXsNCgkJCQkJCQ0KCQkJCQkJaWYoJF9QT1NUWydqb3V0ZXVyJ11bJGtleV0+MCkNCgkJCQkJCQkkc3FsLj0iSU5TRVJUIElOVE8gdF9ldG9pbGVzIFZBTFVFUygnJywkbWlkLCIuJF9QT1NUWydqb3V0ZXVyJ11bJGtleV0uIiwkdmFsKTsiOwkJDQoJCQkJCX0NCgkJCQkJDQoJCQkJCSRkYi0+SW5zZXJ0KCRzcWwpOw0KCQkJCQlpZigkZGItPkNvdW50PT0tMSl7DQoJCQkJCQlhbGVydEFqYXgoJ0VycmV1ciBsb3JzIGRlIGxhIG1pc2Ugw6Agam91ciwgcmXDqXNzYXlleiBwbHVzIHRhcmQnKTsNCgkJCQkJfQ0KCQkJCQllbHNlew0KCQkJCQkJZWNobyAiDQoJCQkJCQkJLy8gT24gY2FjaGUNCgkJCQkJCQlFbGVtZW50LnRvZ2dsZSgnaWMnKTsNCgkJCQkJCQkvLyBPbiBhdmVydGlzDQoJCQkJCQkJYWxlcnQoJ01pc2Ugw6Agam91ciBlZmZlY3R1w6llIGF2ZWMgc3VjY8OpcycpOw0KCQkJCQkJCS8vIE9uIGVsw6h2ZSBsZSBmb3JtdWxhaXJlIA0KCQkJCQkJCSQoJ2ljJykuaW5uZXJIVE1MPVwiXCI7DQoJCQkJCQkJIjsNCgkJCQkJfQ0KLyogKi8JCQkJDQoJCQkJYnJlYWs7IA0KCQkJCQ0KCQkJCWNhc2UgJ3N0YWZmJzoNCg0KCQkJCQkkbWlkPSRfUE9TVFsnc3RhZmYnXVsnbWF0Y2hfaWQnXTsNCgkJCQkJJGRiLT5VcGRhdGUoJGRiLT5VcGRhdGVTUUwoJ3RfbWF0Y2hzJywkX1BPU1RbJ3N0YWZmJ10sJ21hdGNoX2lkPScuJG1pZCkpOw0KDQoJCQkJCWlmKCRkYi0+Q291bnQ9PS0xKXsNCgkJCQkJCWFsZXJ0QWpheCgnRXJyZXVyIGxvcnMgZGUgbGEgbWlzZSDDoCBqb3VyLCByZcOpc3NheWV6IHBsdXMgdGFyZCcpOw0KCQkJCQl9DQoJCQkJCWVsc2V7DQoJCQkJCQllY2hvICINCgkJCQkJCQkvLyBPbiBjYWNoZQ0KCQkJCQkJCUVsZW1lbnQudG9nZ2xlKCdpYycpOw0KCQkJCQkJCS8vIE9uIGF2ZXJ0aXMNCgkJCQkJCQlhbGVydCgnTWlzZSDDoCBqb3VyIGVmZmVjdHXDqWUgYXZlYyBzdWNjw6lzJyk7DQoJCQkJCQkJLy8gT24gZWzDqHZlIGxlIGZvcm11bGFpcmUgDQoJCQkJCQkJJCgnaWMnKS5pbm5lckhUTUw9XCJcIjsNCgkJCQkJCQkiOw0KCQkJCQl9DQoJCQkJDQoJCQkJYnJlYWs7IA0KCQkJfQ0KCQkJCQkNCgkJCWJyZWFrOw0KCQkNCgkJZGVmYXVsdDoNCgkJCWJvdWdlX2RlX2xhKCcuLycpOw0KCX0NCg0KPz4NCg==]]></response>
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_depth" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="3" feature="max_children" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="4" state="enabled" id="24800003"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="5"><breakpoint type="line" filename="file:///C:/JP/EasyPHP/www/lolita/index.php" lineno="20" state="enabled" hit_count="0" hit_condition=">=" hit_value="0" id="24800003"></breakpoint></response>
----
Disconnect: 127.0.0.1
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="6" status="stopped" reason="ok"></response>
Send: run -i 7
----
Disconnect: 127.0.0.1
Ok, some more comment on what I see from the trace:
Altho the first "request" is mapped ok (file:///c:/jp/easyphp/www/lolita/index.php) all others are not (css/.. ajax...).
Your mapping looks ok, so mo real clue here.
The other bad thing I see is that there are TWO concurrent requests. This plugin does not handle more than one requests really good. It doesn't handle them at all. If one session is active and another request will pop in and override the older one, but the older will still live and keep the previous session "active"...
I'm having a hard time figuring out what could go wrong here...
For the sake of it, try to change your mapping setting to
127.0.0.1||c:|c:\
Lower case.
Always these problems with windows q:)
Another thing you can try is to change your PHP code to use ob_start(); at the begging. This will prevent all output until the script is finished, and thus no secondary request will mess with debugging. Try this one fist, I think we'll get most out of it. If you still have problems, give me the output again so I can see if we are still having two sessions.
I have multiple debugging session handling planned, just no time to code it yet.
Get back to me with progress.
-Zobo
Thanks. Trying to reproduce. Can you send me your mapping setup again.
-Z
same as the other message
127.0.0.1| |C:\JP\EasyPHP\www\lolita|C:\JP\EasyPHP\www\lolita\
> 127.0.0.1| |C:\JP\EasyPHP\www\lolita|C:\JP\EasyPHP\www\lolita\
Use another example please.
Next time I'll remove it like the other spams.
Don
excuse me mr Npp is it beacause of the use of the name lolita?
well sorry if my improvisation association acronym is lolita
i can use another local site but will it help?
i've set a new "projet" using c:\index.php and just doing phpinfo();
changed the mapping info
set a break point
run the site
blinks but nothing more!
here is the raw:
Accept: 127.0.0.1
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///c:/index.php" language="PHP" protocol_version="1.0" appid="5620" idekey="default"><engine version="2.0.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright></init>
Send: feature_set -i 1 -n max_depth -v 3
Send: feature_set -i 2 -n max_children -v 15
Send: breakpoint_set -i 3 -t line -f file:///c:/index.php -n 5 -s enabled -h 0 -o >=
Send: breakpoint_list -i 4
Send: run -i 5
----
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="1" feature="max_depth" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_children" success="1"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="3" state="enabled" id="56200001"></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="4"><breakpoint type="line" filename="file:///c:/index.php" lineno="5" state="enabled" hit_count="0" hit_condition=">=" hit_value="0" id="56200001"></breakpoint></response>
Recv: <?xml version="1.0" encoding="iso-8859-1"?>
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="5" status="stopped" reason="ok"></response>
Send: run -i 6
----
Disconnect: 127.0.0.1
Damn.. I can't see anything wrong with this...
Can you give me the output of phpinfo. At least the Xdebug part.
Check that extended info is on or breakpoints won't work at all:
xdebug.extended_info=1
-Zobo
nop nothing better
here is the phpinfo() of xdebug
xdebug
xdebug support enabled
Version 2.0.2
XDEBUG NOT LOADED AS ZEND EXTENSION
Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.125.2.2 $
GDB - GNU Debugger protocol $Revision: 1.87 $
PHP3 - PHP 3 Debugger protocol $Revision: 1.22 $
Directive Local Value Master Value
xdebug.auto_trace Off Off
xdebug.collect_includes On On
xdebug.collect_params 0 0
xdebug.collect_return Off Off
xdebug.collect_vars Off Off
xdebug.default_enable On On
xdebug.dump.COOKIE no value no value
xdebug.dump.ENV no value no value
xdebug.dump.FILES no value no value
xdebug.dump.GET no value no value
xdebug.dump.POST no value no value
xdebug.dump.REQUEST no value no value
xdebug.dump.SERVER no value no value
xdebug.dump.SESSION no value no value
xdebug.dump_globals On On
xdebug.dump_once On On
xdebug.dump_undefined Off Off
xdebug.extended_info On On
xdebug.idekey jpsiffert default
xdebug.manual_url http://www.php.net http://www.php.net
xdebug.max_nesting_level 100 100
xdebug.profiler_aggregate Off Off
xdebug.profiler_append Off Off
xdebug.profiler_enable Off Off
xdebug.profiler_enable_trigger Off Off
xdebug.profiler_output_dir /tmp /tmp
xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p
xdebug.remote_autostart Off Off
xdebug.remote_enable On On
xdebug.remote_handler dbgp dbgp
xdebug.remote_host 127.0.0.1 127.0.0.1
xdebug.remote_log C:\Jp\easyPhp\www\xdebug.log C:\Jp\easyPhp\www\xdebug.log
xdebug.remote_mode req req
xdebug.remote_port 9000 9000
xdebug.show_exception_trace Off Off
xdebug.show_local_vars On On
xdebug.show_mem_delta Off Off
xdebug.trace_format 0 0
xdebug.trace_options 0 0
xdebug.trace_output_dir /tmp /tmp
xdebug.trace_output_name trace.%c trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth 3 3
here is my php.ini setup :
zend_extension_ts="C:\JP\EasyPHP\php\extensions\php_xdebug-2.0.2-4.4.6.dll"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_mode=req
xdebug.idekey=default
xdebug.remote_log="C:\Jp\easyPhp\www\xdebug.log"
xdebug.remote_port=9000
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0
xdebug.extended_info=1
Humm... How can I put this...
Maybe the big capsed warning "XDEBUG NOT LOADED AS ZEND EXTENSION" might give a clue, that Xdebug is NOT loaded as zend extension?
If it's not loaded as Zend extension, debugpoints won't work...
Check that you don't have xdebug loaded twice, or soem other bizare problem. Maybe there is something "wrong" with your PHP?
-Z
well sorry but i thought that adding
zend_extension_ts="C:\JP\EasyPHP\php\extensions\php_xdebug-2.0.2-4.4.6.dll"
was enough for "zend_extension" otherwise i don't know how to do it....
Sorry for disturbing
It should be... That's why this is so confusing...
Ok.. we are definetely having problems with the PHP extension.
Please paste the whole phpinfo output. If I can't find the problem there, we'll have to take this to the Xdebug support list.
Re,
-Zobo
I installed EasyPHP (2.0b1).
I did have some problems with setting it up, mostly vista related, but when I figured out how the config work, I had it set up fast.
Check that you are editing the rigth files (conf_files\php.ini) and check that perhaps xdebug isn't loaded twice.
Then stop and start EasyPHP and load you phpinfo php file.
At the top, near the zend engine logo, make sure you have this line:
"with Xdebug v2.0.2, Copyright (c) 2002-2007, by Derick Rethans"
Re,
-Zobo